java面试中经常被问到的疑问有哪些 (java面试题)
本文目录导航:
java面试中经常被问到的疑问有哪些?
java面试中经常被问到的疑问有:
1、进程,线程,协程之间的区别是什么?
2、你了解守护线程吗?它和非守护线程有什么区别?
3、什么是多线程高低文切换?
4、创立两种线程的模式?他们有什么区别?
5、Thread类中的start()和run()方法有什么区别?
6、怎样检测一个线程能否持有对象监督器?
7、你知道哪些渣滓回收算法?
8、如何判别一个对象能否应该被回收?
9、调用()会出现什么?
10、64位的JVM当中,int的长度是多少?
11、int和Integer的区别?
12、int 和Integer谁占用的内存更多?
13、String, StringBuffer和StringBuilder区别?
14、java当中经常使用什么类型示意多少钱比拟好?
15、如何将byte转为String?
16、可以将int强转为byte类型么?会发生什么疑问?
java面试中经常被问到的疑问有哪些?
java面试中经常被问到的疑问有如下:
1、进程,线程,协程之间的区别是什么?
简而言之,进程是程序运转和资源调配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。
进程在口头环节中领有独立的内存单元,而多个线程共享内存资源,缩小切换次数,从而效率更高。
线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更小的能独立运转的基本单位。
同一进程中的多个线程之间可以并发口头。
2、你了解守护线程吗?它和非守护线程有什么区别?
程序运转终了,jvm会期待非守护线程成功后封锁,然而jvm不会期待守护线程。
守护线程最典型的例子就是GC线程。
3、什么是多线程高低文切换?
多线程的高低文切换是指CPU管理权由一个曾经正在运转的线程切换到另外一个就绪并期待失掉CPU口头权的线程的环节。
4、创立两种线程的模式?他们有什么区别?
经过成功或许经过裁减类。
相比裁减Thread,成功Runnable接口或许更优.要素有二:Java不支持多承袭。
因此裁减Thread类就代表这个子类不能裁减其余类。
而成功Runnable接口的类还或许裁减另一个类。
类或许只需求可口头即可,因此承袭整个Thread类的开支过大。
5、Thread类中的start()和run()方法有什么区别?
start()方法被用来启动新创立的线程,而且start()外部调用了run()方法,这和间接调用run()方法的成果不一样。
当你调用run()方法的时刻,只会是在原来的线程中调用,没有新的线程启动,start()方法才会启动新线程。
java基础面试题有哪些?
上方是10道java基础面试题,后附答案
1.什么是 Java 虚构机?为什么 Java 被称作是“平台有关的编程言语”?
Java 虚构机是一个可以口头 Java 字节码的虚构机进程。
Java 源文件被编译成能被 Java 虚构机口头的字节码文件。
Java 被设计成准许运行程序可以运转在恣意的平台,而不要求程序员为每一个平台独自重写或许是从新编译。
Java 虚构机让这个变为或许,由于它知道底层配件平台的指令长度和其余个性。
2.“static”主要字是什么意思?Java 中能否可以笼罩(override)一个 private 或许是static 的方法?
“static”主要字标明一个成员变量或许是成员方法可以在没有所属的类的实例变量的状况下被访问。
Java 中 static 方法不能被笼罩,由于方法笼罩是基于运转时灵活绑定的,而 static 方法是编译时静态绑定的。
static 方法跟类的任何实例都不关系,所以概念上不实用。
和 JRE 的区别是什么?
Java 运转时环境(JRE)是将要口头 Java 程序的 Java 虚构机。
它同时也蕴含了口头 applet 要求的阅读器插件。
Java 开发工具包 (JDK)是完整的 Java 软件开发包,蕴含了 JRE,编译器和其余的工具(比如:JavaDoc,Java 调试器),可以让开发者开发、编译、口头 Java 运行程序。
4.能否可以在 static 环境中访问非 static 变量?
static 变量在 Java 中是属于类的,它在一切的实例中的值是一样的。
当类被 Java 虚构机载入的时刻,会对 static 变量启动初始化。
假设你的代码尝试不用实例来访问非 static 的变量,编译器会报错,由于这些变量还没有被创立进去,还没有跟任何实例关联上。
支持的数据类型有哪些?什么是智能拆装箱?
Java 言语支持的 8 中基本数据类型是:
智能装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。
比如:把 int 转化成 Integer,double 转化成 double,等等。
反之就是智能拆箱。
支持多承袭么?
不支持,Java 不支持多承袭。
每个类都只能承袭一个类,然而可以成功多个接口。
中,什么是结构函数?什么是结构函数重载?什么是复制结构函数?
当新对象被创立的时刻,结构函数会被调用。
每一个类都有结构函数。
在程序员没有给类提供结构函数的状况下,Java 编译器会为这个类创立一个自动的结构函数。
Java 中结构函数重载和方法重载很相似。
可认为一个类创立多个结构函数。
每一个结构函数必定有它自己惟一的参数列表。
Java 不支持像 C++中那样的复制结构函数,这个不同点是由于假设你不自己写结构函数的状况下,Java 不会创立自动的复制结构函数。
中的方法笼罩(Overriding)和方法重载(Overloading)是什么意思?
Java 中的方法重载出当初同一个类外面两个或许是多个方法的方法名相反然而参数不同的状况。
与此相对,方法笼罩是说子类从新定义了父类的方法。
方法笼罩必定有相反的方法名,参数列表和前往类型。
笼罩者或许不会限度它所笼罩的方法的访问。
9.接口和形象类的区别是什么?
Java 提供和支持创立形象类和接口。它们的成功有独特点,不同点在于:
接口中一切的方法隐含的都是形象的。
而形象类则可以同时蕴含形象和非形象的方法。
类可以成功很多个接口,然而只能承袭一个形象类
类假设要成功一个接口,它必定要成功接口申明的一切方法。
然而,类可以不成功形象类申明的一切方法,当然,在这种状况下,类也必定得申明成是形象的。
形象类可以在不提供接口方法成功的状况下成功接口。
Java 接口中申明的变量自动都是 final 的。
形象类可以蕴含非 final 的变量。
Java 接口中的成员函数自动是 public 的。
形象类的成员函数可以是 private, protected 或许是 public。
接口是相对形象的,无法以被实例化。
形象类也无法以被实例化,然而,假设它蕴含 main 方法的话是可以被调用的。
10.什么是值传递和援用传递?
对象被值传递,象征着传递了对象的一个正本。
因此,就算是扭转了对象正本,也不会影响源对象的值。
对象被援用传递,象征着传递的并不是实践的对象,而是对象的援用。
因此,外部对援用对象所做的扭转会反映到一切的对象上。
最后祝你面试顺利!