全国统一学习专线

Java开发实用的面试题及参考答案(java开发面试题及答案)

logo
来源:七品教育

2024-03-26|已帮助:82

进入 >

Java程序员面试过程中专业考试是必不可少的,那么面试时面试官会问哪些问题呢?接下来黑马君带你进入面试环节!

Java开发实用面试问题及参考答案1。进程、线程、进程的区别是什么?简而言之,进程是程序运行和资源分配的基本单位。一个程序至少有一个进程,一个进程至少有一个线程。

进程在执行时有独立的内存单元,多个线程共享内存资源,减少了切换次数,从而达到更高的效率。线程是一个进程的实体,是cpu调度和分派的基本单位,是比程序更小的可以独立运行的基本单位。

同一进程中的多个线程可以并发执行。2.你了解守护线程吗?它和非守护线程有什么区别?程序运行后,jvm将等待非守护线程完成,然后关闭,但jvm不会等待守护线程。守护线程最典型的例子就是GC线程。

3.什么是多线程上下文切换?多线程的上下文切换是指CPU控制权从一个已经运行的线程切换到另一个准备好等待CPU执行的线程的过程。

4.这两种创建线程的方式有什么区别?通过实现java.lang.Runnable或扩展java.lang.Thread类。与延长螺纹相比,

实现Runnable接口可能更好,原因有二:Java不支持多重继承。所以扩展Thread类意味着这个子类不能扩展其他类。实现Runnable接口的类也可以扩展另一个类。一个类可能只需要是可执行的,

因此,继承整个线程类的开销太大。5.Thread类中的start()和run()方法有什么区别?start()方法用于启动新创建的线程,run()方法在内部调用。

这与直接调用run()方法不同。当您调用run()方法时,它只会在原始线程中被调用。如果没有新线程要启动,start()方法将启动新线程。

6.如何检测线程是否持有对象监视器?Thread类提供了一个holdsLock(Object obj)方法,当且仅当对象obj的监视器由一个线程拥有时,该方法才返回true。

注意,这是一个静态方法,这意味着“一个线程”指的是当前线程。

7.你知道哪些垃圾收集算法在理论上非常容易理解吗?具体方法如下:1。标记-清除2。标记-复制3。标记-分类4。世代循环。

8.如何判断一个物体是否应该回收?这就是所谓的对象生存性判断,常用的方法有两种:1。参考计数法;2.对象可达性分析。因为引用计数法有交叉引用的问题,导致GC失败,

所以目前JVM虚拟机大多使用对象可达性分析算法。9.调用System.gc()通知gc开始工作会发生什么,但是GC真正开始工作的时间不确定。10位或64位JVM中int的长度是多少?在Java中,

int类型变量的长度是一个固定值,不管平台如何都是32位。也就是说,在32位和64位的Java虚拟机中,int类型的长度是相同的。

11.int和Integer有什么区别?Integer是int的封装类型,在拆包和打包时自动转换。Int是基本类型,直接存储值,integer是对象,通过引用指向。

12.int和Integer谁占内存多?整数对象会占用更多的内存。Integer是一个对象,需要存储对象的元数据。但是int是一种原始类型的数据,所以占用的空间比较少。

13. What is the difference between string, string buffer and StringBuilder? Lines are string constants,

最后修饰:StringBuffer字符串变量(线程安全);StringBuilder字符串变量(线程不安全)。14.java中用什么类型表示价格更好,如果不是特别在意内存和性能,

使用BigDecimal,否则使用具有预定义精度的double类型。15.如何将字节转换成字符串?您可以使用接收byte[]参数和String的构造函数来进行转换。

需要注意的是要使用正确的编码,否则将使用平台默认编码,该编码可能与原始编码相同,也可能不同。16.我能把整型转换成字节型吗?会发生什么?我们可以铸造它。

但是在Java中,int是32位,byte是8位,所以如果对int类型的高24位进行强制转换,byte类型的范围是-128到128。

以上是黑马君为大家整理的Java开发实用面试问题及参考答案,希望对即将面临面试的朋友有所帮助!

以上是七品教育整理的Java开发实用的面试题及参考答案(java开发面试题及答案)全部内容。