----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
要点一:path和classpath(类文件路径)各自的特点
Classpath的配置(对java文件配置classpath):
1. Set Classpath=
清空classpath配置,编译和运行都在同一目录下运行时可以不配置classpath
2. 在未配置classpath的情况下,运行时系统会在当前目录下找
3. 如果配置classpath时:
Set classpath=c:\; 运行类文件时系统先在classpath的指定路径下找同名类文件, 未找到的时候再去当前目录下找同名类文件
Set classpath=c:\ 运行类文件时只在classpath指定路径下找,没找到报错
4. set classpath=.;c:\;d:\ 运行类文件时先在当前目录下寻找同名类文件,没找到再依次 去c盘和d盘寻找同名类文件,找到后运行类文件并停止查找,没找到报错
5.在4.的情况下:
e:\>java HelloWorld /*先在e盘中寻找HelloWorld.class文件(.;表示的部分),没 找到去c盘找,没找到去d盘找*/
Path的配置(对可执行文件配置path):
1.与classpath的查找顺序相反,先在当前目录下寻找,没找到再去path所指路径寻找
2. e:>set path=c:\
e:>HelloWorld.exe /*先在当前目录e盘中寻找HelloWorld.exe,没找到去path 所指路径寻找*/
要点2:进制转换
System.out.println(Integer.toBinaryString(6));/*6的10进制转换成二进制*/
System.out.println(ox3c);/*ox3c的十六进制转换成十进制*/
要点3:字符和运算符
连接符:
字符串数据和任何类型的数据使用'+’都是相连接,结果都是字符串
System.out.println('"a="+a+",b="+b); 要使输出语句清晰直观有意义
转义字符的使用:
\n=换行 \t=制表符 \b=退格键
\r=按下回车键,window系统,回车符由两个字符来表示\n和\r
System.out.println("\"hello\""); 输出"hello"
System.out.println("\\hello\\"); 输出\hello\
char a='\n';
Char a='你';
Char a='\\';
要点4:相近运算符之间的区别
+和+=的异同:
S=s+5; 计算两次,先加(int类型),再赋值给s(short类型),容易丢失精度, 编译失败
S+=5; 计算一次,在范围之内,自动完成强转操作,编译通过!
逻辑运算符:
&和&&的区别,当第一个表达式值为false的时候,&&不计算第二个表达式最终结果直接为false,而&还会计算第二个表达式;
| 和 || 的区别,当第一个表达式为true的时候,||不计算第二个表达式最终结果直接为true,而|还会计算第二个表达式;
>>>和>>:
>>>无符号右移,最高位用0补;
>>最高位右移的时候,原最高位是什么就用什么补,是0用0补齐,是1用1补齐。保证原来数字的正负!
异或’^‘:
要点5 :异或“^”:异或两次结果不变,异或一次相当于加密!再次异或同一个数相当于解密!
要点6 :如何定义函数?If else结构的简写形式:变量=(条件表达式)?表达式1:表达式2;
简写的弊端是:必须要有一个结果
在for语句之中定义的变量作用范围只在该for语句之中,for循环结束该变量内存空间被释放;
无限循环的表现形式:
for(;;){}
While(true);
Break和continue使用时可以给循环加上标号,从而跳出指定标号的循环或者switch
要点 7 :数组1.定义函数之前,先明确该函数所要实现的功能以及该功能的运算结果
2.明确该函数功能是否需要未知内容参与运算
什么时候用重载?
当定义的功能相同,但是内容不同。那么就定义一个函数名称以表示功能,方便阅读,而通过参数列表来区分多个同名函数。
要点 8 :元素类型[] 数组名=new 元素类型[元素个数或者数组长度];
int[] x = new int[3]; //x是数组类型,int表示该数组之中的元素是int类型
X[0]=1;
X[1]=3;
int[] arr=new int[]{3,2,4,5,6};
Int[] arr={3,2,4,5,6};//数据明确的情况下
内存结构: 每一片内部数据的处理方式不一样
栈:数据使用完毕,自动释放——局部变量都在栈之中存贮,方法中,for循环中的变量。上面的数组类型变量x就是在栈中存储的,x的值等于数组首地址(哈希值)。
堆:new出来的对象,数组都是实体,都在堆中,默认初始化值0。如上式中的new int[3]。运行的时候才会在堆内存中分配空间,编译只检查语法
x=null; x不再指向数组,垃圾回收机制后回收垃圾无用数组。
要点 9 :排序方法,java自带的Arrays.sort(arr);
冒泡排序(bubbleSort),选择排序(selectSort)
希尔排序,在栈内存中进行数据的比较,在堆内存中进行的置换比较少,在数据比较多的情况下效率高!
折半查找的前提条件是数组是有序数组
插入某数,相当于查找该数在数组中的角标,如果数组中有该数,返回其下脚标, 即是要插入位置的下脚标;不存在,返回min值,即是要插入位置的下脚标;
要点 10 :面向对象和面向过程引用类型的初始值是null,未初始化的二维数组的第一层内的值是null,arr[0]=null;
Int[][] arr=new int[3][];//规则数组
Arr[0]=new int[3];
Arr[1]=new int[1];
Arr[2]=new int[2];//不规则数组,arr[0]就是int[3]的地址
强调对象,强调动作
名词提炼法:名词提炼出来封装对象
人开门——
人:
门:
{
开()操作门轴门把;
}
面向对象的三个特征:封装,继承,多态。
开发过程就是找合适的对象,没有就创建一个对象。
找对象,建立对象,使用对象,维护对象的关系。
类和对象的关系:
现实生活中的对象:张三,李四
想要描述:抽取对象的共性内容,对具体的抽象。
描述的时候:其共性有——姓名,年龄,性别,学习java的功能。
在java中,描述就是class定义的类
具体对象就是java在堆内存之中的new建立的实体。数据很多,数据多了想数组一样在堆之中存贮的实体。
类就是:对现实生活中事物的描述。
对象:就是这类事物,实实在在存在的个体。New操作的产生于堆之中的实体
封装数据,数据包括
成员变量和局部变量:
成员变量作用于整个类中,局部变量作用用函数中或者语句中。
成员变量存在于堆之中,局部变量存在于栈内存中
在本类中创建主函数;
匿名对象:当对对象的方法值调用一次时,可用匿名对象来完成,这样写比较简化
如果对一个对象进行多个成员调用,必须给这个对象起个名字
使用方式二:可以将匿名对象作为实际参数进行传递。
强引用,弱引用,虚引用,软引用——优化内存;
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------