没有合适的资源?快使用搜索试试~ 我知道了~
Java程序员面试题集常见题目经典精选汇总大全(1-50).docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 98 浏览量
2021-12-17
23:30:52
上传
评论
收藏 26KB DOCX 举报
温馨提示
试读
31页
Java程序员面试题集常见题目经典精选汇总大全(1-50).docx
资源推荐
资源详情
资源评论
Java 程序员面试题集(1-50)
一、Java 基础部分
1、面向对象的特征有哪些方面?
答:面向对象的特征主要有以下几个方面:
1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括
数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并
不关注这些行为的细节是什么。
2)继承:继承是从已有类得到继承信息创建新类的过程。提供继承信
息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派
生类)。
3)封装:通常认为封装是把过程和数据包围起来,对数据的访问只能
通过已定义的界面。面向对象的本质就是将现实世界描绘成一系列完
全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种
封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装
就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以
想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好
因此操作起来更简单)。
4)多态性:多态性是指允许不同子类型的对象对同一消息作出不同的
响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同
的事情。多态性分为编译时的多态性和运行时的多态性。运行时的多
态性可以解释为:当 A 系统访问 B 系统提供的服务时,B 系统有多种
提供服务的方式,但一切对 A 系统来说都是透明的。方法重载
(overload)实现的是编译时的多态性(也称为前绑定),而方法重写
(override)实现的是运行时的多态性(也称为后绑定)。
2、作用域 public,private,protected,以及不写时的区别?
答:区别如下:
作用域 当前类 同包 子类 其他
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
不写时默认为 default。默认对于同一个包中的其他类相当于公开
(public),对于不是同一个包中的其他类相当于私有(private)。受
保护(protected)对子类相当于公开,对不是同一包中的没有父子关
系的类相当于私有。
3、String 是最基本的数据类型吗?
答:不是。Java 中的基本数据类型只有 8 个:byte、short、int、
long、float、double、char、boolean;除了基本类型(primitivetype)
和枚举类型(enumeration type),剩下的都是引用类型(reference
type)。
4、float f=3.4;是否正确?
答:不正确。3.4 是双精度数,将双精度型(double)赋值给浮点型
(float)属于下转型(down-casting,也称为窄化)会造成精度损失,
因此需要强制类型转换 float f=(float)3.4;或者写成 floatf=3.4F;。
5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
答:对于 short s1 = 1; s1 = s1 + 1;由于 1 是 int 类型,因此 s1+1 运算结
果也是 int 型,需要强制转换类型才能赋值给 short 型。而 short s1 = 1;
s1 += 1;可以正确编译,因为 s1+= 1;相当于 s1 = (short)(s1 + 1);其中有
隐含的强制类型转换。
6、Java 有没有 goto?
答:goto 是 Java 中的保留字,在目前版本的 Java 中没有使用。(根
据 James Gosling ( Java 之 父 ) 编 写 的 《 The Java Programming
Language》一书的附录中给出了一个 Java 关键字列表,其中有 goto
和 const,但是这两个是目前无法使用的关键字,因此有些地方将其
称之为保留字,其实我个人并不认同这个说法,因为熟悉 C 语言的程
序员都知道,在系统类库中使用过的那些单词才被称为保留字)
7、int 和 Integer 有什么区别?
答:Java 是一个近乎纯洁的面向对象编程语言,但是为了编程的方便
还是引入不是对象的基本数据类型,但是为了能够将这些基本数据类
型当成对象操作,Java 为每一个基本数据类型都引入了对应的封装类
型(wrapper class),int 的封装类就是 Integer,从 JDK1.5 开始引入了
自动封箱/解封箱机制,使得二者可以相互转换。
Java 为每个原始类型提供了封装类:
原始类型: boolean,char,byte,short,int,long,float,double
封装类型:Boolean,Character,Byte,Short,Integer,Long,Float,
Double
8、&和&&的区别?
答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路
与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算
符左右两端的布尔值都是 true 整个表达式的值才是 true。&&之所以
称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表
达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&
而不是&,例如在验证用户登录时判定用户名不是 null 而且不是空字
符串,应当写为:username != null &&!username.equals(“”),二者
的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,
根本不能进行字符串的 equals 比较,否则会产生 NullPointerException
异常。注意:逻辑或运算符(|)和短路或运算符(||)的差别也是
如此。
9、解释内存中的栈(stack)、堆(heap)和静态存储区的用法。
剩余30页未读,继续阅读
资源评论
好知识传播者
- 粉丝: 493
- 资源: 4204
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功