更新时间:2019-10-30 10:28:43 来源:极悦 浏览3334次
面试题
1.面向对象的特点有哪些?
①.封装:所谓封装,就是将客观事物封装成抽象的类,并且类可以把数据和方法让可信的类或者对象进行操作,对不可信的类或者对象进行隐藏。类就是封装数据和操作这些数据代码的逻辑实体。在一个类的内部,某些属性和方法是私有的,不能被外界所访问。通过这种方式,对象对内部数据进行了不同级别的访问控制,就避免了程序中的无关部分的意外改变或错误改变了对象的私有部分。
②.继承:继承有这样一种能力,就是能使用现有的类的所有功能,并无须重新编写原来的这些类的基础上对这些功能进行扩展。通过继承创建的新类称为子类或派生类,被继承的称为基类。继承有两种,一种是实现继承,另外一种是接口继承。实现继承可以直接使用基类的属性和方法而无需额外编码,接口继承是指使用属性和方法的名称,但是子必须提供实现的能力。
③.多态:所谓多态就是对一个实例的相同方法在不同的情形下有不同的表现形式。多态机制使得不同内部结构的对象可以共享相同的外部接口,这就意味着,虽然不同的类的内部操作不同,但可以通过一个公共的类,它们可以通过相同的方式予以调用。
④.抽象:提取现实世界中某事物的关键特性,为该事物构建模型的过程。对同一事物在不同的需求下,需要提取的特性可能不一样。得到的抽象模型中一般包含:属性(数据)和操作(行为)。这个抽象模型我们称之为类。对类进行实例化得到对象。
2.列举几个java常用的package及其作用
第一个包:java.lang包。该包提供了Java语言进行程序设计的基础类,它是默认导入的包。该包里面的Runnable接口和Object、Math、String、StringBuffer、System、Thread以及Throwable类需要重点掌握,因为它们应用很广。
第二个包:java.util包。该包提供了包含集合框架、遗留的集合类、事件模型、日期和时间实施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。
第三个包:java.io包。该包通过文件系统、数据流和序列化提供系统的输入与输出。
第四个包:java.net包。该包提供实现网络应用与开发的类。
第五个包:java.sql包。该包提供了使用Java语言访问并处理存储在数据源(通常是一个关系型数据库)中的数据API。
第六个包:java.awt包
第七个包:javax.swing包。庆庆说:这两个包提供了GUI设计与开发的类。java.awt包提供了创建界面和绘制图形图像的所有类,而javax.swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同。
第八个包:java.text包。提供了与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。
3.接口和抽象类有什么联系和区别
相同点:
接口和抽象类都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承。
接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。
不同点
接口里只能包含抽象方法,静态方法和默认方法,不能为普通方法提供方法实现,抽象类则完全可以包含普通方法。
接口里只能定义静态常量,不能定义普通成员变量,抽象类里则既可以定义普通成员变量,也可以定义静态常量。
接口不能包含构造器,抽象类可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。
接口里不能包含初始化块,但抽象类里完全可以包含初始化块。
一个类最多只能有一个直接父类,包括抽象类,但一个类可以直接实现多个接口,通过实现多个接口可以弥补Java单继承不足。
4.重载和重写有什么区别
override(重写)
方法名、参数、返回值相同。
子类方法不能缩小父类方法的访问权限。
子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
存在于父类和子类之间。
方法被定义为final不能被重写。
overload(重载)
参数类型、个数、顺序至少有一个不相同。
不能重载只有返回值不同的方法名。
存在于父类和子类、同类中。
5.java有哪些基本数据类型?
①.四种整数类型(byte、short、int、long):
byte:8位,用于表示最小数据单位,如文件中数据,-128~127
short:16位,很少用,-32768~32767int:32位、最常用,-231-1~231(21亿)
long:64位、次常用
②.两种浮点数类型(float、double):
float:32位,后缀F或f,1位符号位,8位指数,23位有效尾数。
double:64位,最常用,后缀D或d,1位符号位,11位指数,52位有效尾
③.一种字符类型(char):
char:16位,是整数类型,用单引号括起来的1个字符(可以是一个中文字符),使用Unicode码代表字符,0~2^16-1(65535)。
④.一种布尔类型(boolean):true真和false假。
⑤.类型转换:char-->
自动转换:byte-->short-->int-->long-->float-->double
强制转换:
①会损失精度,产生误差,小数点以后的数字全部舍弃。
②容易超过取值范围。
⑥.记忆:
8位:Byte(字节型)
16位:short(短整型)、char(字符型)
32位:int(整型)、float(单精度型/浮点型)
64位:long(长整型)、double(双精度型)
最后一个:boolean(布尔类型)
6.Java支持的数据类型有哪些?什么是自动拆装箱?
基本数据类型:
整数值型:byte,short,int,long,
字符型:char
浮点类型:float,double
布尔型:boolean
整数默认int型,小数默认是double型。Float和long类型的必须加后缀。
首先知道String是引用类型不是基本类型,引用类型声明的变量是指该变量在内存中实际存储的是一个引用地址,实体在堆中。引用类型包括类、接口、数组等。String类还是final修饰的。
而包装类就属于引用类型,自动装箱和拆箱就是基本类型和引用类型之间的转换,至于为什么要转换,因为基本类型转换为引用类型后,就可以new对象,从而调用包装类中封装好的方法进行基本类型之间的转换或者toString(当然用类名直接调用也可以,便于一眼看出该方法是静态的),还有就是如果集合中想存放基本类型,泛型的限定类型只能是对应的包装类型。
7.Java类的实例化顺序
父类静态成员和静态初始化块,按在代码中出现的顺序依次执行
子类静态成员和静态初始化块,按在代码中出现的顺序依次执行
父类实例成员和实例初始化块,按在代码中出现的顺序依次执行
父类构造方法
子类实例成员和实例初始化块,按在代码中出现的顺序依次执行
子类构造方法
结论:对象初始化的顺序,先静态方法,再构造方法,每个又是先基类后子类。
8.什么是值传递和引用传递
值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.
引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是原对象本身。
一般认为,java内的传递都是值传递.java中实例对象的传递是引用传递。
9.Java集合框架的基础接口有哪些?
Collection:为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。Java平台不提供这个接口任何直接的实现。
Set:是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。
List:是一个有序集合,可以包含重复元素。你可以通过它的索引来访问任何元素。List更像长度动态变换的数组。
Map:是一个将key映射到value的对象.一个Map不能包含重复的key:每个key最多只能映射一个value。
一些其它的接口有Queue、Dequeue、SortedSet、SortedMap和ListIterator。
10.Java集合框架是什么?说出一些集合框架的优点?
每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。
集合框架的部分优点如下:
使用核心集合类降低开发成本,而非实现我们自己的集合类。
随着使用经过严格测试的集合框架类,代码质量会得到提高。
通过使用JDK附带的集合类,可以降低代码维护成本。
复用性和可操作性。
以上就是极悦java学院小编分享的“ 网易Java面试:容易被问到的这些面试题”的内容,希望能够帮助到大家,更多java最新面试题请继续关注极悦java学院官网,每天会有精彩内容分享与你。
相关面试题推荐
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习