Java面经

本文是一篇关于Java面试的综合指南,涵盖了Java中的重载与重写、MySQL索引类型、线程生命周期、同步机制等多个核心知识点。讨论了B+树、线程安全与线程不安全的区别、Redis与MongoDB的角色及其区别,以及如何在项目中选择使用。还涉及到了数据结构、并发编程、数据库优化等主题,是准备Java面试的重要参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
ls mkdir touch cp mv cat tar -zxvf rm

echo在终端显示一串内容 echo “” > .txt 给文本输入字符串

ps -ef 查看所有进程 ps -ef | grep mysql

在这里插入图片描述

1.git init

2.git clone

3.git pull、git fetch

4.git add

5.git commit

6.git reset

7.git branch

8.git status

10.git push

11.git merge

15.git config

16.git rm

Websocket和osi七层模型的关系:

websocket是基于应用层,建立在tcp协议之上的协议,相比与http协议,它只需要建立一次tcp连接,就可以进行长时间的全双工的低延迟实时通信,适用于基于web的游戏,聊天应用。

内存溢出:

大量jar包,class文件被加载类空间不够导致内存溢出,

大量对象导致堆空间占满,内存溢出

使用jmap ,jstat查看新生代老年代情况,去代码查看对象是否被正确回收

java中的重载与重写的区别:

​ 1、重载发生在本类,重写发生在父类与子类之间;

​ 2、重载的方法名必须相同,重写的方法名相同且返回值类型必须相同;

​ 3、重载的参数列表不同,重写的参数列表必须相同。

mysql的b+树了解吗?主键是什么索引,怎么避免回表?

A2:了解,B+树是一种用于存储数据的多路搜索树,它的特点是在叶子结点中存储数据,而非叶子结点仅用于存储索引,可以更有效的进行检索。主键是一种索引,它能够唯一标识一条记录,通过使用主键可以快速检索到记录,从而避免回表查询。

线程的生命周期?用什么命令可以查看?

A3:线程的生命周期一般分为四个阶段,分别为新建阶段、就绪阶段、运行阶段和死亡阶段。可以使用jps命令查看正在运行的Java进程,使用jstack命令可以查看进程中线程的生命周期状态。

synchronize和reentrantlock有什么区别?

A4:synchronize是java中内置的锁,它能够自动完成加锁和解锁,但是它没有提供其他更多的特性,比如可中断锁、可轮询锁等。而ReentrantLock是java中的可重入锁,它提供了更多的特性,比如可以实现公平锁和非公平锁,以及可以中断锁和可轮询锁等特性。

跟我聊一聊aop,并且跟我说明怎么运用它

A6:面向切面编程(AOP)是面向对象编程的一种补充,它可以把一些公共功能(比如日志记录、权限检查等)抽取出来,作为一个独立的切面来处理,从而避免重复的代码出现在不同的业务逻辑中。使用AOP可以更加灵活的处理业务逻辑,提高代码的可重用性。

跟我聊聊super关键字

A7:super关键字是java中用于访问超类的关键字,它可以用于调用超类的构造函数、调用超类的属性或方法,以及引用超类的实例变量,从而使子类能够获取超类的内容,并且可以对超类的内容进行修改。

我知道mysql中的索引分为三类,B+树索引,Hash索引,全文索引,你可以告诉我这三个索引的区别在哪里,举例出形象的例子,最好有sql语句以便我能够理解。

当谈论MySQL的索引时,通常会涉及以下三种类型的索引:B+树索引、哈希索引和全文索引。它们各自的优势和适用场景不同。

  1. B+树索引

B+树索引是MySQL中最常用的索引类型之一,它采用B+树数据结构来存储索引。B+树索引适用于单列或多列的等值查询、范围查询、排序和分组等操作,而且支持最左前缀匹配原则,也就是说如果查询条件中只涉及到索引的左侧前缀,则可以有效利用索引。

下面是一个创建B+树索引的例子:

scssCopy code
CREATE INDEX idx_name ON users(name);

这将在users表的name列上创建一个名为idx_name的B+树索引。

  1. 哈希索引

哈希索引将索引列的值作为键值,通过哈希算法计算得到一个哈希值,然后将这个哈希值和相应的行指针存储在哈希表中。哈希索引适用于单列等值查询,但不支持范围查询、排序和分组等操作。

下面是一个创建哈希索引的例子:

scssCopy code
CREATE INDEX idx_age ON users(age) USING HASH;

这将在users表的age列上创建一个名为idx_age的哈希索引。

  1. 全文索引

全文索引可以用来进行文本搜索,它将文本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值