黑马程序员—java基础复习—基础知识

来源:互联网 发布:gameloft足球java 编辑:程序博客网 时间:2024/06/05 23:47

——- android培训、java培训、期待与您交流! ———-

第一部分、DOS命令

1、java常用文件目录操作

a.硬盘的切换,如切换到e盘E:b.进入指定目录cd+路径c.浏览当前路径下目录 dird.cd..返回到上一级目录e.cd/返回到根目录f.del删除文件g.rd删除目录h.md创建目录i.exit退出dos命令行

2、指定path

a、查看当前path,输入pathb、设定path,path=新增路径;%path%

此种方式只在当前dos窗口有效

3、java编译运行命令

编译:javac+java文件名.java带包名时,将生成的class文件存于指定路径:   javac -d 指定路径 java文件名.java运行:java+java文件名 

4、java打架包

首先,在DOS命令行中进入到class文件包所在的目录下,然后输入:        Jar -cvf 所要生成的架包名.jar  class文件包名

第二部分、数据类型及内存

1、概念

数据类型:

数据类型

常量:

表示不能改变的字符。包括整数常量、小数常量、布尔常量(true和false)、字符常量、字符串常量、null常量(空)。

变量:

在内存中有自己的内存区域,有自己的名称和类型且可在同一类型的范围内变化,变量的作用范围为(一对{}之间有效)。分类:- 静态变量:作用于公共类中,任何地方可以直接调用。- 成员变量:类里面声明的变量,作用于整个类

转义字符

通过\来转变后面的字符或符号的含义如制表符\t,换行符、\n,退格符\b等。

2、Java中的名称规范

包名:多单词组成时所有字母都小写。            xxxyyyzzz类名接口名:多单词组成时,所有单词的首字母大写。            XxxYyyZzz变量名和函数名:多单词组成时,第一个单词首字母小写,第二 个单词开始每个单词首字母大写。            xxxYyyZzz常量名:所有字母都大写。多单词时每个单词用下划线连接。            XXX_YYY_ZZZ

3、数据类型的转换

- 自动类型转换(也叫隐式转换)正向过程:由低字节向高字节自动转换byte->short->int->long->float->double- 强制类型转换(也叫显示类型转换)逆向过程:使用强制转换,可能丢失精度如:int a=(int)5.33;

4、进制的转换

对于整数java有三种表现形式:十进制:0-9,满10进1八进制:0-7,满8进1,用0开头十六进制:0-9,A-F满16进1,用0x开头

十进制转二进制

原理:对十进制进行除2运算,其相除所得的余数倒序排列就是其对应的二进制数。二进制转换为十进制,将对应位分别乘以2的N次幂(n从低位对应0开始依次递增),然后将各位上所有的乘积相加,即为对应的十进制数。

二进制转换为十六进制

每四个二进制位表示一个十六进制位,将每四位二进制数对应的十六进制数计算出来依次排列,并在前面加上0x,即为所得的十六进制数。

二进制转换为八进制

每三位二进制数表示一个八进制位,将每三位二进制数对应的八进制数计算出来依次排列,并在前面加上0,即为所得的八进制数。

负数的二进制

将其所对应的正数的二进制数取反加1,负数的最高位都是1。

5、内存

java程序在运行时,需要在内存中分配空间,为了提高效率,又对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据的方式和内存管理方式。- 栈内存:用于存储局部变量,当数据使用完,其所用的空间会自动释放。- 堆内存:数组和对象,通过new建立的实例都存放于堆内存中,每个实体都有内存地址,实体中的变量都有默认的初试化值,实体在不使用是,会在不确定的时间内被垃圾回收器回收。- 方法区、本地方法区、寄存器

第三部分、位运算

<< 左移:

 <<n(n为正整数)二进制数向左移动n位,相当于乘以2的n次幂,右边用0补位。

>> 右移:

>>n(n为正整数)二进制数向右移动n位,相当于除以2的n次幂。最高位补什么是由原有数据的最高位值而定,最高位为1则补1,为0则补0。

>>> 无符号右移:

无论最高位是1还是0,右移后都用0补。

& 与运算:

低位对齐,1&1=1,其他均为0。

| 或运算:

低位对其,0|0=0,其他均为1。

^ 异或运算:

低位对齐,所对应位上的值不同为1,相同为0。一个数以后同一个数两次,结果还是那个数。可用于两个数据的交换,当时要注意数据过大容易超出int的范围。

~ 反码:

0为1,0为1。

第四部分、数组及排序

1、定义

一维数组

a、不进行初始化元素类型[] 数组名= new 元素类型[元素个数或数组长度];示例:int[] arr = new int[5];b、创建是进行初始化元素类型[] 数组名= new 元素类型[]{元素,元素,……};int[] arr = new int[]{3,5,1,7};int[] arr = {3,5,1,7};

二维数组

a、int[][] arr = new int[3][2];定义了名称为arr的二维数组二维数组中有3个一维数组,每一个一维数组中有2个元素一维数组的名称分别为arr[0], arr[1], arr[2]给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;b、int[][] arr = new int[3][];二维数组中有3个一维数组,每个一维数组都是默认初始化值null可以对这个三个一维数组分别进行初始化arr[0] = new int[3];arr[1] = new int[1];arr[2] = new int[2];c、定义并初始化int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};定义一个名称为arr的二维数组二维数组中的有三个一维数组每一个一维数组中具体元素也都已初始化第一个一维数组arr[0] = {3,8,2};第二个一维数组arr[1] = {2,7};第三个一维数组arr[2] = {9,0,1,6};第三个一维数组的长度表示方式:arr[2].length;

2、排序

A、选择排序

依次用第一个,第二个……N个,与其后面的数进行比较交换。
for(int i=0;i<arr.length-1;i++){    for(int j=i+1;j<length;j++){        if(arr[i]<arr[j]){            m=arr[i];            arr[i]=arr[j];            arr[j]=m;        }    }}

B、冒泡排序

依次用第一个,与第二;第二个与第三个,每两两相邻的数进行比较,最大的数依次后移。
for(int i=0;i<arr.length-1;i++){    for(int j=0;j<arr.length-1-i;j++){        if(arr[j]<arr[j+1]){            m=arr[j];            arr[j]=arr[j+1];            arr[j+1]=m;        }               }}

3、Arrays.sort(arr);

使用数组工具类,对数组进行排序。

4、使用TreeSet()

将数据存入TreeSet中,TreeSet会对存入其中的数据进行默认的排序,但是要注意,TreeSet会自动在重复的数据删除。

5、常用的工具类方法

a、Arrays.asList(T… a)将一个数组转换为List集合
b、Array.sort(arr)对数组进行升序排列
c、Array.binarySearch(arr,key)使用二分搜索法来收索指定值,返回下标

第五部分、函数

1、定义

函数也叫方法,即一段被封装的有特定功能的小程序

函数的格式:

修饰符  返回值类  型函数名(类型  参数1,....类型 参数n){    执行语句;    return 返回值;}

修饰符:即public、private等
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
return:用于结束函数,当没有返回值,其在最后一行时也可省略
返回值:该值会返回给调用者。
注意:在函数内部可以调用其他函数,但是不能定义其他函数。

2、函数的重载

在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。即同名,参数不同即可。例:

int puls(int i,int j){}int puls(int i,int j,int k){}double puls(double i,double j){}
1 0