2020年java面试汇总_2020年新版Java面试题大全

一、Java基础知识面试题

1、Java概述

何为编程?

什么是Java?

jdk1.5之后的三大版本?

JVM、JRE和JDK的关系?

什么是跨平台性?原理是什么?

Java语言有哪些特点?

什么是字节码?采用字节码的好处是什么?

什么是Java程序的主类?应用程序和小程序的主类有何不同?

Java应用程序与小程序之间有那些差别?

Java和C++的区别?

Oracle JDK和OpenJDK的对比?

2、基础语法

①.数据类型

Java有哪些数据类型

switch是否能作用在byte上,是否能作用在long上,是否能作用在String上

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

Math.round(11.5)等于多少?Math.round(-11.5)等于多少

float f=3.4;是否正确

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

②.编码

Java语言采用何种编码方案?有何特点?

③.注释

什么Java注释

④.访问修饰符

访问修饰符public,private,protected,以及不写(默认)时的区别

⑤.运算符

&和&&的区别

⑥.关键字

Java有没有goto

final有什么用?

final finally finalize区别

this关键字的用法

super关键字的用法

this与super的区别

static存在的主要意义

static的独特之处

static应用场景

static注意事项

⑦.流程控制语句

break,continue,return的区别及作用

在Java中,如何跳出当前的多重嵌套循环

3、面向对象

①.面向对象概述

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

②.面向对象三大特性

面向对象的特征有哪些方面

什么是多态机制?Java语言是如何实现多态的?

面向对象五大基本原则是什么(可选)

③.类与接口

抽象类和接口的对比

普通类和抽象类有哪些区别?

抽象类能使用final修饰吗?

创建一个对象用什么关键字?对象实例与对象引用有何不同?

④.变量与方法

成员变量与局部变量的区别有哪些

在Java中定义一个不做事且没有参数的构造方法的作用

在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?

一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确执行吗?为什么?

构造方法有哪些特性?

静态变量和实例变量区别

静态变量与普通变量区别

静态方法和实例方法有何不同?

在一个静态方法内调用一个非静态成员为什么是非法的?

什么是方法的返回值?返回值的作用是什么?

⑤.内部类

什么是内部类?

内部类的分类有哪些

内部类的优点

内部类有哪些应用场景

局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?

内部类相关,看程序说出运行结果

⑥.重写与重载

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

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

⑦.对象相等判断

==和equals的区别是什么

hashCode与equals(重要)

对象的相等与指向他们的引用相等,两者有什么不同?

⑧.值传递

当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递

为什么Java中只有值传递

值传递和引用传递有什么区别

⑨.Java包

JDK中常用的包有哪些

import java和javax有什么区别

4、IO流

java中IO流分为几种?

BIO,NIO,AIO有什么区别?

Files的常用方法都有哪些?

5、反射

什么是反射机制?

反射机制优缺点

反射机制的应用场景有哪些?

Java获取反射的三种方法

6、网络编程

7、常用API

①.String相关

字符型常量和字符串常量的区别

什么是字符串常量池?

String是最基本的数据类型吗

String有哪些特性

String为什么是不可变的吗?

String真的是不可变的吗?

是否可以继承String类

String str="i"与String str=new String("i")一样吗?

String s=new String("xyz");创建了几个字符串对象

如何将字符串反转?

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

String类的常用方法都有那些?

在使用HashMap的时候,用String做key有什么好处?

String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的

②.Date相关

③.包装类相关

自动装箱与拆箱

int和Integer有什么区别

Integer a=127与Integer b=127相等吗

8、常用工具类库

9、单元测试

10、日志

二、Java异常面试题

1、Error和Exception区别是什么?

2、运行时异常和一般异常(受检异常)区别是什么?

3、JVM是如何处理异常的?

4、throw和throws的区别是什么?

5、final、finally、finalize有什么区别?

6、NoClassDefFoundError和ClassNotFoundException区别?

7、try-catch-finally中哪个部分可以省略?

8、try-catch-finally中,如果catch中return了,finally还会执行吗?

9、类ExampleA继承Exception,类ExampleB继承ExampleA?

10、常见的RuntimeException有哪些?

11、Java常见异常有哪些?

三、JVM面试题

1、Java内存区域

说一下JVM的主要组成部分及其作用?

说一下JVM运行时数据区?

深拷贝和浅拷贝?

说一下堆栈的区别?

队列和栈是什么?有什么区别?

2、HotSpot虚拟机对象探秘

对象的创建

为对象分配内存

处理并发安全问题

对象的访问定位

3、内存溢出异常

Java会存在内存泄漏吗?请简单描述

4、垃圾收集器

简述Java垃圾回收机制

GC是什么?为什么要GC

垃圾回收的优点和原理。并考虑2种回收机制

垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

Java中都有哪些引用类型?

怎么判断对象是否可以被回收?

在Java中,对象什么时候可以被垃圾回收

JVM中的永久代中会发生垃圾回收吗

说一下JVM有哪些垃圾回收算法?

说一下JVM有哪些垃圾回收器?

详细介绍一下CMS垃圾回收器?

新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?

简述分代垃圾回收器是怎么工作的?

5、内存分配策略

①.简述java内存分配与回收策率以及Minor GC和Major GC

对象优先在Eden区分配

大对象直接进入老年代

长期存活对象将进入老年代

6、虚拟机类加载机制

简述java类加载机制?

描述一下JVM加载Class文件的原理机制

什么是类加载器,类加载器有哪些?

说一下类装载的执行过程?

什么是双亲委派模型?

7、JVM调优

说一下JVM调优的工具?

常用的JVM调优的参数都有哪些?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值