【面试】Java高频面试题(2023最新整理)

文章目录

  • 一、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、如何将字符串反转?
  • 二、java集合
  • 三、多线程
  • 四、JVM
  • 五、JavaIO、BIO、NIO、AIO、Netty面试题
  • 六、Java异常面试题
  • 七、设计模式面试题
  • 八、Spring面试题
  • 九、 Spring MVC面试题
  • 十、Spring Boot面试题
  • 十一、Spring Cloud面试题
  • 十二、Redis面试题
  • 十三、MyBatis面试题
  • 十四、MySQL面试题
  • 十五、TCP、UDP、Socket、HTTP面试题
  • 十六、Nginx面试题
  • 十七、ElasticSearch面试题
  • 十八、kafka面试题
  • 十九、RabbitMQ面试题
  • 二十、Dubbo面试题
  • 二十一、ZooKeeper面试题
  • 二十二、Netty面试题
  • 二十三、Tomcat面试题
  • 二十四、Linux面试题
  • 二十五、互联网相关面试题
  • 二十六、互联网安全面试题

一、java基础

1、JDK 和 JRE 有什么区别?

JDK(Java Development Kit),Java开发工具包
JRE(Java Runtime Environment),Java运行环境
JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib
就是JVM工作所需要的类库。

2、== 和 equals 的区别是什么?

对于基本类型,== 比较的是值;
对于引用类型,==比较的是地址;
equals不能用于基本类型的比较;
如果没有重写equals,equals就相当于 ==;
如果重写了equals方法,equals比较的是对象的内容;

3、final 在 java 中有什么作用?

(1)用来修饰一个引用
如果引用为基本数据类型,则该引用为常量,该值无法修改;
如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。
如果引用时类的成员变量,则必须当场赋值,否则编译会报错。
(2)用来修饰一个方法
当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。
(3)用来修饰类
当用final修改类时,该类成为最终类,无法被继承。
比如常用的String类就是最终类。

4、java 中的 Math.round(-1.5) 等于多少?

Math提供了三个与取整有关的方法:ceil、floor、round
(1)ceil:向上取整;
Math.ceil(11.3) = 12;
Math.ceil(-11.3) = 11;
(2)floor:向下取整;
Math.floor(11.3) = 11;
Math.floor(-11.3) = -12;
(3)round:四舍五入;
加0.5然后向下取整。
Math.round(11.3) = 11;
Math.round(11.8) = 12;
Math.round(-11.3) = -11;
Math.round(-11.8) = -12;

5、String 属于基础的数据类型吗?

不属于。
八种基本数据类型:byte、short、char、int、long、double、float、boolean。

6、String str="i"与 String str=new String(“i”)一样吗?

String str="i"会将起分配到常量池中,常量池中没有重复的元素,如果常量池中存中i,就将i的地址赋给变量,如果没有就创建一个再赋给变量。
String str=new String(“i”)会将对象分配到堆中,即使内存一样,还是会重新创建一个新的对象。

7、如何将字符串反转?

将对象封装到stringBuilder中,调用reverse方法反转。
在这里插入图片描述

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

(1)常见String类的获取功能
length:获取字符串长度;
charAt(int index):获取指定索引位置的字符;
indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引;
substring(int start):从指定位置开始截取字符串,默认到末尾;
substring(int start,int end):从指定位置开始到指定位置结束截取字符串;

(2)常见String类的判断功能
equals(Object obj): 比较字符串的内容是否相同,区分大小写;
contains(String str): 判断字符串中是否包含传递进来的字符串;
startsWith(String str): 判断字符串是否以传递进来的字符串开头;
endsWith(String str): 判断字符串是否以传递进来的字符串结尾;
isEmpty(): 判断字符串的内容是否为空串"";

(3)常见String类的转换功能
byte[] getBytes(): 把字符串转换为字节数组;
char[] toCharArray(): 把字符串转换为字符数组;
String valueOf(char[] chs): 把字符数组转成字符串。valueOf可以将任意类型转为字符串;
toLowerCase(): 把字符串转成小写;
toUpperCase(): 把字符串转成大写;
concat(String str): 把字符串拼接;

(4)常见String类的其他常用功能
replace(char old,char new) 将指定字符进行互换
replace(String old,String new) 将指定字符串进行互换
trim() 去除两端空格
int compareTo(String str) 会对照ASCII 码表 从第一个字母进行减法运算 返回的就是这个减法的结果,如果前面几个字母一样会根据两个字符串的长度进行减法运算返回的就是这个减法的结果,如果连个字符串一摸一样 返回的就是0。

9、new String(“a”) + new String(“b”) 会创建几个对象?

对象1:new StringBuilder()
对象2:new String(“a”)
对象3:常量池中的"a"
对象4:new String(“b”)
对象5:常量池中的"b"
深入剖析:StringBuilder中的toString():
对象6:new String(“ab”)
强调一下,toString()的调用,在字符串常量池中,没有生成"ab"
附加题

String s1 = new String(“1”) + new String(“1”);//s1变量记录的地址为:new String
s1.intern();//在字符串常量池中生成"11"。如何理解:jdk6:创建了一个新的对象"11",也就有新的地址;jdk7:此时常量池中并没有创建"11",而是创建了一个指向堆空间中new
String(“11”)的地址; String s2 = “11”; System.out.println(s1 ==
s2);//jdk6:false;jdk7:true

10、如何将字符串反转?

添加到StringBuilder中,然后调用reverse()。

更多Java基础知识面试题 https://writer.blog.csdn.net/article/details/129093071

二、java集合

Java集合面试题 https://writer.blog.csdn.net/article/details/129758782

三、多线程

Java并发编程面试题 https://writer.blog.csdn.net/article/details/129860582

四、JVM

Java虚拟机(JVM)面试题 https://writer.blog.csdn.net/article/details/129881700

五、JavaIO、BIO、NIO、AIO、Netty面试题

JavaIO、BIO、NIO、AIO、Netty面试题 https://writer.blog.csdn.net/article/details/129354121

六、Java异常面试题

Java异常面试题 https://writer.blog.csdn.net/article/details/129878263

七、设计模式面试题

设计模式面试题 https://writer.blog.csdn.net/article/details/127910080

八、Spring面试题

Spring面试题 https://writer.blog.csdn.net/article/details/129887594

九、 Spring MVC面试题

Spring MVC面试题 https://writer.blog.csdn.net/article/details/129892819

十、Spring Boot面试题

Spring Boot面试题 https://writer.blog.csdn.net/article/details/129431019

十一、Spring Cloud面试题

Spring Cloud面试题 https://writer.blog.csdn.net/article/details/129430572

十二、Redis面试题

Redis面试题 https://writer.blog.csdn.net/article/details/129895331

十三、MyBatis面试题

MyBatis面试题 https://writer.blog.csdn.net/article/details/129906686

十四、MySQL面试题

MySQL面试题https://writer.blog.csdn.net/article/details/129907409

十五、TCP、UDP、Socket、HTTP面试题

TCP、UDP、Socket、HTTP面试题 https://writer.blog.csdn.net/article/details/129913146

十六、Nginx面试题

Nginx面试题 https://writer.blog.csdn.net/article/details/129918147

十七、ElasticSearch面试题

ElasticSearch面试题 https://writer.blog.csdn.net/article/details/129941424

十八、kafka面试题

kafka面试题 https://writer.blog.csdn.net/article/details/129944044

十九、RabbitMQ面试题

RabbitMQ面试题 https://writer.blog.csdn.net/article/details/129918812

二十、Dubbo面试题

Dubbo面试题 https://writer.blog.csdn.net/article/details/129921254

二十一、ZooKeeper面试题

ZooKeeper面试题 https://writer.blog.csdn.net/article/details/129922008

二十二、Netty面试题

Netty面试题 https://writer.blog.csdn.net/article/details/129938744

二十三、Tomcat面试题

Tomcat面试题 https://writer.blog.csdn.net/article/details/129928438

二十四、Linux面试题

Linux面试题 https://writer.blog.csdn.net/article/details/129931699

二十五、互联网相关面试题

互联网相关面试题 https://writer.blog.csdn.net/article/details/129953268

二十六、互联网安全面试题

互联网安全面试题 https://writer.blog.csdn.net/article/details/129953758

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/7400.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JUC并发编程高级篇第三章之CAS[Unsafe和原子增强类]

文章目录1、CAS的简介1.1、什么是CAS1.2、使用CAS的前后对比1.3、CAS如何做到不加锁的情况,保证数据的一致性1.4、什么是Unsafe类1.5、CAS方法参数详解1.6、CAS的原理1.7、 CAS的缺点2、原子操作类2.1、基本类型原子类2.2、数据类型原子类2.3、引用类型原子类2.4、对…

66-插入排序

目录 1.直接插入排序 2.折半插入排序 3.在数组arr[l...r]上使用插入排序 类似打扑克牌,整理牌的时候,都是把乱的牌向已经码好的牌中插入——天然的插入排序。 1.直接插入排序 每次选择无序区间的第一个元素,插入到有序区间的合适位置&am…

chatGPT中国入口-ChatGPT评论文章-ChatGPT怎么用

国内怎么玩chatGPT 如果您在国内使用ChatGPT,主要的问题可能是连接OpenAI服务器的速度和稳定性。由于OpenAI位于美国,可能受到中国的网络限制和防火墙的影响,造成访问速度比较慢或不稳定。为了解决这个问题,您可以采取以下方法&a…

idea常用快捷键,包的介绍,访问修饰符

这里有的是我自己定义的快捷键,可以到图片是指定位置查看对应的快捷键是什么。删除当前行,Ctrld复制当前行,自己配置CtrlShift向下箭头补全代码 alt /注释Ctrl /自动导入包在上面位置把两个选项选中,在要导入包的红色位置输入al…

(C++)模板分离编译面对的问题

什么是分离编译模板的分离编译什么是分离编译 一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。 模板的分离编译 假如有以下…

Spring入门(万字详细附代码讲解)

1.Spring介绍 Spring其实就是一种开源框架,指的是Spring Framework,具有良好的生态,这也是Spring经久不衰的原因 用一句话概括,Spring就是一个集成了众多工具和方法的IOC容器 2.IOC容器 什么是IOC容器呢? IOC的中文翻译过来就是控制反转,IOC容器其实就是控制反转容器 那什…

2022蓝桥杯省赛——卡片

问题描述 小蓝有 k 种卡片, 一个班有 n 位同学, 小蓝给每位同学发了两张卡片, 一位同学的两张卡片可能是同一种, 也可能是不同种, 两张卡片没有顺序。没有两位同学的卡片都是一样的。 给定 n, 请问小蓝的卡片至少有多少种? 输入格式 输入一行包含一个正整数表示 n 。 输出…

Vue中的slot插槽

目录 (一)什么是slot插槽 (1)slot插槽的作用 (2)插槽的好处和使用场景 (3)slot插槽的分类 1、默认插槽 2、具名插槽 3、作用域插槽 (一)什么是slot插槽 (1)slot插槽的作用 slot具有“占坑”的作用…

Hadoop MapReduce各阶段执行过程以及Python代码实现简单的WordCount程序

视频资料:黑马程序员大数据Hadoop入门视频教程,适合零基础自学的大数据Hadoop教程 文章目录Map阶段执行过程Reduce阶段执行过程Python代码实现MapReduce的WordCount实例mapper.pyreducer.py在Hadoop HDFS文件系统中运行Map阶段执行过程 把输入目录下文件…

【GoF 23 概念理解】AOP面向切面编程

1. 什么是AOP——面向切面编程 AOP是一种编程范式,提供了一种从宁一个角度来考虑程序结构以完善面向对象编程(OOP) AOP是一个思想上的变化——主从换位,让原本主动调用的模块变成了被动等待,甚至在毫不知情的情况下被…

CodeTON Round 4 (Div. 1 + Div. 2, Rated, Prizes!)A~E

比赛连接:Dashboard - CodeTON Round 4 (Div. 1 Div. 2, Rated, Prizes!) - Codeforces A. Beautiful Sequence 题意: t(1≤t≤500)组测试每组给定大小为n(1≤n≤100) 的序列,判断它是否存在一个子序列是好序列。一个序列是好序列当且仅当至…

GPT-3:大语言模型小样本学习

论文标题:Language Models are Few-Shot Learners论文链接:https://arxiv.org/abs/2005.14165论文来源:OpenAI一、概述自然语言处理已经从学习特定任务的表示和设计特定任务的架构转变为使用任务无关的预训练和任务无关的架构。这种转变导致了…

Python - Huffman Tree 霍夫曼树实现与应用

目录 一.引言 二.Huffman Tree 理论 1.定义 2.结构 3.构造 三.Huffman Tree 实现 1.生成霍夫曼树 2.编码霍夫曼编码 3.解码霍夫曼编码 4.霍夫曼树编码解码实践 四.总结 一.引言 上篇 Word2vec 的文章中指出每次计算词库 N 个单词的 Softmax 计算量很大,…

办公工具-latex

一、排版总论 1.1 缺省权力 ​ 首先,最重要最需要强调的是,排版是一个信息量极大的工程。字体,格式,对齐方式,页眉页脚,都只是排版的冰山一角,可以说,一个人是没有办法完全控制一个…

JVM 运行时数据区概述及线程

当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区。 运行时数据区结构 内存概念: 内存…

leetcode:只出现一次的数字 Ⅲ(详解)

前言:内容包括:题目,代码实现,大致思路,代码解读 题目: 给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任…

Qt界面编程(三)—— 父子关系、对象树、信号和槽(自定义信号和槽、Qt5与Qt4的写法)

一、Qt按钮小程序 1. 按钮的创建和父子关系 在Qt程序中&#xff0c;最常用的控件之一就是按钮了&#xff0c;首先我们来看下如何创建一个按钮&#xff1a; #include <QPushButton>QPushButton * btn new QPushButton; //设置父亲btn->setParent(this);//设置文字b…

接口测试-postman使用总结

一、为何使用postman postman是一款简单高效的接口测试工具&#xff0c;能够很方便发送接口请求&#xff0c;易于保存接口请求脚本&#xff0c;postman提供接口响应数据比对功能&#xff0c;可以设置预期结果作断言&#xff0c;还能把测试用例放在一个集合中批量执行&#xff…

【JavaWeb】9—监听器

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

torchvision.transforms 常用方法解析(含图例代码以及参数解释)

本文代码和图片完全源于 官方文档: TRANSFORMING AND AUGMENTING IMAGES 中的 Illustration of transforms&#xff0c;参数介绍源自函数对应的官方文档。 代码中的变换仅仅使用了最简单的参数&#xff1a;pad&#xff0c;size 等&#xff0c;这里展现的只是简单的变换&#xf…