2019 Java面试试题

本文涵盖了Java面试中常见的基础语法、集合、网络编程、并发、Web、安全、框架、数据结构与算法等多个方面的问题,包括JVM、异常处理、设计模式、数据库理论等深入话题,是Java开发者面试准备的全面指南。
摘要由CSDN通过智能技术生成

基础与语法

JDK和JRE有什么区别?
==和equals的区别是什么?
基本类型和包装类对象使用 == 和 equals进行比较的结果?
什么是装箱?什么是拆箱?装箱和拆箱的执行过程?常见问题?
hashCode()相同,equals()也一定为true吗?
final在java中的作用
final finally finalize()区别
finally语句块一定执行吗?
final与static的区别
return与finally的执行顺序对返回值的影响
String对象中的replace和replaceAll的区别?
Math.round(-1.5) 等于多少?
String属于基础的数据类型吗?
java中操作字符串都有哪些类?它们之间有什么区别?
如何将字符串反转?
String类的常用方法有哪些?
普通类和抽象类有哪些区别?
抽象类必须要有抽象方法吗?
抽象类能使用final修饰吗?
接口和抽象类有什么区别?
Java访问修饰符有哪些?权限的区别?
Java中的 << << >>> 是什么?
javap的作用是什么?
throw和throws的区别?
try-catch-finally中哪个部分可以省略?
常见的异常类有哪些?
什么是JAVA内部类?
nio中的Files类常用方法有哪些?
什么是反射?有什么作用?
动态代理是什么?应用场景?
怎么实现动态代理?
什么是java序列化?什么情况下需要序列化?
什么场景要对象克隆?
深拷贝和浅拷贝区别是什么?
如何实现对象克隆与深拷贝?
Java跨平台运行的原理
Java的安全性体现在哪里?
Java针对不同的应用场景提供了哪些版本?
什么是JVM?
什么是JDK?
什么是JRE?
JDK、JRE、JVM之间的关系是什么样的?
Java语言有哪些注释的方式?
Java中有几种基本数据类型?它们分别占多大字节?
i++和++i的作用和区别
&和&&的作用和区别
|和||的作用和区别
如何让计算机最高效的算出2乘以8?
Java中基本类型的转换规则
if-else-if-else与switch的区别
while和do-while的区别
break语句的作用
continue语句的作用
Java中数组有什么特征?
可变参数的作用和特点是什么?
类和对象的关系
说一说你的对面向过程和面向对象的理解
方法重载和重写是什么?有什么区别?
this和super关键字的作用
static关键字的作用是什么?
abstract关键字的作用是什么?
java.lang.Object的常用方法?
子类构造方法的执行过程是什么样的?
==和equals的区别是什么?
什么是Java的多态?
instanceof关键字的作用是什么?
什么是Java的垃圾回收机制?
什么是包装类?为什么要有包装类?基本类型与包装类如何转换?
基本类型和包装类的区别?
java.sql.Date和java.util.Date的区别
关于Java编译,下面哪一个正确()
关于构造方法,下列说法正确的是()
Java中接口的修饰符可以是()
以下代码将输出()
关于关键字的使用说法错误的是()
关于内存回收正确的是()
哪些标识符合法?
说法正确的是()
定义一个Java类,可被所有类访问,申明正确的是()
说说你对面向对象的理解
内存泄漏和内存溢出的区别
不通过构造方法能创建对象吗?
匿名内部类可以继承类或实现接口吗?为什么?
什么是多态?如何实现?有什么好处?
Java中关于继承,错误的是()
Math.random()的返回值是多少?
同步代码块和同步方法有什么区别?
内部类和静态内部类有什么区别?
下列运算符合法的是()
打印值是多少?
关于抽象,正确的是()
正确的是()
正确的是()
错误的是()
哪些不能修饰 interface
正确是的()
存在i+1< i的数吗?为什么?
接口可否继承接口?抽象类是否可实现接口?抽象类是否可继承实体类?
可序列化对象为什么要定义serialversionUID值?
十进制100转换成八进制是多少?
Class类的getDeclaredFields()与getFields()方法的区别?
final修饰变量,是引用不能变?还是引用的对象不能变?
解释以下正则表达式的含义
声明合法的是()
下面打印结果是?
Java属于编译型还是解释型语言?
如果有两个类A、B(注意不是接口),如何编写C类同时使用这两个类的功能?
构造方法是否可以被重载?重写?
基本类型byte表示的数值范围是多少?
日期类型如何格式化?字符串如何转日期?
当输入为2的时候返回值是
System.out.println(‘a’+1);的结果是
静态与非静态成员变量区别?
二进制数,小数点向右移一位,值会发生什么变化?
下面两段代码的区别是?
swtich能否作用在byte、long、String上?
在Java 中,如何跳出当前的多重嵌套循环?
为什么不能根据返回类型来区分方法重载?
Inner Class和Static Nested Class的区别?
abstract方法是否可是static的?native的?synchronized的?
静态方法内部能对非静态调用吗?
内部类可以引用它的外部类的成员吗?有什么限制?
打印结果是什么
说说字符串与基本数据之间的转换
GB2312编码的字符串如何转换为ISO-8859-1编码?
Java中的日期与时间获取与转换?
反射主要实现类有哪些?
Class类的作用是什么?如何获取Class对象?
面向对象设计原则有哪些?
反射的使用场景、作用及优缺点?
下面代码的输出是?
关于String[] strArr=new String[10];正确的是()
写一个方法实现String类的replaceAll方法
String类是否可以继承?
String、StringBuilder、StringBuffer的区别?
为什么String类被设计用final修饰?
String s = new String(“xyz”);创建几个String对象?
String s=“a”+“b”+“c”+“d”;创建了几个对象?
对比一下Java和JavaSciprt
什么是assert?

集合

java 有哪些常用容器(集合)?
ArrayList和Vector的联系和区别
Collection和Collections有什么区别?
List、Set、Map 之间的区别是什么?
HashMap和Hashtable 有什么区别?
如何决定使用HashMap还是TreeMap?
ArrayList和LinkedList的区别是什么?
Array和ArrayList有何区别?
如何实现数组和List之间的转换?
Queue的add()和offer()方法有什么区别?
Queue的remove()和poll()方法有什么区别?
Queue的element()和peek()方法有什么区别?
哪些集合类是线程安全的?
迭代器Iterator是什么?
Iterator怎么使用?有什么特点?
Iterator和 ListIterator有什么区别?
怎么确保一个集合不能被修改?
为什么基本类型不能做为HashMap的键值?
HashMap的键值需要注意什么?
Java中已经数组类型,为什么还要提供集合?
TreeSet的原理是什么?使用需要注意什么?
HashSet实现原理是什么?有什么特点?
正确的是()
HashSet和HashMap有什么区别?
ArrayList list=new ArrayList(10);中的list扩容几次?
List、Set、Map哪个继承自Collection接口?
ArrayList与LinkedList哪个插入性能高?
LinkedHashMap、LinkedHashSet、LinkedList哪个最适合当作Stack使用?
Map的实现类中,哪些是有序的,哪些是无序的,如何保证其有序性?
TreeMap和TreeSet在排序时如何比较元素?
Collections工具类中的sort方法如何比较元素?
List里如何剔除相同的对象?
Java.util.Map的常用实现类有哪些?
List、Set、Map 是否继承自 Collection 接口?
Vector、ArrayList、LinkedList 的存储性能和特性?
List、Map、Set 三个接口,存取元素时,各有什么特点?

网络编程

java中IO流有哪些?
BIO、NIO、AIO有什么区别?
tcp和udp的区别?
tcp为什么要三次握手,两次不行吗?为什么?
tcp粘包是怎么产生的?
OSI的七层模型有哪些?
面向字符的输入流是()
如何读取文件a.txt中第10个字节?
关于流的创建,错误的是()
JDK中什么类可以通过流写入数据到内存?
如何将字符串写入文件?
输入流和输出流的区别
列举常用字节输入流和输出流
节点流和处理流区别
字节流和字符流区别与适用场景
缓冲流的优缺点
Java实现文件夹复制
Java中的Socket是什么?
基于TCP和UDP的Socket编程的主要步骤

并发

并行是什么意思?与并发的区别是什么?
什么是线程?什么是进程?为什么要有线程?有什么关系与区别?
什么是守护线程?
如何创建、启动 Java 线程?
什么是并发编程?
为什么要用并发编程?
并发编程的缺点?
导致并发程序出问题的根本原因是什么?
Java 程序中怎么保证多线程的运行安全?
如何优雅地停止一个线程?
线程包括哪些状态?状态之间是如何变化的?
什么是线程池?
线程池包含哪些状态?
Executors创建线程池有哪几种方式?
如何停止一个线程池?
synchronized关键字的作用是什么?
volatile关键字的作用是什么?
Java中的锁是什么?
锁如何使用?有什么注意事项?
可重入锁与不可重入锁之间的区别与性能差异?
Java中的锁之间的区别是什么?
synchronized锁的升级原理是什么?
什么是死锁?
如何避免死锁?
什么是活锁和饥饿?
Java中有哪些无锁技术来解决并发问题?如何使用?
什么是 Java 内存模型?
什么是 happens-before 原则?
sleep()和wait()有什么区别?
Runnable和Callable有什么区别?
notify()和notifyAll()有什么区别?
线程池中submit()和execute()方法有什么区别?
ThreadLocal有什么作用?有哪些使用场景?
synchronized和volatile的区别是什么?
synchronized和Lock有什么区别?
synchronized和ReentrantLock区别是什么?
ReadWriteLock如何使用?
JDK中Atomic开头的原子类实现原子性的原理是什么?
介绍一下ForkJoinPool的使用
LongAdder与AtomicLong有什么区别?
乐观锁与悲观锁是什么?
使用对象的wait()方法需要注意什么?
哪种方式不会使线程进入阻塞状态()
volatile关键字能否保证线程安全?
如何保证多个线程同时启动?
同步和异步有何异同,分别在什么情况下使用?
创建进程需要()
sleep()和yield()有什么区别?
说说与线程相关的方法
线程的run()方法和start()方法有什么区别?
说说对于sychronized同步锁的理解
Java中实现线程通信方式有哪些?

WEB

jsp和servlet有什么区别?
jsp有哪些内置对象?作用分别是什么?
jsp的4种作用域?
session和cookie有什么区别?
session的工作原理?
客户端禁止cookie,session还能用吗?
http响应码301和302代表的是什么?有什么区别?
forward和redirect的区别?
get和post请求有哪些区别?
如何实现跨域?
什么是JSONP?
HTML、CSS、Javascript在Web开发中的作用?
body中的onload事件和document.ready()有什么区别?
写一些常见的Javascript正则表达式?
Javascript正则表达式使用方式有哪些?
jQuery中有哪些选择器?
div居中和内容居中的css属性设置
JavaScript中null、undefined有什么区别?
Servlet中的doPost和doGet方法有什么区别?传递和获取参数上有什么区别?
jQuery中get与eq方法的区别
如何配置一个servlet?
JavaScript如何定义含有数值1至3的数组?
常见的HTTP协议状态码?

安全

如何避免sql注入?
什么是XSS攻击,如何避免?
什么是CSRF攻击,如何避免?
设计模式
常用的设计模式有哪些?
简单工厂和抽象工厂有什么区别?
为什么Java中一个类可以实现多个接口,但只能继承一个类?
什么是UML?

框架

为什么要使用spring框架?
什么是aop?
什么是ioc?
spring有哪些主要模块?
spring常用的注入方式有哪些?
spring中的bean是线程安全的吗?
spring支持几种bean的作用域?
spring自动装配bean有哪些方式?
spring事务实现方式有哪些?
介绍一下spring mvc
spring mvc运行流程?
spring mvc有哪些组件?
@RequestMapping的作用是什么?
@Autowired的作用是什么?
什么是spring boot?为什么要用?
spring boot核心配置文件是什么?
spring boot有哪些方式可以实现热部署?

数据结构与算法

递归计算n!
什么是递归?递归的优缺点是什么?
什么是复杂度?为什么要进行复杂度分析?
什么是时间复杂度?什么是空间复杂度?
如何进行复杂度分析?
使用递归输出某个目录下所有子目录和文件
常见加密算法有哪些?是否对称?
合并两个有序的链表
单向链表的反转
一个不包含相同元素的整数集合,返回所有可能的不重复子集集合
正确的是()
统计某字符串在文件中出现的次数
统计一段长字符串中某字符串的出现次数

异常

列举一些列举常见的运行时异常
OutOfMemoryError的原因有哪些?怎么解决?
Unsupported major.minor version 52是什么造成的,如何解决?
Java中如何进行异常处理?throws、throw、try、catch、finally分别如何使用?
运行时异常与受检异常有何异同?
异常的设计原则有哪些?
文件解析与生成
Java中有哪些解析XML的类库?有什么特点?
解析xml的方式有哪些?如何选择?
XML 文档定义有几种形式?有何区别?
解析XML文档有哪些种方式?
XML的使用场景有哪些?

linux

什么是Linux?
linux如何添加新系统用户?
什么是bash别名?
什么是linux内核?包括哪些模块?
linux指令-ls
linux指令-cd
linux指令-pwd
linux指令-mkdir
linux指令-rm
linux指令-rmdir
linux指令-mv
linux指令-cp
linux指令-cat
linux指令-more
linux指令-less
linux指令-tail
linux指令-head
linux指令-which
linux指令-whereis
linux指令-locate
linux指令-find
linux指令-chmod
linux指令-tar
linux指令-chown
linux指令-df
linux指令-du
linux指令-ln
linux指令-date
linux指令-cal
linux指令-grep
linux指令-wc
linux指令-ps
linux指令-top
linux指令-kill

linux指令-free MySQL

如何创建和删除数据库?
MyISAM与InnoDB的区别?
char与varchar的区别
建表语句中varchar(50)中50的指是什么?
int(10)中10指什么?
DELETE和TRUNCATE的区别是什么?
MySQL如何获取当前日期?
如何获取MySQL的版本?
什么是触发器,MySQL都有哪些触发器?
MySQL显示表前 50 行
如何连接MySQL服务端、关闭连接?
int(10)、char(16)、varchar(16)、datetime、text的意义?
说说你知道的MySQL存储引擎
说一说MySQL中的锁机制
说一说MySQL中的事务
MySQL中TEXT数据类型的最大长度
MySQL中有哪些时间字段?
MySQL中DATETIME和TIMESTAMP的区别
MySQL的数据类型有哪些?
FLOAT和DOUBLE的区别是什么?
Mysql的SQL语句是否区分大小写?
Mysql驱动程序是什么?
Innodb引擎有什么特性?
使用过MySQL的存储过程吗?介绍一下
什么是索引?什么场景使用?
索引的种类有哪些?
索引如何创建与删除?
索引对性能有哪些影响?
MySQL创建和使用索引的注意事项?
创建MySQL联合索引应该注意什么?
列值为NULL时,查询是否会用到索引?
以下语句是否会使用索引?
以下三条sql 如何只建一条索引?
LIKE 后的%和_代表什么?
与Oracle相比,Mysql有什么优势?
MySQL有哪些常用函数?
MyISAM索引与InnoDB索引的区别?
Oracle
Oracle中function和procedure有什么区别?
Oracle中字符串链接符是什么?
Oracle怎么分页?
rowid与rownum的含义是什么?
如何使用oracle伪列删除表中重复记录?
truncate和delete的异同?
简述oracle中 dml、ddl、dcl
Oracle数据库有哪些触发器?
Oracle产生的存储文件有哪些?
Oracle存储文件类型的字段?
Oracle中排序对性能的影响?
data block、extent、segment、tablespace有何区别?
什么是游标?在oracle中如何使用?
Oracle怎样实现每天备份一次?
oracle中常用的函数
哪些因素影响oracle查询性能?
oracle中存储过程、游标、函数的区别?

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值