首页 课程 师资 教程 报名

就业太困难?Java面试题库及答案

  • 2019-12-04 15:22:56
  • 2192次 动力节点

 

  就目前来说,会Java的人一抓一大把,但是呢,在求职的过程中,总是碰壁,没有头绪,迟迟找不到工作,不仅是限于没有学历,而且还是缺乏面试的一些技巧,不知道如何回答面试官提的问题?若想在面试中能稳如泰山,拿下心意offer,这些题目将是我们必备的面试法宝。如有错误,望加以斧正补充,自当深表感激。

36 拷贝.jpg

1、同步与异步的区别???

  答:所谓的同步,就是发出一个功能调用时,在没有得到结果之前,该调用就不会放回,或继续执行后续操作。简单来说,同步就是必须一件一件的来做,等前一件事做完了,才能做下一件事。

  异步,当异步过程调用发出后,调用者在没有得到结果之前就可以执行后续操作,

  当这个调用完成之后,一般通过状态,通知和回调通知,调用者。对于异步调用,其返回并不受调用者控制。

2、HashCode()与equals的关系???

  答:

1)、hashcode是object类的一个方法,返回值是该对象的哈希码值,同一个对象的哈希码值一定相等,但是不同的对象的哈希码值也是有可能相等的。

2)、equals同样是object类的一个方法,比较两个对象是否是同一个对象,其内部实现是通过==来比较两个对象的内存地址是否相等的,如果需要比较两个对象的内容是否相等,则需要重写equals方法,重写的equals方法用于比较对象的内容是否相等。

3)、因此如果两个对象根据equals()方法比较相等,那么这两个对象的hashcode()返回值一定相等,如果两个对象的hashcode()返回值相等,其equals()比较结果也不一定是true。

3、String类通过new创建和直接赋值字符串的区别???

  答:

  方式一:Stringa=“aaa”;

  方式二:Stringb=newString(“aaa”);

  两种方式都能创建字符串对象,但方式一要比方式二更优。

  因为字符串是保存在常量池中的,而通过new创建的对象会存放在堆内存中。

  一:常量池中已经有字符串常量”aaa”

  通过方式一创建对象,程序运行时会在常量池中查找”aaa”字符串,将找到的”aaa”字符串的地址赋给a。

  通过方式二创建对象,无论常量池中有没有”aaa”字符串,程序都会在堆内存中开辟一片新空间存放新对象。

  二:常量池中没有字符串常量”aaa”

  通过方式一创建对象,程序运行时会将”aaa”字符串放进常量池,再将其地址赋给a。

  通过方式二创建对象,程序会在堆内存中开辟一片新空间存放新对象,同时会将”aaa”字符串放入常量池,相当于创建了两个对象。

4、Java中Int与integer用==比较详解???

  答:

①、无论如何,Integer与newInteger不会相等。不会经历拆箱过程,因为它们存放内存的位置不一样。(要看具体位置,可以看看这篇文章:点击打开链接)

②、两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false。

③、两个都是new出来的,则为false。

④、int和integer(new或非new)比较,都为true,因为会把Integer自动拆箱为int,其实就是相当于两个int类型比较。

5、Java中final关键字的理解???

  答:final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误。

1)、final关键字可以用于成员变量、本地变量、方法以及类。

2)、final方法不能被重写。

3)、final类不能被继承。

4)、final关键字不同于finally关键字,后者用于异常处理

5)、final关键字容易与finalize()方法搞混,后者是在Object类中定义的方法,是在垃圾回收之前被JVM调用的方法。

6、Java中public、private、protected关键字的理解???

  答:

1)、public表明该成员变量或者方法,对所有类或者对象都是可见的,所有类和对象都可以直接访问。

2)、private表明该成员变量或者方法是私有的,只有当前类对其具有访问权限。

3)、protected表明成员变量或者方法对该类自身,与它在同一个包中的其他类可见,在其他包中的该类的子类都可见。

4)、dafault表明该成员变量或者方法只有自己和与其位于同一个包中的类可见,若父类和子类位于同一个包中,则具有访问权限,如父类和子类不在同一个包中,则没有访问权限。

7、什么是构造函数???

  答:

1)、构造函数必须和类名相同,并且不能有返回值(返回值也不能为void)

2)、每个类可以有多个构造函数,构造函数可以有多个参数。

3)、构造函数总是伴随new操作一起调用,且不能直接调用,必须由系统调用。

4)、构造函数主要作用完成对象的初始化工作。

5)、构造函数不能被继承,因此,不能被覆盖,但是可以重载。

8、多态的实现机制是什么???

  答:多态主要有一下两种表现形式。

1)、方法的重载(overload)。重载是指同一个类中有多个同名的方法,但是这些方法具有着不同的参数,重载可以被看做一个类中方法的多态性。

2)、方法的覆盖(overide)。子类可以覆盖父类的方法,因此同样的方法会在父类和子类中有着不同的表现形式。这种形式,因为只有在调用时才能确定调用的是哪个方法,因此被称为运行时多态。

9、什么是线程,什么是进程,它们之间的区别是什么???

  答:

  线程:程序执行过程中,能够执行代码的一个执行单元。四种状态(运行、就绪、挂起、结束)

  进程:是指一段正在执行的程序。

  其关系如下:

1)、一个线程只能属于一个进程,而一个进程可以有多个线程,但是至少有一个线程,线程是操作系统可识别的最小执行和调度单位。

2)、资源分配给进程,同一个进程中的所有线程共享该进程中的所有资源,同一个进程多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程用有独立的栈段,栈段用来存放所有的局部变量和临时变量。

3)、处理机分给线程,即真正的处理机上运行的是线程。

4)、线程在执行过程中,需要协作同步。不同的进程的线程间要利用通信的办法实现同步。

10、Http中GET与POST方法有什么区别???

  答:

1)、采用get方式向服务器上传数据,一般将数据添加到url后面,并且二者用“?”连接,各个变量之间用“&”连接,由于url长度存在限制,因此采用这种方式上传数据量非常小。而post方式传递的数据是通过http请求的附件进行的,传送的数据量比较大,一般默认不受限制。

2)、由于get方式将数据追加在url之后,数据彻底暴露出来,本身存在安全隐患,而post方式向服务器上传数据时,对用户是不可见的,安全性比get方式会更优。

       以上就是动力节点Java培训机构小编介绍的“就业太困难?Java面试题库及答案”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

相关推荐

最新最全java面试题及答案(初级到高级)

史上最全的中高级JAVA工程师面试题及答案汇总

Java高级开发工程师面试题

2019史上最全java面试题题库大全800题

哪有资深java工程师面试题

 

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交