1 JVM
JVM是JAVA虚拟机,在JRE的bin目录下有两个子目录(server和client) ,是真正的jvm.dll所在。jvm.dll无法单独工作,当jvm.dll启动后,会使explicit的方法,而这些辅助用的动态链接库(.dll)必须都位于jvm.dll所在目录的父目录中,因此想使用哪个jvm,只需在环境变量中设置path 参数指向JRE所在目录下的jvm.dll即可。
2 基本数据类型
数据类型 | 内存空间 | 取值范围 |
byte | 8位(1字节) | -2^7~2^7-1 |
short | 16位(2字节) | -2^15~2^15-1 |
int | 32位(4字节) | -2^31~2^31-1 |
long | 64位(8字节) | -2^63~2^63-1 |
float | 32位(4字节) | IEEE754 |
double | 64位(8字节) | IEEE754 |
char | 16位(2字节) | |
boolean | 8位(1字节) |
3 逻辑运算符
&&和& 都是表示逻辑‘与’,只有两个表达式都为true时,结果才会为true。这里主要去讲讲两者的区别: 使用&会判断两个表达式,而&&则是针对boolean进行类别判断,当第一个表达式为false时则不会去判断第二个表达式,直接输出结果。因此,&&可节省计算机判断次数。这边顺便提一下“短路”和“非短路”的概念:这种在逻辑表达式中从左到右可推断出整个表达式值称为短路,如&&,而始终执行逻辑运算符两边的表达式称为“非短路”,如&。 ||和|表达式类似。
4 位运算符
这一块留到今后去学习
5 数组
这里我们解释几个数组的函数
(1)数组复制
public static int[ ] copyOf(int [] original,int newLength)
其中 original:需要进行复制的数组,newLength:复制完成后生成新数组的长度,可以大于original数组元素个数。
public static int[] copyOfRange(int []original,int from,int to)
其中,original:需要进行复制的数组,from :开始复制的索引,该值必须大于0,小于original数组元素的个数,to :大于from,可以大于original数组元素个数。
运行事例:
public class test {
public static void main(String[] args) {
int []array={1,2,3};
int []arrayCopy=Arrays.copyOf(array,5);
int []arrayCopyRanges=Arrays.copyOfRange(array,1,5);
for(int i:arrayCopy){
System.out.print(i+" ");
}
System.out.println();
for(int j:arrayCopyRanges){
System.out.print(j+" ");
}
}
}
结果:
1 2 3 0 0
2 3 0 0
(2) 填充数组
public static void fill(int []a,int val)
其中 a:需要填充的数组,val:填充值
运行事例:
public class test {
public static void main(String[] args) {
int []array=new int[5];
Arrays.fill(array,3);
for (int i:array){
System.out.print(i+" ");
}
}
}
运行结果:
3 3 3 3 3
(3) 数组排序
public static void sort(int [] a)
其中,a:需要排序的数组
运行事例:
public class test {
public static void main(String[] args) {
int []array={4,2,5,3,1};
Arrays.sort(array);
for (int i:array){
System.out.print(i+" ");
}
}
}
结果:
1 2 3 4 5
(3)查找数组元素
public static int binarySearch(int[] a,int key)
其中,a:需要查找的数组,key:查找的元素, 这是二分查找的方法,数组必须是从小到大有序排列
运行事例:
public class test {
public static void main(String[] args) {
int []array={5,4,3,2,1};
Arrays.sort(array);
int index=Arrays.binarySearch(array,4);
System.out.println(index);
}
}
结果:
3
5 Integer
integer是一个对象,而对两个对象比较是否相同我们通常是用equals方法,但是当数值在-128~127这个区间的时候,我们可以用==来比较两个integer类型的变量是否相等,
这是为什么呢?
其实,在我们平时使用整形的时候,绝大多数数据都集中在-128-127这个区间内,java为了优化其性能,特地给这一区间的数据做了缓存,当值在这个范围时,我们直接用==会比用构造方法Integer(int)效率和空间上更好。