JAVA随笔-数据类型

1 JVM

  JVM是JAVA虚拟机,在JRE的bin目录下有两个子目录(server和client) ,是真正的jvm.dll所在。jvm.dll无法单独工作,当jvm.dll启动后,会使explicit的方法,而这些辅助用的动态链接库(.dll)必须都位于jvm.dll所在目录的父目录中,因此想使用哪个jvm,只需在环境变量中设置path 参数指向JRE所在目录下的jvm.dll即可。


2 基本数据类型

数据类型内存空间取值范围
byte8位(1字节)-2^7~2^7-1
short16位(2字节)-2^15~2^15-1
int32位(4字节)-2^31~2^31-1
long64位(8字节)-2^63~2^63-1
float32位(4字节)IEEE754
double64位(8字节)IEEE754
char16位(2字节) 
boolean8位(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);

    }
}

结果:



5 Integer


 integer是一个对象,而对两个对象比较是否相同我们通常是用equals方法,但是当数值在-128~127这个区间的时候,我们可以用==来比较两个integer类型的变量是否相等

这是为什么呢?

 其实,在我们平时使用整形的时候,绝大多数数据都集中在-128-127这个区间内,java为了优化其性能,特地给这一区间的数据做了缓存,当值在这个范围时,我们直接用==会比用构造方法Integer(int)效率和空间上更好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值