这份面试题包含了19个模块:Java基础、容器、多线程、反射、对象拷贝、JavaWeb、

合集下载

Java面试题大全(答案版)

Java面试题大全(答案版)

Java面试题大全(答案版)1、一个".java"源文件中是否可以包括多个类(不是内部类)有什么限制可以,但是只能有一个类用public修饰,并且用public修饰的类名与文件名要一致2、&和&&的区别。

&和&&都可以用作逻辑与;&&还具有短路功能,即如果第一个表达式的结果为false,则不再计算第二个表达式;&还可以用作位运算符,当&操作符两边的表达式不是boolean 类型时,&表示按位与操作。

3、Java有没有gotojava中的保留字,现在没有在java中使用。

4、在JAVA中,如何跳出当前的多重嵌套循环break+变量控制与 return5、switch是否能作用在byte(拜特)上,是否能作用在long上,是否能作用在String上Switch可以作用在int上,而byte可以隐式转换为int 所以能作用在byte上不能作用在long上,也不能作用在String上6、short s1 = 1; s1 = s1 + 1;有什么错 short s1 = 1; s1 += 1;有什么错1在java中为int数据类型,short+int=int,大类型转为小类型,编译时,会报告需要强制转换类型的错误。

s1+=1不会报,因为JVM 会对它特殊处理(自动强转)7、char型变量中能不能存贮一个中文汉字为什么可以,char型变量是用来存储unicode(依妮Q特)编码的,而unicode编码包含了中文,所以是可以保存的8、编程题: 用最有效率的方法算出2乘以8等於几2<<3,表示将2左移3位;一个数左移几位就表示这个数乘以了2的几次方,左移运算,CPU直接支持,所以是最有效率的9、请设计一个一百亿的计算器思路:用两个数组分别保存两个操作数,再新建一个数组保存结果。

10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变引用变量不能变11、"=="和equals方法究竟有什么区别==和equals方法都可以用来比较两个对象是否是同一个对象。

java面试题库java面试题目及答案(3篇)

java面试题库java面试题目及答案(3篇)

第1篇一、基础知识1. Java简介题目:请简述Java的基本特点。

答案:- 简单易学:Java设计之初就考虑了易学性,使用面向对象编程。

- 原生跨平台:Java通过JVM(Java虚拟机)实现跨平台运行。

- 安全性:Java提供了强大的安全机制,如沙箱安全模型。

- 体系结构中立:Java不依赖于特定的硬件或操作系统。

- 高效:Java的运行速度接近C/C++。

- 多线程:Java内置多线程支持,便于实现并发处理。

- 动态性:Java在运行时可以进行扩展和修改。

2. Java虚拟机题目:请解释Java虚拟机(JVM)的作用。

答案:JVM是Java程序的运行环境,其主要作用包括:- 将Java字节码转换为本地机器码。

- 管理内存,包括堆、栈、方法区等。

- 提供垃圾回收机制。

- 管理线程和同步。

3. Java内存模型题目:请简述Java内存模型的组成。

答案:Java内存模型主要由以下部分组成:- 堆(Heap):存储对象实例和数组。

- 栈(Stack):存储局部变量和方法调用。

- 方法区(Method Area):存储类信息、常量、静态变量等。

- 本地方法栈(Native Method Stack):存储本地方法调用的相关数据。

- 程序计数器(Program Counter Register):存储线程的当前指令地址。

4. Java关键字题目:请列举并解释Java中的几个关键字。

答案:- `public`:表示访问权限为公开。

- `private`:表示访问权限为私有。

- `protected`:表示访问权限为受保护。

- `static`:表示属于类本身,而非对象实例。

- `final`:表示常量或方法不能被修改。

- `synchronized`:表示线程同步。

- `transient`:表示数据在序列化时不会被持久化。

二、面向对象编程5. 类和对象题目:请解释类和对象之间的关系。

答案:类是对象的模板,对象是类的实例。

java模拟面试题目(3篇)

java模拟面试题目(3篇)

第1篇一、Java基础知识1. 请简述Java语言的特点。

2. 什么是Java虚拟机(JVM)?它有什么作用?3. 什么是Java的内存模型?请解释Java内存模型中的几个关键概念:堆、栈、方法区、程序计数器、本地方法栈。

4. 什么是Java中的反射机制?请举例说明反射在Java中的应用。

5. 什么是Java中的泛型?请解释泛型的原理和作用。

6. 请简述Java中的四种访问控制符:public、protected、default、private。

7. 什么是Java中的继承和多态?请举例说明继承和多态在实际开发中的应用。

8. 什么是Java中的封装?请举例说明封装在实际开发中的应用。

9. 什么是Java中的接口和抽象类?它们之间有什么区别?10. 什么是Java中的异常处理?请解释try-catch-finally语句的执行顺序。

二、Java集合框架1. 请列举Java集合框架中的常用集合类及其特点。

2. 请简述ArrayList、LinkedList、HashMap、HashSet的区别。

3. 什么是Java中的泛型集合?请举例说明泛型集合的应用。

4. 什么是Java中的迭代器(Iterator)和枚举器(Enum)?请比较它们的区别。

5. 什么是Java中的List、Set、Map的遍历方法?6. 请解释Java中的ArrayList和LinkedList的内部实现原理。

7. 什么是Java中的HashMap的扩容机制?8. 什么是Java中的HashSet的内部实现原理?9. 请解释Java中的线程安全集合类,如CopyOnWriteArrayList、ConcurrentHashMap。

三、Java多线程与并发1. 什么是Java中的线程?请解释线程的创建、调度和同步。

2. 请简述Java中的线程状态,如新建、就绪、运行、阻塞、等待、超时等待、终止。

3. 什么是Java中的同步机制?请解释synchronized关键字的作用。

报表开发面试问题

报表开发面试问题

报表开发面试问题面试题模块介绍:一、Java 基础JDK 和JRE 有什么区别?== 和equals 的区别是什么?两个对象的hashCode()相同,则equals()也一定为true,对吗?final 在java 中有什么作用?java 中的Math.round(-1.5) 等于多少?String 属于基础的数据类型吗?java 中操作字符串都有哪些类?它们之间有什么区别?String str="i"与String str=new String(“i”)一样吗?如何将字符串反转?String 类的常用方法都有那些?抽象类必须要有抽象方法吗?普通类和抽象类有哪些区别?抽象类能使用final 修饰吗?接口和抽象类有什么区别?java 中IO 流分为几种?BIO、NIO、AIO 有什么区别?Files的常用方法都有哪些?二、容器java 容器都有哪些?Collection 和Collections 有什么区别?List、Set、Map 之间的区别是什么?HashMap 和Hashtable 有什么区别?如何决定使用HashMap 还是TreeMap?说一下HashMap 的实现原理?说一下HashSet 的实现原理?ArrayList 和LinkedList 的区别是什么?如何实现数组和List 之间的转换?ArrayList 和Vector 的区别是什么?Array 和ArrayList 有何区别?在Queue 中poll()和remove()有什么区别?哪些集合类是线程安全的?迭代器Iterator 是什么?Iterator 怎么使用?有什么特点?Iterator 和ListIterator 有什么区别?怎么确保一个集合不能被修改?三、多线程并行和并发有什么区别?线程和进程的区别?守护线程是什么?创建线程有哪几种方式?说一下runnable 和callable 有什么区别?线程有哪些状态?sleep() 和wait() 有什么区别?notify()和notifyAll()有什么区别?线程的run()和start()有什么区别?创建线程池有哪几种方式?线程池都有哪些状态?线程池中submit()和execute()方法有什么区别?在java 程序中怎么保证多线程的运行安全?多线程锁的升级原理是什么?什么是死锁?怎么防止死锁?ThreadLocal 是什么?有哪些使用场景?说一下synchronized 底层实现原理?synchronized 和volatile 的区别是什么?synchronized 和Lock 有什么区别?synchronized 和ReentrantLock 区别是什么?说一下atomic 的原理?四、反射什么是反射?什么是java 序列化?什么情况下需要序列化?动态代理是什么?有哪些应用?怎么实现动态代理?五、对象拷贝为什么要使用克隆?如何实现对象克隆?深拷贝和浅拷贝区别是什么?六、Java Webjsp 和servlet 有什么区别?jsp 有哪些内置对象?作用分别是什么?说一下jsp 的4 种作用域?session 和cookie 有什么区别?说一下session 的工作原理?如果客户端禁止cookie 能实现session 还能用吗?spring mvc 和struts 的区别是什么?如何避免sql 注入?什么是XSS 攻击,如何避免?什么是CSRF 攻击,如何避免?七、异常hrow 和throws 的区别?final、finally、finalize 有什么区别?try-catch-finally 中哪个部分可以省略?try-catch-finally 中,如果catch 中return 了,finally 还会执行吗?常见的异常类有哪些?八、网络http 响应码301 和302 代表的是什么?有什么区别?forward 和redirect 的区别?简述tcp 和udp的区别?tcp 为什么要三次握手,两次不行吗?为什么?说一下tcp 粘包是怎么产生的?OSI 的七层模型都有哪些?get 和post 请求有哪些区别?如何实现跨域?说一下JSONP 实现原理?九、设计模式说一下你熟悉的设计模式?简单工厂和抽象工厂有什么区别?十、Spring/Spring MVC什么是spring?Spring的俩大核心概念Spring框架的设计目标,设计理念,和核心是什么Spring由哪些模块组成?Spring 框架中都用到了哪些设计模式?使用Spring 有哪些方式?spring 支持几种bean 的作用域?spring 自动装配bean 有哪些方式?spring 事务实现方式有哪些?什么是Spring MVC?简单介绍下你对Spring MVC的理解?Spring MVC的主要组件?什么是Spring MVC框架的控制器?MVC是什么?MVC设计模式的好处有哪些Spring MVC常用的注解有哪些?Spring MVC与Struts2区别Spring MVC怎么样设定重定向和转发的?Spring MVC的异常处理?什么是Spring MVC框架的控制器?说一下spring mvc 运行流程?spring mvc 有哪些组件?@RequestMapping 的作用是什么@Autowired 的作用是什么?十一、Spring Boot/Spring Cloud什么是spring boot?为什么要用spring boot?spring boot 核心配置文件是什么?spring boot 配置文件有哪几种类型?它们有什么区别?spring boot 有哪些方式可以实现热部署?jpa 和hibernate 有什么区别?什么是spring cloud?spring cloud 断路器的作用是什么?spring cloud 的核心组件有哪些?十二、Hibernate为什么要使用hibernate?什么是ORM 框架?hibernate 中如何在控制台查看打印的sql 语句?hibernate 有几种查询方式?hibernate 实体类可以被定义为final 吗?在hibernate 中使用Integer 和int 做映射有什么区别?hibernate 是如何工作的?get()和load()的区别?说一下hibernate 的缓存机制?hibernate 对象有哪些状态?在hibernate 中getCurrentSession 和openSession 的区别是什么?hibernate 实体类必须要有无参构造函数吗?为什么?十三、MybatisMyBatis是什么?Mybatis优缺点Hibernate 和MyBatis 的区别为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?传统JDBC开发存在什么问题?JDBC编程有哪些不足之处,MyBatis是如何解决的?MyBatis和Hibernate的适用场景?MyBatis编程步骤是什么样的?请说说MyBatis的工作原理MyBatis的功能架构是怎样的MyBatis的框架架构设计是怎么样的什么是DBMSMybatis都有哪些Executor执行器?它们之间的区别是什么?Mybatis中如何指定使用哪一种Executor执行器?Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?Mybatis如何执行批量操作当实体类中的属性名和表中的字段名不一样,怎么办Mapper 编写有哪几种方式?什么是MyBatis的接口绑定?有哪些实现方式?使用MyBatis的mapper接口调用时有哪些要求?Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?Mybatis是否可以映射Enum枚举类?简述Mybatis的插件运行原理,以及如何编写一个插件。

Java面试题(带答案)

Java面试题(带答案)

湖南世杰Java工程师面试题选择题:单选题1,以下java程序代码,执行后的结果是( )java.util.HashMap map=newjava.util.HashMap();map.put("name",null);map.put("name","Jack");System.out.println(map.size());A: 0 B: null C: 1 D: 2答案:C2,执行以下程序后的输出结果是( )Public class Test {Public static void main(String[] args) {StringBuffer a = new StringBuffer("A");StringBuffer b = new StringBuffer("B");operator(a, b);System.out.println(a +","+ b);}Public static void operator(StringBuffer x, StringBuffer y) { x.append(y); y = x;}}A: A,A B: A,B C: B,B D: AB,B答案:D3,关于依赖注入,下列选项中说法错误的是( )A:依赖注入能够独立开发各组件,然后根据组件间关系进行组装B:依赖注入使组件之间相互依赖,相互制约C:依赖注入提供使用接口编程D:依赖注入指对象在使用时动态注入答案:B4,关于spring说法错误的是( )A: spring是一个轻量级JAVA EE的框架集合B: spring是“依赖注入”模式的实现C: 使用spring可以实现声明事务D: spring提供了AOP方式的日志系统答案:D5,要在session对象中保存属性,可以使用以下哪个语句( ) A: session.getAttribute(“key”,”value”)B: session.setAttribute(“key”,”value”)C: session.setAttribute(“key”)D: session.getAttribute(“key”)答案:B6,关于以下程序代码的说明正确的是?( )Public class HasStatic{Private static int x = 100;Public static void main(String args[]){HasStatic hs1= new HasStatic();hs1.x++;HasStatic hs2= new HasStatic();hs2.x++;hs1=new HasStatic();hs1.x++;HasStatic.x--;System.out.println("x="+x);}}A: 程序通过编译,输出结果为:x=103B: 10行不能通过编译,因为x是私有静态变量C: 5行不能通过编译,因为引用了私有静态变量D: 程序通过编译,输出结果为:x=102答案:D7,以下哪一项不是使用mvc模式设计的web应用程序所具有的优点( ) A:可维护行强B:可扩展性强C:代码重复少D:大大减少代码量答案:D8,在 myjsp.jsp 中,关于下面的代码说法错误的是: ( )<%@ page language="java" import="java.util.*" errorPage="error.jsp" isErrorPage="false" %>A: 该页面可以使用 exception 对象B: 该页面发生异常会转向 error.jspC: 存在 errorPage 属性时,isErrorPage 是默认为 falseD: error.jsp 页面一定要有isErrorPage 属性且值为 true答案:A9,关于Spring MVC的核心控制器DispatcherServlet的作用,以下说法错误的是()A:它负责接收HTTP请求B:加载配置文件C:实现业务操作D:初始化上下应用对象ApplicationContext答案:C10,下面的类图表示的是哪个设计模式?( )A:代理模式(Proxy)B:装饰模式(Decorator)C:桥接模式(Bridge)D:观察者模式(Observer)答案:D11,java如何接受request域中的参数? ( )A: request.getRequestURL()B: request. getAttribute()C: request.getParameter()D: request.getWriter()答案:C12,对下面Spring声明式事务的配置含义的说明错误的是( )<bean id="txProxyTemplate"abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFact oryBean"><property name="transactionManager"ref="myTransactionManager"/><property name="transactionAttributes"><props><prop key="get*">PROPAGATION_REQUIRED,readOnly</prop><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean>A:定义了声明式事务的配置模板B: 对get方法采用只读事务C: 缺少sessionFactory属性的注入D: 配置需要事务管理的bean的代理时,通过parent引用这个配置模板,代码如下:<bean id="petBiz" parent="txProxyTemplate"><property name="target" ref="petTarget"/></bean>答案:C13,下面的输出结果是什么?( )Public class Demo {Public static void main(String args[]){String str = new String("hello");if(str=="hello"){System.out.println("true");}else{System.out.println("false");}}}A: trueB: falseC:编译不通过D:执行报错答案:B14,下面属于java合法变量定义的是?( )A: finalB:1var1C: _var2D: var3&答案:C15,下面有关JSP内置对象的描述,说法错误的是?( )A: session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止B: request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应C: application对象:application对象实现了用户间数据的共享,可存放全局变量,可以有多个D: response对象:response对象包含了响应客户请求的有关信息答案:C16,Please choice the output result ( )public class Test{Public static void changeStr(String str){str ="welcome";}Public static void main(String[] args){String str ="1234";changeStr(str);System.out.println(str);}}A: 1234B: welcomeC: 空D: 不确定答案:A17,for(i=0;i<10;++i,sum+=i);i的最终结果是?( ) A: 10B: 9C: 11D: 以上答案都不正确答案:A18,对于下面这段代码,以下说法正确的是:( )Public class Test{Public int x;Public static void main(String args[]{System. out. println("Value is"+ x);}}A: 程序会打出 "Value is 0"B: 程序会抛出 NullPointerExceptionC: 非静态变量不能够被静态方法引用D: 编译器会抛出 "possible reference before assignment"的错误答案:C19,HashMap和HashTable的描述,错误的是? ( )A: 他们都实现了Map接口。

java考试题及答案

java考试题及答案

java考试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个关键字用于定义一个类?A. classB. interfaceC. enumD. struct答案:A2. Java中的main方法的返回类型是什么?A. voidB. intC. StringD. boolean答案:B3. 下列哪个是Java的原始数据类型?A. StringB. intC. ArrayListD. Object答案:B4. 在Java中,哪个关键字用于实现多态?A. newC. implementsD. override答案:D5. 以下哪个是Java集合框架中的接口?A. ListB. SetC. MapD. All of the above答案:D6. Java中的异常处理是通过哪两个关键字实现的?A. try and catchB. if and elseC. for and whileD. switch and case答案:A7. 以下哪个是Java的访问修饰符?A. publicB. staticC. finalD. synchronized答案:A8. 在Java中,哪个关键字用于定义一个接口?B. interfaceC. packageD. enum答案:B9. Java中的String类是不可变的,这意味着什么?A. 字符串值不能被修改B. 字符串对象不能被实例化C. 字符串不能被用作数组D. 字符串不能被用作方法参数答案:A10. 在Java中,哪个关键字用于定义一个枚举类型?A. enumB. classC. interfaceD. struct答案:A二、简答题(每题5分,共20分)1. 简述Java中的垃圾回收机制。

答案:Java中的垃圾回收机制是一种自动内存管理功能,它会自动检测不再使用的对象,并释放它们占用的内存。

垃圾回收器会周期性地运行,寻找那些没有被任何引用指向的对象,然后回收它们占用的内存空间。

java必背面试题

java必背面试题

.011# 面试题11.为什么要使用static?使用方式: 通过类名调用创建多个对象时,共享一个静态属性和方法,当有一个对象修改了,其他对象使用时,也会改变一个类只能有一个同名的静态属性和静态方法,这样每个对象创建时,就不会再分配额外空间了,存储在方法区(静态区)节省空间。

2. jvm 内存模型有哪些,分别介绍一下?包括: 堆虚拟机栈本地方法栈程序计数器方法区堆:存储对象数组集合存储new出来的东西方法区: 存储类的信息常量(常量池中)静态变量编译器编译后的数据程序计数器: 相当于当前程序制定的字节码行号,指向下一行代码(因为多线程并发,如何实现轮流切换的,是因为每一个线程都会独立有一个程序计数器,可以保证每个线程切换之后,可以回到原来的位置)虚拟机栈: 存放的是每一个栈帧,每一个栈帧对应的一个被调用的方法栈帧包括: 局部变量表操作数栈常量池引用返回地址 .....局部变量表 : 存储局部变量操作数栈 : 程序中所有的计算过程都是它来完成常量池引用: 在方法运行时,用于引用类中的常量返回地址: 当方法被调用时,方法执行结束,还要回到调用的位置所以要保存一个方法返回地址。

本地方法栈:类似于虚拟机栈,只不过虚拟机栈运行是 java 方法,而它是运行native修饰的方法(本地方法)本地方法是操作系统帮你实现的,java只负责调用即可。

3.创建对象的方式有哪些?1.new2. 克隆3.反射4.反序列化调用构造的: 1. new 2. 反射 newInstance() 调用底层无参构造不用构造: 1. 克隆 : 在堆内存直接将已经存在的对象拷贝一份。

2.反序列化: 表示将本地文件生成一个java对象。

克隆:实现一个接口Cloneable 重写clone()User u = new User();User u2 = u.clone();深克隆:如果对象属性中也有引用类型,这些引用类型也需要实现Cloneable接口,重写clone(), 如果不重写克隆出来的对象基本类型可以克隆,引用类型不会克隆,是指向同一个对象4.什么是自动装箱和拆箱?装箱:就是自动将基本类型转换成封装类型拆箱:就是自动将封装类型转成基本类型。

2024年Java经典面试题及答案

2024年Java经典面试题及答案

2024年Java经典面试题及答案问:Java中的泛型是什么?它有什么作用?答:Java中的泛型是一种参数化类型,它允许使用一个占位符来代表各种类型。

它的作用是在编译时检测类型的一致性,避免了类型转换错误,并提高了代码的重用性。

问:Java中的静态方法和实例方法有什么区别?答:静态方法是属于类的方法,可以在不创建实例对象的情况下被调用,它可以直接通过类名来调用。

实例方法是属于具体实例对象的方法,需要先创建实例对象才能调用。

问:Java中的反射是什么?它有什么用途?答:反射是指在运行状态中,动态获取类的信息并操作类的属性和方法。

它的主要用途是在运行时动态创建对象、访问属性和调用方法,以及在编译时无法确定类型的情况下进行操作。

问:Java中的多线程是什么?如何创建多线程?答:多线程是指在一个程序中同时执行多个线程,每个线程可以独立执行不同的任务。

要创建多线程可以通过继承Thread 类或实现Runnable接口来实现。

问:Java中的异常处理是什么?有哪些常见的异常类型?答:异常处理是指在程序执行过程中处理各种错误或异常情况。

常见的异常类型包括NullPointerException、ArrayIndexOutOfBoundsExcpetion、IOException等。

问:Java中的集合框架是什么?它有哪些常见的接口和类?答:集合框架是Java中用于存储和操作对象的数据结构。

常见的接口包括List、Set、Map等,常见的类包括ArrayList、LinkedList、HashSet、HashMap等。

问:Java中的IO流是什么?它有哪些常见的流类型?答:IO流是用于输入和输出操作的流。

常见的流类型包括字节流和字符流,分别对应InputStream/OutputStream和Reader/Writer。

在Java编程中, IO流是非常重要的一个概念。

IO流是用于将数据从一个地方传输到另一个地方的机制,它允许程序通过输入和输出来访问数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这份面试题包含了 19 个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 等。

如下图所示:本面试题解决的痛点 :稀缺性,提供真实的,覆盖面全的面试集合,包含 200+ 面试题。

权威性,解决了目前市场上答案太旧甚至是错误的问题。

真实性,这份面试题是企业常用的,不会偏离实际。

易理解性,通俗易懂条理清晰,部分面试题包含题目解析和代码示例,让小白也能看的懂。

节约时间,屏蔽无效重复信息,为真正需要面试题的人节省检索时间。

适宜阅读人群待面试的初/中/高级 Java 程序员查漏补缺的人想要不断完善和扩充自己 Java 技术栈的人Java 面试官面试题如下:一、Java 基础1.JDK 和 JRE 有什么区别?2.== 和 equals 的区别是什么?3.两个对象的 hashCode相同,则 equals也一定为 true,对吗?4.final 在 java 中有什么作用?5.java 中的 Math.round(-1.5) 等于多少?6.String 属于基础的数据类型吗?7.java 中操作字符串都有哪些类?它们之间有什么区别?8.String str="i"与 String str=new String("i")一样吗?9.如何将字符串反转?10.String 类的常用方法都有那些?11.抽象类必须要有抽象方法吗?12.普通类和抽象类有哪些区别?13.抽象类能使用 final 修饰吗?14.接口和抽象类有什么区别?15.java 中 IO 流分为几种?16.BIO、NIO、AIO 有什么区别?17.Files的常用方法都有哪些?二、容器18.java 容器都有哪些?19.Collection 和 Collections 有什么区别?20.List、Set、Map 之间的区别是什么?21.HashMap 和 Hashtable 有什么区别?22.如何决定使用 HashMap 还是 TreeMap?23.说一下 HashMap 的实现原理?24.说一下 HashSet 的实现原理?25.ArrayList 和 LinkedList 的区别是什么?26.如何实现数组和 List 之间的转换?27.ArrayList 和 Vector 的区别是什么?28.Array 和 ArrayList 有何区别?29.在 Queue 中 poll和 remove有什么区别?30.哪些集合类是线程安全的?31.迭代器 Iterator 是什么?32.Iterator 怎么使用?有什么特点?33.Iterator 和 ListIterator 有什么区别?34.怎么确保一个集合不能被修改?三、多线程35.并行和并发有什么区别?36.线程和进程的区别?37.守护线程是什么?38.创建线程有哪几种方式?39.说一下 runnable 和 callable 有什么区别?40.线程有哪些状态?41.sleep 和 wait 有什么区别?42.notify和 notifyAll有什么区别?43.线程的 run和 start有什么区别?44.创建线程池有哪几种方式?45.线程池都有哪些状态?46.线程池中 submit和 execute方法有什么区别?47.在 java 程序中怎么保证多线程的运行安全?48.多线程锁的升级原理是什么?49.什么是死锁?50.怎么防止死锁?51.ThreadLocal 是什么?有哪些使用场景?52.说一下 synchronized 底层实现原理?53.synchronized 和 volatile 的区别是什么?54.synchronized 和 Lock 有什么区别?55.synchronized 和 ReentrantLock 区别是什么?56.说一下 atomic 的原理?四、反射57.什么是反射?58.什么是 java 序列化?什么情况下需要序列化?59.动态代理是什么?有哪些应用?60.怎么实现动态代理?五、对象拷贝61.为什么要使用克隆?62.如何实现对象克隆?63.深拷贝和浅拷贝区别是什么?六、Java Web64.jsp 和 servlet 有什么区别?65.jsp 有哪些内置对象?作用分别是什么?66.说一下 jsp 的 4 种作用域?67.session 和 cookie 有什么区别?68.说一下 session 的工作原理?69.如果客户端禁止 cookie 能实现 session 还能用吗?70.spring mvc 和 struts 的区别是什么?71.如何避免 sql 注入?72.什么是 XSS 攻击,如何避免?73.什么是 CSRF 攻击,如何避免?七、异常74.throw 和 throws 的区别?75.final、finally、finalize 有什么区别?76.try-catch-finally 中哪个部分可以省略?77.try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?78.常见的异常类有哪些?八、网络79.http 响应码 301 和 302 代表的是什么?有什么区别?80.forward 和 redirect 的区别?81.简述 tcp 和 udp的区别?82.tcp 为什么要三次握手,两次不行吗?为什么?83.说一下 tcp 粘包是怎么产生的?84.OSI 的七层模型都有哪些?85.get 和 post 请求有哪些区别?86.如何实现跨域?87.说一下 JSONP 实现原理?九、设计模式88.说一下你熟悉的设计模式?89.简单工厂和抽象工厂有什么区别?十、Spring/Spring MVC90.为什么要使用 spring?91.解释一下什么是 aop?92.解释一下什么是 ioc?93.spring 有哪些主要模块?94.spring 常用的注入方式有哪些?95.spring 中的 bean 是线程安全的吗?96.spring 支持几种 bean 的作用域?97.spring 自动装配 bean 有哪些方式?98.spring 事务实现方式有哪些?99.说一下 spring 的事务隔离?100.说一下 spring mvc 运行流程?101.spring mvc 有哪些组件?102.@RequestMapping 的作用是什么?103.@Autowired 的作用是什么?十一、Spring Boot/Spring Cloud104.什么是 spring boot?105.为什么要用 spring boot?106.spring boot 核心配置文件是什么?107.spring boot 配置文件有哪几种类型?它们有什么区别?108.spring boot 有哪些方式可以实现热部署?109.jpa 和 hibernate 有什么区别?110.什么是 spring cloud?111.spring cloud 断路器的作用是什么?112.spring cloud 的核心组件有哪些?十二、Hibernate113.为什么要使用 hibernate?114.什么是 ORM 框架?115.hibernate 中如何在控制台查看打印的 sql 语句?116.hibernate 有几种查询方式?117.hibernate 实体类可以被定义为 final 吗?118.在 hibernate 中使用 Integer 和 int 做映射有什么区别?119.hibernate 是如何工作的?120.get和 load的区别?121.说一下 hibernate 的缓存机制?122.hibernate 对象有哪些状态?123.在 hibernate 中 getCurrentSession 和 openSession 的区别是什么?124.hibernate 实体类必须要有无参构造函数吗?为什么?十三、Mybatis125.mybatis 中 #{}和 ${}的区别是什么?126.mybatis 有几种分页方式?127.RowBounds 是一次性查询全部结果吗?为什么?128.mybatis 逻辑分页和物理分页的区别是什么?129.mybatis 是否支持延迟加载?延迟加载的原理是什么?130.说一下 mybatis 的一级缓存和二级缓存?131.mybatis 和 hibernate 的区别有哪些?132.mybatis 有哪些执行器(Executor)?133.mybatis 分页插件的实现原理是什么?134.mybatis 如何编写一个自定义插件?十四、RabbitMQ135.rabbitmq 的使用场景有哪些?136.rabbitmq 有哪些重要的角色?137.rabbitmq 有哪些重要的组件?138.rabbitmq 中 vhost 的作用是什么?139.rabbitmq 的消息是怎么发送的?140.rabbitmq 怎么保证消息的稳定性?141.rabbitmq 怎么避免消息丢失?142.要保证消息持久化成功的条件有哪些?143.rabbitmq 持久化有什么缺点?144.rabbitmq 有几种广播类型?145.rabbitmq 怎么实现延迟消息队列?146.rabbitmq 集群有什么用?147.rabbitmq 节点的类型有哪些?148.rabbitmq 集群搭建需要注意哪些问题?149.rabbitmq 每个节点是其他节点的完整拷贝吗?为什么?150.rabbitmq 集群中唯一一个磁盘节点崩溃了会发生什么情况?151.rabbitmq 对集群节点停止顺序有要求吗?十五、Kafka152.kafka 可以脱离 zookeeper 单独使用吗?为什么?153.kafka 有几种数据保留的策略?154.kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候kafka 将如何处理?155.什么情况会导致 kafka 运行变慢?156.使用 kafka 集群需要注意什么?十六、Zookeeper157.zookeeper 是什么?158.zookeeper 都有哪些功能?159.zookeeper 有几种部署模式?160.zookeeper 怎么保证主从节点的状态同步?161.集群中为什么要有主节点?162.集群中有 3 台服务器,其中一个节点宕机,这个时候 zookeeper 还可以使用吗?163.说一下 zookeeper 的通知机制?十七、MySql164.数据库的三范式是什么?165.一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?166.如何获取当前数据库版本?167.说一下 ACID 是什么?168.char 和 varchar 的区别是什么?169.float 和 double 的区别是什么?170.mysql 的内连接、左连接、右连接有什么区别?171.mysql 索引是怎么实现的?172.怎么验证 mysql 的索引是否满足需求?173.说一下数据库的事务隔离?174.说一下 mysql 常用的引擎?175.说一下 mysql 的行锁和表锁?176.说一下乐观锁和悲观锁?177.mysql 问题排查都有哪些手段?178.如何做 mysql 的性能优化?十八、Redis179.redis 是什么?都有哪些使用场景?180.redis 有哪些功能?181.redis 和 memecache 有什么区别?182.redis 为什么是单线程的?183.什么是缓存穿透?怎么解决?184.redis 支持的数据类型有哪些?185.redis 支持的 java 客户端都有哪些?186.jedis 和 redisson 有哪些区别?187.怎么保证缓存和数据库数据的一致性?188.redis 持久化有几种方式?189.redis 怎么实现分布式锁?190.redis 分布式锁有什么缺陷?191.redis 如何做内存优化?192.redis 淘汰策略有哪些?193.redis 常见的性能问题有哪些?该如何解决?十九、JVM194.说一下 jvm 的主要组成部分?及其作用?195.说一下 jvm 运行时数据区?196.说一下堆栈的区别?197.队列和栈是什么?有什么区别?198.什么是双亲委派模型?199.说一下类加载的执行过程?200.怎么判断对象是否可以被回收?201.java 中都有哪些引用类型?202.说一下 jvm 有哪些垃圾回收算法?203.说一下 jvm 有哪些垃圾回收器?204.详细介绍一下 CMS 垃圾回收器?205.新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?206.简述分代垃圾回收器是怎么工作的?207.说一下 jvm 调优的工具?208.常用的 jvm 调优的参数都有哪些?。

相关文档
最新文档