【Java面试题】15道经典的java面试题(附答案)

Java是一种可以跨平台的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。今天,中国网页设计给大家分享15道较为经典的Java面试题,希望对你将来在企业面试中能有所帮助!

1、面向对象的特征有哪些方面?

2、访问修饰符public,private,protected的区别?

3、String 是最基本的数据类型吗? 是否可以继承String 类?

答:String不是基本数据类型,而是一个类(class),是C++、java等编程语言中的字符串。

String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 System.Char 对象的有序集合,用于表示字符串,并且该值是不可变的。

因为,java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。

而java的8大基本数据类型分别是:

整数类 byte, short, int, long

浮点类 double, float

逻辑类 boolean

文本类 char

4、short s1 = 1; s1 = s1 + 1;有错吗?

答案:这是考查Java基本数据类型转换规则。

赋值表达式等号两侧的转换的规则是右侧的向左侧的看齐,即右侧表达式要转换到和左边的类型一样。

short s1 = 1; s1 = s1 + 1;

错! s1 + 1,s1是short类型,1是int型,s1会自动转换为int型的1,与1相加后,得到int型的2,要向左侧的short类型的s1看齐,即需要通过强制类型转换。正确写法:s1 = (short) (s1 + 1);

short s1 = 1; s1 += 1;

正确! 执行s1+=1;其实执行的是s1 = (short) (s1 + 1); 其中会有一个强制转换的过程。

short s1=1,s2=1;short s3=s1+s2;

这两句代码也有编译错误,有些人会说了,难道同类型的数据还需要类型转换?答案是否定的,那么这里为什么会有编译错误呢,报错的原因主要是从数据安全方面考虑的,s1+s2的默认类型是int,因为如果s1的值接近short类型取值范围的最大值,同时s2的值也接近short类型取值范围的最大值,那么s1+s2的肯定超出了short的取值范围,此时二者之和就是int型的数据,此时就需要强制把左边的int型数据转换为右边的short型。有些人又说了,我明明写的s1为1,s2也为1,那为什么还报错,呵呵呵呵,因为此时还不知道s1和s2的值到底是多少,此处省去n个字。所以这两句代码正确的写法应该是short s1=1,s2=1;short s3=(short)(s1+s2);

5、float f=3.4;是否正确?

答案:不正确。
原因:精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 或float f = 3.4f
在java里面,没小数点的默认是int,有小数点的默认是 double;

编译器可以自动向上转型,如int 转成 long 系统自动转换没有问题,因为后者精度更高
double 转成 float 就不能自动做了,所以后面的加上个 f;

6、Java有没有goto?

答案:goto是java语言中的保留字,目前还没有在java中使用。

但是,但是你想过没有,为什么面试官要问你这个问题?他是要考察你的知识面是否广泛!!!
那么当你遇到这个题目时,你应该这样答: 其实goto这个词是C语言中的,goto语句通常与条件语句配合使用,可用来实现条件转移, 构成循环,跳出循环体等功能。而在结构化程序语言中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。但是在java语言中,goto这个词只是作为了保留字,还没有使用。

7、int和Integer有什么区别?

8、&和&&的区别?

9、栈(stack)、堆(heap)和静态区(static area)的用法

10、Math.round(11.5) 等于多少?

Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil的英文意义是天花板,该方法就表示向上取整,所以,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor的英文意义是地板,该方法就表示向下取整,所以,Math.floor(11.6)的结果为11,Math.floor(-11.6)的结果是-12;最难掌握的是round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,round(-11.5)就是-11.5+0.5=-11,向下取值就是-11,所以round(-10.5)=-11。

11、String 和StringBuilder、StringBuffer 的区别?  char 型变量中能不能存贮一个中文汉字?为什么?

12、用最有效率的方法计算2乘以8?

答案:2 << 3,
因为将一个数左移n 位,就相当于乘以了2 的n 次方,那么,一个数乘以8 只要将其左移3 位
即可,而位运算cpu 直接支持的,效率最高,所以,2 乘以8 等於几的最效率的方法是2 << 3。

//计算2*8=2*23
System.out.println(2<<3);//8=2的3次方为8
//计算2*16=2*24
System.out.println(2<<4);//16=2的4次方为16
//计算3*8=2*23
System.out.println(3<<3);//8=2的3次方为8
//计算5*8=5*23
System.out.println(5<<3);//8=2的3次方为8
//计算6*4=6*22
System.out.println(6<<2);//4=2的2次方为4

13、数组有没有length()方法?String 有没有length()方法?

14、构造器(constructor)是否可被重写(override)?

15、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/2418.html

(0)
江山如画的头像江山如画管理团队
上一篇 2018年8月1日 下午8:36
下一篇 2018年8月2日 上午8:15

99%的人还看了以下文章

  • python 初学者练手上机实操二

    一、题目:定义三个变量分别存储你的姓名、班级、年龄并输出。 要求: 1、新建一个“info.py”文件 2、编写程序。 3、调试程序。 4、排除错误。 二、题目:导入turtle包(import turtle),绘制边长为60的等边三角形。 要求: 1、新建一个“turtle1.py”文件 2、编写程序。 3、调试程序。 4、排除错误。 三、题目:从键盘输入…

    2023年5月5日
    15.0K0
  • 单元测试经验总结,单元测试快速入门教程六

    测试人员在进行测试的工作过程中,应该注意积累测试工作经验,这样可以缩短单元测试的时间,提高测试效果和效率。 如: 1.在做单元测试的过程中,要灵活选用测试用例设计技术,可以首先使用黑盒测试用例设计技术,然后根据相应的覆盖率统计再补充白盒测试用例。这样既减少了测试工作的重复,又保证了单元测试的完整性。 2.设计驱动程序时,要保证测试逻辑的正确性。否则,即使代码…

    2018年4月18日
    3.8K0
  • 第一课:maven是什么,为什么使用Maven?

    maven是一款服务于java平台的自动化构建工具。

    2023年1月27日
    2.2K0
  • JSP三层架构开发学生管理系统源码-dao、entity、service、servlet

    表示层:MVC中的视图层和控制器层,前端通常为html css js jsp文件,后端例如Servlet文件,调用业务逻辑层业务逻辑层(Service):接受表示层的请求,先进行逻辑处理,后调用数据逻辑层,(增:查+增) 数据访问层(Dao):直接访问数据库的操作 通过三层架构,将表示层请求传递到数据访问层,数据访问层将结果返回至表示层 具体流程 开发环境:…

    2021年5月1日 编程开发
    3.3K0
  • Java GUI编程高级实例二:弹出式菜单及添加工具栏

    三、 为组件定制弹出式菜单 问题的提出  为“Java Editor”程序的文本编辑区域定制如图所示的的弹出式菜单。 菜单中有五个菜单项组成,分别指示了不同的字体风格,可通过菜单项的选择实现文本区域中文本字体和字号的改变。 用JPopupMenu类建立弹出式菜单 建立弹出式菜单 预先定义一个继承JPopupMenu类的子类,弹出式菜单施加给的对象应由构造方法…

    2020年1月22日
    6.8K0
  • 一文让你快速理解欠拟合和过拟合,以及解决欠拟合和过拟合的方法?(精)

    前面分享过《深度学习中的激活函数、防止过拟合的方法》、《最清楚的过拟合(Overfitting)、欠拟合讲解》,今天给125建站网再给大家梳理一下,让你快速理解欠拟合和过拟合,以及解决欠拟合和过拟合的方法? 欠拟合与过拟合 欠拟合是指模型在训练集、验证集和测试集上均表现不佳的情况; 过拟合是指模型在训练集上表现很好,到了验证和测试阶段就大不如意了,即模型的泛…

    2023年1月16日
    3.2K0

发表回复

登录后才能评论