corejava部分面试题

上传人:第*** 文档编号:32684063 上传时间:2018-02-12 格式:DOCX 页数:17 大小:180.27KB
返回 下载 相关 举报
corejava部分面试题_第1页
第1页 / 共17页
corejava部分面试题_第2页
第2页 / 共17页
corejava部分面试题_第3页
第3页 / 共17页
corejava部分面试题_第4页
第4页 / 共17页
corejava部分面试题_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《corejava部分面试题》由会员分享,可在线阅读,更多相关《corejava部分面试题(17页珍藏版)》请在金锄头文库上搜索。

1、第一部分 Java 的类1. 请解释 Java 语言的跨平台特性。解析:虽然不知道什么是跨平台也可以使用 Java 语言进行编程,但是对于一个 Java 编程员来说,理解跨平台特性能够更深入掌握 Java 语言,所以企业中往往要求应聘者至少理解这个特性。参考答案:Java 的跨平台特性也被称为可移植性、平台无关性,或者一次编写处处运行。他的意思就是如果用 Java 语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独运行开发。之所以能实现跨平台的特性。主要得益于 Java 虚拟机(JVM) ,JVM 解释器在运行 Java 应用时根据当前平台进行解释,解释成符合当前平台规范的机

2、器码,所以可以实现同样的应用在不同平台上都能运行。2.请列举 JAVA 语言的主要特点解析:了解一门语言,往往从熟悉该语言的主要特点开始入手,所以企业也常常通过应聘者对 JAVA语言特点的掌握程度而判断其语言基础是否扎实。参考答案:JAVA 语言有很多特点,主要包括跨平台性:一个应用可以不经过修改直接运行到不同的平台上。面向对象:JAVA 语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。解释执行 JAVA 应用时,JVM 中的解释器将解释类文件,生成符合当前平台的字节码。自动回收:JAVA 应用中的垃圾回收是自动进行的,JVM 中的后台线

3、程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。3.请说明一个 JAVA 类中主要包含哪几个元素?并说明每种元素的作用。解析:无论简单还是复杂的 JAVA 应用,都是由若干个类组成,所以类是 JAVA 应用的组成单位。了解一个类中包含的主要元素能够对类有一个清晰的认识。一个类中往往会有五种元素,即属性、方法、构造方法、块以及内部类、其实块和内部类比较少见。参考答案:JAVA 类中主要包含属性、方法、构造方法、块以及内部类。属性用来定义对象的数据;方法用来定义对象的行为;构造方法可以用来创建对象;块能够用来在类加载时执行操作或者在每次实例化前执行通

4、用操作;内部类作为类的一个成员存在,能够访问外部类的属性和方法。4、请说明构造方法的作用和特征解析:类是对象的模板,使用类往往都需要首先对类进行实例化,即创建对象。要创建对象必须使用new 关键字调用构造方法( constructor)才能完成,构造方法中往往对属性进行实例化,也可以实现其他必要的功能,如读取属性文件等。构造方法有独特的特征:名字必须与类名相同且大小写敏感,而且构造方法不能声明返回值,这两个特征缺一不可。使用 Eclipse 工具时,可以使用菜单 Generate Constructor 自动生成不同的构造方法。参考答案:构造方法的作用是用来创建对象,使用 new 关键字调用。

5、构造方法的名字必须与类的名字相同,并且大小写敏感,同时构造方法不能声明返回值类型,可以使用任意一种访问修饰符,但是不能使用其他修饰符进行修饰,如 static、final、abstract 等修饰符都可以修饰构造方法。5、什么事方法重载(overload)?解析:如果一个类的某个行为,会有不同的算法和逻辑,例如,Math 类的计算绝对值的方法,既可以计算 int 类型数值的绝对值,也可以计算 double 类型数值的绝对值。这种情况下,每种类型都定义一个不同的方法名,如 abInt、absDouble,那么类的可读性就较差,使用时,必须熟悉处理每种类型参数所对应的方法名。然而,如果使用同一个方

6、法名,而使用不同的形式参数来区别这些方法,那么就具有很好的可读性,如 abs(int i) 、abs(double d)等。可读性强的代码是企业对开发人员的基本要求,方法重载能够使得代码有很好的可读性。参考答案:方法重载指的是在一个类中可以声明多个相同名字的方法,而方法的形式参数有区别。调用这些同名的方法时,JVM 会根据实际参数的不同绑定到不同的方法。6、请列举 Java 语言中的权限访问修饰符,并说明每种权限的含义。解析:正确使用权限访问修饰符,能够有效控制类以及类成员的安全性,Java 语言中有四种访问修饰符,包括 public、同包、protected 以及 private,一般情况下

7、,应用中的类多是 public 权限,属性多是private 权限,方法多是 public 权限。参考答案:Java 语言中有四种权限访问修饰符,即 public、protected、同包以及 private,public表示公共权限,即任何包中都可以访问:protected 表示受保护权限,即同包中可以访问,同包中的子类可以访问:同包权限是默认权限,即不显示指明权限修饰符的时候就是同包权限,表示只有同包中可以访问:private 是私有权限,表示只能在本类中访问。7、请列举 Java 语言中的八种基本数据类型,并说明每种数据类型的含义及长度。解析:数据类型在任何一门编程语言中都是很重要的知识

8、点,属性、方法参数、方法返回值要指定各自的数据类型。Java 语言虽然是一门面向对象的语言。但是也定义了基本数据类型,基本数据类型可以直接赋值,不需要使用 new 关键字创建,可以直接使用运算符进行运算,编程中经常被使用,而且 Java语言中的基本数据类型的长度固定,不会随着平台的不同而不同。参考答案:Java 语言的八种基本数据类型有:byte 字节型,8 位长度:short 短整型,16 位长度,int 整型,32 位长度:long 长整型,64 位长度:float 单精度浮点型。32 位长度:double 双精度浮点型,64位长度:char 字符型,16 位长度:boolean 型,表示

9、逻辑值,有 true 和 false 两个值,分别表示真和假.8.什么叫引用类型,引用类型和基本数据类型有什么区别?解析:很多初级程序员都能够理解 int i=20;中的 int 是一种类型,称为整型。而对于类似Employee e=new Employee();这样表达式中的 Employee 却感觉无所适从。其实,任何一个类都是一种类型,如 Employee 就是一种类型,可以说变量 e 的类型就是 Employee。Java 语言中将类的类型称为引用类型,即 reference type。可以说,除了八种基本数据类型之外的类型都是引用类型,包括 API中所有的类、自定义的所有类,也包括数

10、组。引用类型和基本数据类型的直观区别就是引用类型的变量需要使用 new 调用构造方法来赋值,而基本数据类型可以直接使用“=” 号赋值。但是,引用类型中的String 比较特殊,既可以使用 new 关键字赋值,也可以直接使用“=”赋值,一般情况下都使用“=” 直接赋值。参考答案:Java 语言中除了基本数据类型之外的类型,都称为引用类型。引用类型就是类的类型,所有的对象都是引用类型,包括数组对象。引用类型必须使用 new 调用构造方法进行赋值,引用类型的变量拥有自己的属性和方法,可以使用圆点调用自己的属性和方法。基本数据类型直接使用=号进行赋值,且没有自己的属性和方法,往往都在声明属性或方法时使

11、用。9.对于 String 对象,可以使用“=”赋值,也可以使用 new 关键字赋值,两种方式有什么区别?解析:String 类型是实际工作中经常使用到的类型,从数据类型上划分,String 是一个引用类型,是 API 中定义的一个类。所以 String 类型的对象可以使用 new 创建,例如 String name=new String(“ORACLE”);为变量 name 进行赋值,值为“ORACLE” 。然而,String 类比起其他类 有些特殊,可以使用“=”直接赋值,如 String name=“ORACLE”,也是为变量 name 进行赋值,值为“ORACLE”。这两种赋值方式是有

12、差别的,使用 new 赋值,永远都是创建一个新对象,在新的内存空间初始化了字符串的值;而使用“=”赋值,不会每次都初始化新的字符串,而是从一个“字符串实例池”中去查找有没有要赋值的字符串,如有则直接引用;如不存在,则初始化一个字符串,并放入“字符串实例池” 。在实际编程中,往往使用“=”好对 String 类型变量进行赋值。参考答案:使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用 new 进行赋值,则每次都创建一个新的字符串。10.String 类是一个 “不可变类” ,请解释“不可变类”的含义。解析:String 类是一个不可变类,即 immutabl

13、e 类。所谓不可变,意思是当一个字符串被初始化后,它的值就不会被改变。例如,String s=new String(“hello” )为将初始化一个值为 hello 的字符串,如果调用 s.toUpperCase()看起来是把 hello 变为大写的 HELLO,然而事实上并不会把已有的 hello 变为 HELLO,而是在新的空间初始化一个 HELLO 字符串。也正因为有这种不可变性,所以才能支持“字符串实例池”的使用。参考答案:所谓的不可变类,就是当字符串初始化后,就不能够被改变。11.String 类和 StringBuffer 类有什么区别?解析:String 类是不可变类,字符串一旦

14、初始化后,就不能被改变。而 StringBuffer 类是可变类,字符串值可以呗改变。常常在实际应用中看到累死这样的代码:String s=new(“hello”);s+=”world”,这两句代码首先创建一个字符 hello,然后将 world 追加到 hello 结尾并重新赋值给变量 s。然后,这个过程实际上是这样的:首先创建一个 StringBuffer 对象,然后用 StringBuffer 类的 append 方法追加字符串,最后对 StringBuffer 对象调用 toString 方法合成字符串返回。可见,使用+号连接字符串时,本质上是使用了可变的 StringBuffer 类

15、,经变动肯定性能效率受到影响,所以建议需要追加字符串时,可以考虑直接使用 StringBuffer 类。参考答案: String 类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer 是可变字符串类,类似 String 的缓冲区,可以修改字符串的值。12StringBuffer 和 StringBuilder 类有什么区别?解析: StringBuffer 是 JDK5 中增加的一个新类,在以前版本中不存在这个类。StringBuilder 中的方法和 StringBuffer 中的方法基本相同,但是 StringBuffer 是线程安全的,而 StringBuilder

16、 不是线程安全的,因此在不考虑同步的情况下,StringBuilder 有更好的性能。参考答案:StringBuffer 是线程安全的字符串缓冲,而 StringBuilder 不是线程安全的。13.包装器类型包括哪些类,有什么作用?解析:初级程序员常常对 float 和 Float 或者 double 和 Double 感到混淆。在 Java 语言中,有八中基本数据类型,即 byte、int、long、float、double、char、boolean 。对应这八种基本数据类型,API中定义了八个类,能把这些基本类型转换成引用类型,分别是Byte、Short、Int 、Long、Double、Character、Boolean。这八个类被统称为包装器类。JDK5 之后,包装器类和基本数据类型之间可以直接转换,称为自动的装箱拆箱(boxing/unboxing) 。例如 integer it=3;it+;虽然写法上可以像使用基本数据类型一样使用包装器类型,但是本质上依*行了类似 it= new Integer(3)的转换,因此,不要轻易使用包装器

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号