javaSE中常出现的面试题

1.Java的 基本类型有几种
8种分别是byte short int long char float double long boolean ,基本类型都保存在栈上。

2.Java是值传递还是引用传递
java是严格的值传递,只不过有的值是引用类型,该值指向了堆上的地址所以给人一种引用传递的错觉。

3.循环的方式有几种,break 和 continue是什么意思
while,dowhile,for,foreach。break是跳出循环可以后面跟自定义的一个元素指出跳出几层循环,continue是结束本次执行下次循环。

4.oop思想的三大特性
封装、继承、多态
封装是信息隐藏对外只保留接口隐藏内部实现,在编程时即使是一句话写的超过三遍我也会考虑把他封装起来起一个便于理解的名字。
继承是一个类对另一个类的扩展,在编码时可以体现出类的层次关系,高层用于抽象,低层用于实现。但是继承是侵入性的,spring中aop技术bulabula~
多态是指不同类的实例对对同一行为的不同表现,比如动物中猫叫喵狗叫汪,在编码过程中用该方法可以省略非oop中大量的ifelse判断。

5.重写与重载的区别
重写两个类(接口)间继承关系后者将前者同名同参函数重新定义,后者权限必须大于前者权限。动多态
重载函数名称相同参数列表不同。两者也可以不再同一作用域。静多态

6.JDK ,JRE,JVM 有什么区别
jdk是java开发工具包,其中bin部分是jre,其他部分有一些小工具
jre是java运行环境,在客户端上有他就够了,包括了jvm和基础的类库
jvm是java虚拟机,类似于音乐播放器可以识别.class文件。.class中有魔数主次版本号等信息bulabula~

7.String类能不能被继承,string的底层是什么,new String时生成几个对象
String是final类不能被继承,其底层是一个定长的byte数组。(之前记成char了),一个或两个在这里插入图片描述8.String,StringBuilder,StringBuffer的区别
由于final所以除非使用反射该值不可改变,故String是不可变类,可变类可以选择StringBuiler和StringBuffer。StringBuiler是单线程的,StringBuffer是线程安全的。
StringBuild的初始化长度是len+16,最大长度是Integer.Max-8,扩容是根据类型决定的utf16还是,iso8859-1…
StringBuffer,初始化长度不指定为len+16,线程安全是因为加了Synchronized。
增长方式2倍+2

9.Object中都有哪些方法
equals() hashcode() wait() notify() notifyAll() finalize() getClass() clone() toString()

10.final,finally,finalize的区别
final可以用于指定 类 方法 属性,要注意的是final指定字段只意为这这个值不能改变如果是引用类型,内部是可以改变。
finally是trycatch后的字段代表终将执行出现异常catch中return了也会执行finally的内容
finalize是Object的一个方法会被gc调用,重写该方法可使该对象第一次不被回收。

11.true,false是关键字吗。关键字你了解多少
不是,跟01一样这就是两个值,引到volatile关键字。

12.接口和抽象类有什么区别接口中可以有具体的方法吗
接口比类抽象,不能保存状态。java9中可以有具体方法(default),也可以有私有方法。

13.创建对象有几种方法
new 反射 ioc

14.手撸单例模式

15.包装类你了解吗
java是一门面向对象的语言,包装类就是将基本类型转化为引用类型存在的。

16.== 与equals的区别
对于对象来说==是判断是否是一个对象,equals判断两者是否等价。
对于基本类型来说是比较两边的值是否相等
对一边包装类一边基本类型来说有自动拆装箱却没有类型转换的作用。

17.hashcode的理解
暂时答不好

18.&与&&的区别
短路,非短路

19.异常你都知道哪些,异常和error的区别

20.内存泄漏与内存溢出
使用完的对象不进行回收即是内存泄漏。
溢出分两种上溢和下溢,内存泄漏会导致内存溢出

21.java的内存需要手动管理吗
不需要java有垃圾回收机制,即使你调用了system.gc()也不保证立即执行

22.gc的算法
标记清除 复制算法 标记整理 引申到回收器

23.如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?
1.gc是一个优先级很低的线程
2.如果此时没有对局部变量表的访问那么gc仍认为该对象是可达的

24.java中类加载是怎么样的
双亲委派模型

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页