2023年200多道Java基础面试题
csdh11 2025-01-10 12:44 3 浏览
最近有很多人后台问我,有什么方法能够快速提升自己,通过阿里、腾讯、字节跳动、京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,希望大家都能圆梦大厂,加油,我命由我不由天,没有套路开始整
网上收集到的一些JAVA最最基础的问题。大家准备一下,通过一面应该问题不大
1、JDK 和 JRE 有什么区别?
2、== 和 equals 的区别是什么?
3、final 在 java 中有什么作用?
4、java 中的 Math.round(-1.5) 等于多少?
5、String 属于基础的数据类型吗?
6、String str="i"与 String str=new String(“i”)一样吗?
7、如何将字符串反转?
8、String 类的常用方法都有哪些?
9、new String("a") + new String("b") 会创建几个对象?
10、如何将字符串反转?
11、String 类的常用方法都有那些?
12、普通类和抽象类有哪些区别?
13、接口和抽象类有什么区别?
14、java 中 IO 流分为几种?
15、BIO、NIO、AIO 有什么区别?
16、Files的常用方法都有哪些?
17、什么是反射?
18、什么是 java 序列化?什么情况下需要序列化?
19、为什么要使用克隆?如何实现对象克隆?深拷贝和浅拷贝区别是什么?
20、throw 和 throws 的区别?
21、final、finally、finalize 有什么区别?
22、try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
23、常见的异常类有哪些?
24、hashcode是什么?有什么作用?
25、java 中操作字符串都有哪些类?它们之间有什么区别?
26、java 中都有哪些引用类型?
27、在 Java 中,为什么不允许从静态方法中访问非静态变量?
28、说说Java Bean的命名规范
29、Java Bean 属性命名规范问题分析
30、什么是 Java 的内存模型?
31、在 Java 中,什么时候用重载,什么时候用重写?
32、举例说明什么情况下会更倾向于使用抽象类而不是接口?
33、实例化对象有哪几种方式
34、byte类型127+1等于多少
35、Java 容器都有哪些?
36、Collection 和 Collections 有什么区别?
37、list与Set区别
38、HashMap 和 Hashtable 有什么区别?
39、说一下 HashMap 的实现原理?
40、set有哪些实现类?
41、说一下 HashSet 的实现原理?
42、ArrayList 和 LinkedList 的区别是什么?
43、如何实现数组和 List 之间的转换?
44、在 Queue 中 poll()和 remove()有什么区别?
45、哪些集合类是线程安全的
46、迭代器 Iterator 是什么?
47、Iterator 怎么使用?有什么特点?
48、Iterator 和 ListIterator 有什么区别?
49、怎么确保一个集合不能被修改?
50、队列和栈是什么?有什么区别?
51、Java8开始ConcurrentHashMap,为什么舍弃分段锁?
52、ConcurrentHashMap(JDK1.8)为什么要使用synchronized而不是如ReentranLock这样的可重入锁?
53、concurrentHashMap和HashTable有什么区别
54、HasmMap和HashSet的区别
55、请谈谈 ReadWriteLock 和 StampedLock
56、线程的run()和start()有什么区别?
57、为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?
58、Synchronized 用过吗,其原理是什么?
59、JVM 对 Java 的原生锁做了哪些优化?
60、为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?
61、Java 如何实现多线程之间的通讯和协作?
62、Thread 类中的 yield 方法有什么作用?
63、为什么说 Synchronized 是非公平锁?
64、请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性?
65、为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理又是什么?什么是 CAS,它有什么特性?
66、乐观锁一定就是好的吗?
67、请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。
68、ReentrantLock 是如何实现可重入性的?
69、什么是锁消除和锁粗化?
70、跟 Synchronized 相比,可重入锁 ReentrantLock 其实现原理有什么不同?
71、那么请谈谈 AQS 框架是怎么回事儿?
72、AQS 对资源的共享方式?
73、如何让 Java 的线程彼此同步?
74、你了解过哪些同步器?请分别介绍下。
75、Java 中的线程池是如何实现的
76、创建线程池的几个核心构造参数
77、线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?
78、volatile 关键字的作用
79、既然 volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile 变量的运算就是并发安全的?
80、ThreadLocal 是什么?有哪些使用场景?
81、请谈谈 ThreadLocal 是怎么解决并发安全的?
82、很多人都说要慎用 ThreadLocal,谈谈你的理解,使用 ThreadLocal 需要注意些什么?
83、为什么代码会重排序?
84、什么是自旋
85、多线程中 synchronized 锁升级的原理是什么?
86、synchronized 和 ReentrantLock 区别是什么?
87、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势?
88、jsp 和 servlet 有什么区别?
89、jsp 有哪些内置对象?作用分别是什么?
90、forward 和 redirect 的区别?
91、说一下 jsp 的 4 种作用域?
92、session 和 cookie 有什么区别?
93、如果客户端禁止 cookie 能实现 session 还能用吗?
94、什么是上下文切换?
95、cookie、session、token
96、说一下 session 的工作原理?
97、http 响应码 301 和 302 代表的是什么?有什么区别?
98、简述 tcp 和 udp的区别?
99、tcp 为什么要三次握手,两次不行吗?为什么?
100、OSI 的七层模型都有哪些?
101、get 和 post 请求有哪些区别?
102、什么是 XSS 攻击,如何避免?
103、什么是 CSRF 攻击,如何避免?
104、如何实现跨域?说一下 JSONP 实现原理?
105、websocket应用的是哪个协议
106、说一下 tcp 粘包是怎么产生的?
107、请列举出在 JDK 中几个常用的设计模式?
108、什么是设计模式?你是否在你的代码里面使用过任何设计模式?
109、Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
110、在 Java 中,什么叫观察者设计模式(observer design pattern)?
111、使用工厂模式最主要的好处是什么?在哪里使用?
112、请解释自动装配模式的区别?
113、举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?
114、什么是 Spring 框架?Spring 框架有哪些主要模块?
115、使用 Spring 框架能带来哪些好处?
116、Spring IOC、AOP举例说明
117、什么是控制反转(IOC)?什么是依赖注入?
118、BeanFactory 和 ApplicationContext 有什么区别?
119、什么是 JavaConfig?
120、什么是 ORM 框架?
121、Spring 有几种配置方式?
122、请解释 Spring Bean 的生命周期?
123、Spring Bean 的作用域之间有什么区别?Spring容器中的bean可以分为5个范围:
124、如何在 Spring Boot 中禁用 Actuator 端点安全性?
125、什么是 Spring inner beans?
126、Spring 框架中的单例 Beans 是线程安全的么?
127、请解释 Spring Bean 的自动装配?
128、如何开启基于注解的自动装配?
129、什么是 Spring Batch?
130、spring mvc 和 struts 的区别是什么?
131、请举例解释@Required 注解?
132、Spring常用注解
133、项目中是如何实现权限验证的,权限验证需要几张表
134、谈谈controller,接口调用的路径问题
135、如何防止表单重复提交
136、Spring中都应用了哪些设计模式
137、请举例说明如何在 Spring 中注入一个 Java Collection?
138、mybatis 中 #{}和 ${}的区别是什么?
139、mybatis 是否支持延迟加载?延迟加载的原理是什么?
140、说一下 mybatis 的一级缓存和二级缓存?
141、mybatis 有哪些执行器(Executor)?
142、mybatis 和 hibernate 的区别有哪些?
143、myBatis查询多个id、myBatis常用属性
144、mybatis一级缓存、二级缓存
145、mybatis如何防止sql注入
146、hibernate 中如何在控制台查看打印的 sql 语句?
147、hibernate 有几种查询方式?
148、hibernate 实体类可以被定义为 final 吗?
149、在 hibernate 中使用 Integer 和 int 做映射有什么区别?
150、什么是 Spring Boot?Spring Boot 有哪些优点?
151、Spring Boot 中的监视器是什么?
152、什么是 YAML?
153、如何使用 Spring Boot 实现分页和排序?
154、如何使用 Spring Boot 实现异常处理?
155、单点登录
156、Spring Boot比Spring多哪些注解
157、打包和部署
158、Spring Boot如何访问不同的数据库
159、查询网站在线人数
160、easyExcel如何实现
161、什么是 Swagger?你用 Spring Boot 实现了它吗?
162、数据库的三范式是什么?
163、一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?
164、如何获取当前数据库版本?
165、说一下 ACID 是什么?
166、char 和 varchar 的区别是什么?
167、float 和 double 的区别是什么?
168、Oracle分页sql
169、数据库如何保证主键唯一性
170、如何设计数据库
171、性别是否适合做索引
172、如何查询重复的数据
173、数据库一般会采取什么样的优化方法?
174、索引怎么定义,分哪几种
175、mysql 的内连接、左连接、右连接有什么区别?
176、RabbitMQ的使用场景有哪些?
177、RabbitMQ有哪些重要的角色?有哪些重要的组件?
178、RabbitMQ中 vhost 的作用是什么?
179、说一下 jvm 的主要组成部分?及其作用?
180、说一下 jvm 运行时数据区?
181、什么是类加载器,类加载器有哪些?
182、说一下类加载的执行过程?
183、JVM的类加载机制是什么?
184、什么是双亲委派模型?
185、怎么判断对象是否可以被回收?
186、说一下 jvm 有哪些垃圾回收算法?
187、说一下 jvm 有哪些垃圾回收器?
188、JVM栈堆概念,何时销毁对象
189、新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
190、详细介绍一下 CMS 垃圾回收器?
191、简述分代垃圾回收器是怎么工作的?
192、Redis是什么?
193、Redis都有哪些使用场景?
194、Redis有哪些功能?
195、Redis支持的数据类型有哪些?
196、Redis取值存值问题
197、Redis为什么是单线程的?
198、Redis真的是单线程的吗?
199、Redis持久化有几种方式?
200、Redis和 memecache 有什么区别?
201、Redis支持的 java 客户端都有哪些?
202、jedis 和 redisson 有哪些区别?
203、什么是缓存穿透?怎么解决?
204、怎么保证缓存和数据库数据的一致性?
205、Redis,什么是缓存穿透?怎么解决?
206、Redis怎么实现分布式锁?
207、Redis分布式锁有什么缺陷?
208、Redis如何做内存优化?
相关推荐
- JNDI注入详解
-
JNDI简介JNDI是java命名与目录接口(javaNamingandDirectoryInterface),在J2EE规范中是重要的规范之一。通过调用JNDI的API应用程序可以定位资源和...
- Java 近期新闻:Hibernate 6.0、JobRunr 5.0、JHipster 7.8.0
-
本期Java近期新闻综述内容涉及JDK19、SpringBoot、SpringCVEs、ApacheTomcat点版本、QuarkusToolsforVisualStudio...
- 2023年200多道Java基础面试题
-
最近有很多人后台问我,有什么方法能够快速提升自己,通过阿里、腾讯、字节跳动、京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,希望大家都能...
- 完全零基础入门Fastjson系列漏洞
-
一、前置知识1.fastjson怎么用?fastjson是啥百度就有,看了之后不熟悉的人还是会一脸懵逼,我们可以通过以下这个小例子来快速学会使用...
- 解密阿里线上问题诊断工具Arthas和jvm-sandbox
-
大纲目录这篇文章是之前学习Arthas和jvm-sandbox的一些心得和总结,希望能帮助到大家。本文字较多,可以根据目录进行对应的阅读。背景:现在的问题所在?Arthas:Arthas能帮助你干什...
- Java 服务 Docker 容器化最佳实践
-
一、概述当我们在容器中运行Java应用程序时,可能希望对其进行调整参数以充分利用资源。...
- “堆内存持续占用高 且 ygc回收效果不佳” 排查处理实践
-
作者:京东零售王江波说明:部分素材来源于网络,数据分析全为真实数据。一、问题背景自建的两套工具,运行一段时间后均出现内存占用高触发报警,频繁younggc且效果不佳。曾经尝试多次解决,因各种原...
- log4j2 JNDI注入分析笔记
-
前言ApacheLog4j2是一款优秀的Java日志框架,最近爆出了一个jndi注入的漏洞,影响面非常广,各大厂商都被波及。Log4j2作为日志记录的第三方库,被广泛得到使用,这次主要分享一下,最近...
- Linux-常用操作命令介绍
-
1.帮助命令1.1help命令...
- 基于容器的Java内存参数解析
-
在基于物理的服务器(此处主要与容器平台进行区分,故此描述)上运行Java应用程序时,我们通常会使用Java虚拟机参数"-Xms、-Xmx"来指定Java堆内存的初始值和最大值。如果要将...
- 用于处理 PDF 文档的开放源码 Java 工具
-
哈喽,我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!...
- Log4j 严重漏洞修最新修复方案参考
-
CVE-2021-44228,原理上是log4j-core代码中的JNDI注入漏洞。这个漏洞可以直接导致服务器被入侵,而且由于“日志”场景的特性,攻击数据可以多层传导,甚至可以威胁到纯内网的服...
- JVM性能监控工具
-
生产环境慎用的命令JDK中带有了一堆的工具是可以用来查看运行状况,排查问题的,但对于这些工具还是要比较清楚执行后会发生什么,否则有可能会因为执行了一个命令就导致严重故障,重点讲下影响比较大的jmap。...
- 一招教你在linux服务器配置Jenkins持续集成神器
-
01配置插件...
- 谈JVM xmx, xms等内存相关参数合理性设置
-
作者:京东零售刘乐上一篇文章说到JVM垃圾回收算法的两个优化标的:吞吐量和停顿时长,并提到这两个优化目标是有冲突的。那么有没有可能提高吞吐量而不影响停顿时长,甚至缩短停顿时长呢?答案是有可能的,提高...
- 一周热门
-
-
一文读懂关于MySQL Datetime字段允许插入0000-00-00无效日期
-
MySQL数据库关于表的一系列操作 mysql 表操作
-
IDC机房服务器托管可提供的服务
-
新版腾讯QQ更新Windows 9.9.7、Mac 6.9.25、Linux 3.2.5版本
-
一款全能的看图软件,速度快、功能强、免费用
-
深度测评:Pixave 和图片管理之间的距离(二)
-
Boston Dynamics Founder to Attend the 2024 T-EDGE Conference
-
Serv-u 提权
-
一文看懂mysql时间函数now()、current_timestamp() 和sysdate()
-
详解PostgreSQL 如何获取当前日期时间
-
- 最近发表
- 标签列表
-
- huaweiupdateextractor (27)
- mysql 时间索引 (31)
- mydisktest_v298 (34)
- document.appendchild (35)
- 头像打包下载 (61)
- acmecadconverter_8.52绿色版 (39)
- oracle timestamp比较大小 (28)
- word文档批量处理大师破解版 (36)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- 加密与解密第四版pdf (30)
- jemeter官网 (31)
- parsevideo (33)
- 个人网站源码 (37)
- exe4j_java_home (30)
- centos7.4下载 (33)
- xlsx.full.min.js下载 (32)
- 深度学习 pdf (28)
- mysql 查询今天的数据 (34)
- intouch2014r2sp1永久授权 (36)
- 先锋影音源资2019 (35)
- usb2.0-serial驱动下载 (30)
- vs2010官网 (31)
- python核心编程第四版pdf (32)
- jdk1.8.0_191下载 (33)