java面试准备之基础概念与常识(2)

Java 中的几种基本数据类型是什么?对应的包装类型是什么?各自占用多少字节呢?


自动装箱与拆箱


java在背后做的事情如下:

一个坑 Integer在-128-127时可以使用== 比较



即Integer默认的缓存区间为-128 127 如果我们使用这区间的值时会直接指向定义好的地址,但是如果超过这个区间jvm就会创建新对象
如下面就会开两个新对象 所以地址空间不同 结果为false

        Integer i1=500;
        Integer i2=500;
        System.out.println(i1==i2);

但是如果是在区间 那么都会指向常量池对应的地址空间,结果为true

在一个静态方法内调用一个非静态成员为什么是非法的?

String,StringBuffer和StringBuilder 的区别是什么? String 为什么是不可变的?

String(不可变):

StringBuffer(线程安全)


简单来说就是StringBuffer的源码定义的操作方法都加上了synchronized同步锁 使得保证了线程安全

StringBuilder(线程不安全)

几乎和StringBuffer提供的API一致 但是并没有保证线程安全,用于多线程操作提高性能

3种类型使用场景

反射

什么是反射

反射机制优缺点


什么是序列化?什么是反序列化?

Java 序列化中如果有些字段不想进行序列化,怎么办?

既然有了字节流,为什么还要有字符流?

posted @ 2021-09-06 10:37  offlineboy  阅读(53)  评论(0)    收藏  举报