接上篇总结

面试总结(一)

28.(3.4)是什么样的数据类型

float​​<​​double 但在java定义中小数默认为double, float定义小数后面加f

29.Math.round(11.5)等于多少?

答:round四舍五入, ceil向上取整,floor向下取整。

30.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

答:都可以

31.问 什么是GC,为什么要有GC?

答: Garbage Collection简称为GC,是垃圾回收机制。GC是一个守护线程在JVM虚拟机启动时就会对判定不使用的数据进行回收,减少内存的占用。

32.守护线程是什么?

答:守护线程是指在程序运行的时候在后台提供一种通用服务的线程。通常用setDaemon()方法设置其为守护线程,守护线程启动的线程也是守护线程,守护线程的设置必须在启动前设置完成。注:当只剩下守护线程时,守护线程会结束,进程结束。

33.final, finally, finalize的区别

答:虽然兄弟几个看起来很像但使用场景不同 final在定义常量时使用,finallly在try catch finally配合使用,当垃圾收集器回收对象会调用 finalize();方法

34.Simpledateformat年月日格式

答:
y 年 M 月 d 日 h 时 在上午或下午 (1~12) H 时 在一天中 (0~23) m 分 s 秒 S 毫秒
会按照书写格式进行输出,常用格式:
yyyy年MM月dd日 HH时mm分ss秒
yy/MM/dd HH:mm

35.什么是synchronized

答:同步锁,资源锁。当被使用时,同一时间只能有一个线程访问其资源,多线程安全问题得到解决,并行转串行,但要注意创建实例时,如单例模式中的饥饿模式 double check。 锁分为 类锁,ClassName.class,方法锁,对象锁等等,注意使用。

36.类加载器是什么

答:类加载的工具,当程序需要的某个类,那么需要通过类加载器把类的二进制加载到内存中.类加载器也是Java类,ClassLoader类,具体考点在static和静态代码块和构造代码块中

37.Date的底层?

答:new Date()底层调用 System.currentTimeMillis();方法返回long类型。

38.Set和List区别

答:Set一般无序去重,List有序不去重

39.Wait和Sleep区别?

答:首先wait属于Object的方法,sleep属于Thread的方法。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。但加锁后不会释放对象锁,只会等待。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备;注意:notify只是获得cpu的抢占权。