测试技术学习分享互联网科技Android技术知识

IT程序员重点收藏的java面试知识(一)

2017-12-25  本文已影响30人  91216271346a

本人从事IT行业10余年,以下是本人在招java开发岗位时,会经常问到的一些知识点,希望给正在找工作或者准备跳槽的同学一点指导,希望看到此文章的同学都能找到一份理想的工作:

1、wait()和sleep()的区别

(1)wait是Object类中的方法,sleep是Thread类中的方法

(2)sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。

(3)wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用

(4)sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常

2、什么是多态,多态的好处和弊端

多态可以理解为事物存在的多种体现形态。父类的引用指向了自己的子类对象;父类的引用也可以接收自己子类的对象。

好处:提高了代码的扩展性

弊端:父类的引用只能访问父类中有的成员(父类引用无法调用子类中特有的方法)

3、final、finally、finalize的区别

final:可以修饰类、方法和变量,被final修饰的类无法被继承,方法无法被复写,变量为常量只能赋值一次

finally:异常处理trycatch时使用,可以添加也可以不添加,用于执行一些必须执行的代码,如关闭资源等

finalize:Object类中的方法,其中定义了对象要被垃圾收集器回收之前要做的相关的清理工作

4、类与类、类与接口、接口与接口的关系

继承,继承或实现,继承

5、面向对象的理解

面向对象是基于面向过程的。在开发过程中,要完成特定的功能就去找相应的对象,如果找不到就创建相应的对象,使用对象,维护完善对象。

请点击此处输入图片描述

6、abstract与哪些关键字不能共存为什么

private:私有的方法是不可见的,无法被复写

final:被final修饰的方法是最终方法,无法被复写

static:被static修饰的方法,要随类加载到方法区,由于抽象方法没有方法体所以不能加载

7、面向对象和面向过程的区别

面向过程强调的是功能行为;

面向对象将功能封装成对象,强调的是具备功能的对象

8、static的特点

随着类的加载而加载;优先于对象存在;被所有对象所共享;可以直接被类名所调用。

静态方法只能访问静态成员,非静态方法既可以访问静态也可访问非静态

静态方法中不可以定义this、super关键字,因为静态优先于对象存在,所以静态方法中不可以出现this;

9、UDP和TCP的区别

UDP:不需要建立连接,是不可靠协议,将数据及源和目的封装到数据报中,每个数据报限制在64k以内,发送数据较少,速度快

TCP:通过三次握手建立连接通路,是可靠协议,可进行大量的数据传输,效率较低

10、网络编程的三要素

(1)IP:网络中设备的标识

(2)端口:用于标识设备中接收数据的网络应用程序具体是哪一个,有效端口0~65535,0~1024为系统端口及保留端口

(3)传输协议:UDP和TCP协议,信息通讯的规则

Java学习交流群282711949:

进群:阿里、京东、小米、百度、腾讯往年面试题以及答案

进群:经典java学习书籍电子档(1000本)

进群:了解最新的阿里,京东各大企业招聘资讯

进群:为提升自我,java技术进阶补充知识

进群:树立清晰的职业规划,进阶线路

进群:为开春跳槽做热身准备

以下是针对0-3年从事java开发的同学的一个学习线路图,有兴趣的请自己保存,高清图群文件可以下载:

上一篇下一篇

猜你喜欢

热点阅读