面试模拟考试

面试模拟考试


仅作为笔记,码字不易,转载请标明出处。

文章目录

  • 面试模拟考试
  • 前言


前言

仅作为笔记


1.MySQL事务的四种特性,分别解释;
2.隔离性是如何做到的?四种隔离级别,每种隔离级别实现的原理?
3.MySQL默认是什么隔离级别,为什么MySQL默认是这个隔离级别不是其他的?为什么公司会把RR改成RC?
4.如何设置隔离级别,即隔离级别的命令?
5.死锁是什么,死锁的形成的条件?
6.数据库是如何实现分页的,假设有100万条数据如何优化分页查询?
7.数据库索引有哪些,聚簇索引和非聚簇索引的区别?
8.时间复杂度和空间复杂度定义,时间换空间和空间换时间的例子有哪些?
9.线程同步的方式有哪些?
10.项目中用到了限流器,有哪些限流算法?无
11.数据库的几大范式并且如何理解的?

1、tcp和udp区别 ok
2、TCP/IP协议涉及哪几层架构
3、4次挥手为什么是4次

6、 sql选出参加2次考试的学生
7、计算机插上电源操作系统做了什么

8、操作系统设备文件有哪些

9、多线程同步有哪些方法

10、两个方法加 synchronized,一个线程进去sleep,另一个线程可以进入到另一个方法吗?

11、如何让可重入变成不可重入

12、创建线程的三个方法分别什么时候使用

13、怎么获取线程的返回值

14、线程池怎么创建

15、线程池参数如何设计

16、拒绝策略有哪些

17、如何设计线程数量

18、5个任务,4个最大线程数,线程池里面同时运行几个任务

19、给用户发消息任务超出队列,你用哪个拒绝策略

20、有其他方法吗

21、JMM

22、什么时候用多线程、为什么要设计多线程

23、多线程越多效率越高吗

24、多线程会产生哪些并发问题

25、dom是什么

26、前端有哪些标签

27、前端input参数如何获取

28、前端参数传到后端,并获取的流程

29、 mybatis如何将对象转换成sql**

30、jvm内存结构

31、栈会溢出吗什么时候,方法区会溢出吗

32、jvm如何加载的

33、自己写个String类能加载吗,之前的String是什么时候加载进去的

34、threadlocal为什么要设计key值

35、如何理解微服务,什么时候使用微服务**

你刚才说到TCP粘包 粘包原因是什么?你是如何处理的?

说一下输入URL后做了哪些操作”

怎么实现多态
TCP三次握手

  1. 说一下列表的两种实现方法,以及各自的优劣

  2. 什么是二叉查找树,查找的时间复杂度是多少,最坏情况又是多少。

  3. 有什么数据结构优化二叉查找树

  4. AVL树的定义是什么

  5. 时间局部性和空间局部性是什么,有哪些具体的应用案例

  6. 虚拟内存是什么,虚拟内存的原理是什么

  7. 事务的特性有什么,说一下分别是什么意思

9 .幻读是什么,用什么隔离级别可以防止幻读

10.说一下分布式事务中的两阶段提交

(3)两阶段提交的缺点

1.同步阻塞问题。执行过程中,所有参与节点都是事务阻塞型的。
当参与者占有公共资源时,其他第三方节点访问公共资源不得不处于阻塞状态。

2.单点故障。由于协调者的重要性,一旦协调者发生故障。
参与者会一直阻塞下去。尤其在第二阶段,协调者发生故障,那么所有的参与者还都处于锁定事务资源的状态中,而无法继续完成事务操作
。(如果是协调者挂掉,可以重新选举一个协调者,但是无法解决因为协调者宕机导致的参与者处于阻塞状态的问题)

3.数据不一致。在二阶段提交的阶段二中,当协调者向参与者发送commit请求之后,发生了局部网络异常或者在发送commit请求过程中协调者发生了故障,这回导致只有一部分参与者接受到了commit请求。
而在这部分参与者接到commit请求之后就会执行commit操作。但是其他部分未接到commit请求的机器则无法执行事务提交。于是整个分布式系统便出现了数据部一致性的现象。

4 两阶段提交无法解决的问题

11.说一下CAS是什么

12.CAS会有什么缺点?,如何解决

13.atomic包下的类有没有看过源码,知道是怎么实现的吗

14.看过哪些jdk包的自带类的源码?

15.说一下用到过哪些设计模式

16.那说一下spring中的bean的作用域有哪些

17.说一下redis的淘汰策略

18.什么场景下要选择从从过期数据中lru的淘汰策略 或者问 该怎么挑选redis的淘汰策略

19.说一下缓存穿透是什么,那缓存击穿呢

20.怎么解决缓存穿透

21.那问一下数据结构中的bitmap是干什么的

23.为什么浏览器要禁止跨域

  1. 说一下java的封装和多态

  2. 乐观锁和悲观锁的区别

  3. hashmap的原理说一下,hashmap和hashtable的区别

hashmap和hashtable的区别

  1. hashtable性能差,可以如何改进

线程池参数是怎么设置的

  1. 数据库的索引讲一下,索引失效可能是什么情况

  2. 有遇到过慢sql的情况吗,是怎么排查优化的

  3. cookie和session的区别

  4. session具体使用上会有一个什么缺陷,如何解决

10.除了大量session占用服务器内存外还有什么问题?分布式环境下多台服务器使用session可能会有什么问题

11.你说到session同步,那在同步的时候造成网络阻塞怎么解决

12.项目中用到了redis,说一下使用场景

Java内存管理是怎样的

垃圾回收是怎样的过程

StringBuilder和StringBuffer的区别
答:这两者都是字符串可变的(因为其底层实现的char数组没有加final),stringbuilder比stringbuffer快,但是stringbuffer是线程安全的(使用了synchronized),而stringbuilder不是线程安全的,这两者都适用于在字符缓冲区进行大量操作的情况。
StringBuilder底层是什么类型

StringBuilder是怎么扩容的

Spring 怎么实现事务

进程和线程的区别,进程之间怎么通信,线程状态转移

synchronized 底层实现,synchronized和lock的区别,lock怎么实现公平锁

synchronized和lock的区别

Lock如何实现公平锁

写懒汉单例、和线程安全的单例、双检锁的 volatile 的作用

了解java新特性吗

介绍下timewait、为什么有这个状态,大量socket处于timewait状态会出现什么问题,怎么解决

mysql 索引、mysql数据结构

hashmap和concurrentHashmap的区别,concurrentHashmap怎么实现的线程安全

synchronized

客户端 FIN 之后挂了,会出现什么

设计udp怎么可靠性传输、了解哪些开源的 udp 协议

介绍项目、redis 怎么做的缓存、redis 存的什么格式、怎么做的去重

进程间通信方式,select 和 epoll 的区别,url 回车过程;

输入url并回车后:

路由过程了解吗,如果路由的时候有多个路线,怎么选择?

DNS 在传输层用了什么协议、为什么数据量大的时候用 TCP;

mysql 怎么保证原子性、redis 持久化方式

抽象类和接口的区别

讲讲常见的集合类

讲讲hashmap,concurrenthashmap底层实现,put流程

hashmap数组长度为什么是2的幂次方

hashmap1.7 1.8在扩容做了什么优化?

了解集合的fail-fast机制吗,这个机制怎么形成的? 如何解决?

单线程和多线程的区别?
ThreadLocal了解吗?说说底层实现?会发生什么问题?

线程池了解吗?讲讲平时怎么用的

了解事务吗(当时听成树 讲了一堆b+树…)事务特性? 隔离级别?分别解决什么问题?

RR级别能完全解决幻读吗?

Spring框架了解吗 我说了解 面试官就没问了

Linux熟悉吗?如果cpu100% 怎么定位解决?

top命令 ps命令区别?

b树,b+树

索引失效

redis为什么快,一直问到底层

redis能不能做内存数据库

redis aof rdb区别与优点
浏览器访问流程

报文在网络中流转过程

数据结构与算法:知道哪些排序

排序的时间复杂度是多少

快排的时间复杂度怎么来的

为什么三个高级排序算法中都有logn,是巧合吗

  1. 进程的状态

  2. 进程和线程的区别

  3. 线程的同步机制

  4. 索引的作用

  5. 介绍一下B+树

  6. 索引查询一定有提升吗?

  7. 什么是事务?

  8. 数据库的乐观锁和悲观锁

  9. TCP/IP协议的分层?五层模型各层的作用?

  10. Java的类加载机制

  11. 介绍双亲委派模型,双亲委派模型的作用

  12. 介绍GC机制

  13. 了解CMS和G1吗

  14. HashMap线程安全吗?为什么线程不安全?

  15. ConcurrentHashMap的实现原理

微服务之间是如何通信的

线程池中核心线程数、最大线程数、阻塞队列之间的关系

了解的工作队列

ArrayBlockQueue和LinkedBlockQueue的区别

了解的GC算法

Redis缓存雪崩 缓存击穿

了解的MySQL存储引擎

数据库隔离级别

InnoDB可重复读隔离级别如何防止幻读

线程之间的通信方式

了解什么消息队列么?

2.HashMap线程安全吗,讲一下rehash过程

3.讲一下 ConcurrentHashMap

6.Spring ioc 和aop

7.Spring Boot详细启动过程

8.实现分布式锁的几种实现(Redis、Zookeeper、数据库)

9.缓存击穿有哪些解决方法

10.对大量数据库里没有的数据的查询怎么处理(布隆过滤器)

5、JVM内存模型。

6、OOM。

7、JUC包。

JDK哪里用到什么设计模式:

类加载机制:

双亲委派

泛型原理

线程池任务拒绝策略

Java IO用到了什么设计模式:

Springboot 隔离级别

事务注解失效

RocketMQ的一些问题相关:
1.事务消息:
2.延迟消费

死信消息:

集群角色:

servelet spring生命周期

bean的生命周期

mybatis事务

计算机网络
socket是属于什么层的

http状态码

cocurrentHashMap的实现
JVM垃圾回收(说了一下CMS 他也没细问)

InnnoDB、Myisam区别

1.HashTable、HashMap、ConcurrentHashMap

2.HashSet

3.Http、 Https

4.GET、POST

5.为什么要GC

  1. 类加载过程

  2. Java内存模型

  3. 索引的数据结构(答:B+树,hash)

  4. 共享屏幕简单写个B+树

  5. B+树改成hash共享屏幕写

  6. redis数据结构

  7. redis过期删除&内存淘汰

  8. LRU

  9. 缓存雪崩&缓存穿透是什么,如何解决

  10. 布隆过滤器怎么实现的

  11. 两个链表,一个升序一个降序。合并成有序的链表

  12. 多线程如何实现线程安全的i++操作

  13. TCP报文

  14. 五层网络

  15. IP协议

  16. 设计一个消减流量的算法

  17. 链表和哈希表的区别

  18. 哈希冲突怎么解决,各种解决方法如何删除元素

1、equals和==的区别

2、为什么重写equals还要重写hashcode,不重写会怎样?

3、finally语句是怎么用的?

4、public protected default private的作用范围

5、有了解并发编程的知识吗?

6、ThreadLocal变量

7、项目中有没有使用线程池?

8、为什么不能用Excutor创建线程?

9、刚才你说的参数是怎么用的?

10、讲一下Full GC

11、频繁的full gc有什么问题?怎么排查?

12、数据库有哪些了解?

13、Like走索引吗?

14、不等于可以用索引吗?大于小于?

15、场景题,几千万的数据如何读取处理?

1、操作系统都有哪些内容啊?

2、进程通信的方式?每种方式的应用场景?进程如何保证并发的?讲一下信号量?什么是临界区?

3、操作系统怎么进行内存管理?每种方式有什么优缺点?

4、页式存储和段式存储分别应用在什么场景下?

计算机网络:
1、http为什么说是无状态的?

2、http和https的区别?

3、TCP和UDP有了解吗,说一下区别?

1、说一下数据库有哪些索引?索引都用在什么情况下?

2、说一下B+树?为什么B+树比B树更加矮小,查询效率更高?

3、根据索引查询的过程是什么?

4、你用到了单机redis来实现分布式锁,那如果并发请求太多,导致redis阻塞时间太长没有反应怎么办?

4.Spring Boot的类加载器机制和原理

6.又问了我对于锁机制有了解吗? of course

7.但面试官比较感兴趣reentrantLock锁和synchronized锁就问了他们的底层原理是怎么执行的

CAS
AbstractQueuedSynchronizer(队列同步器) 简称AQS

8.接着问了volatile底层逻辑,问了内存屏障是如何保证有序性

9.然后又问了JUC集合全部包含哪些大类,然后concurrenthashmap怎么进行优化,怎么从底层查看大小,有什么缺
10.Java8新特性有哪些了解

11.lambda表达式是啥?底层怎么实现的?整体流程是啥给我说说

12.JVM对于方法的执行在底层是如何调用,如何判断,如何识别的

13.TCP流量控制,拥塞控制,如何优化,你想怎么优化,有什么缺点,具体过程

说一下JVM的结构

类加载模型及类加载器

说一下list和HashSet的区别

说一下java的GC机制

说一下你了解的java框架,有哪些特点(Spring IOC AOP)

类加载器

如何自定义类加载器

1.spring中bean的生命周期,拦截器怎么拦截?

2.sql联合查询,查询量几亿条怎么办?

3.spring的循环依赖如何解决

4.jvm调优

5.springcore跨域问题

1.负载

2.三次握手

3.四次挥手

4.数据库隔离机制

5.反射机制

6.连接池

7.对象回收机制

9.线程和进程区别

10.异步

  1. 面向对象的三大特征?
    多态的好处?在Java中有哪些应用场景?

  2. JVM的内存区域?具体介绍一下每个区域的作用。

  3. 讲解GC机制?

  4. Spring的特点?

  5. 项目中的AOP实现防止重复提交具体是怎么实现的?

  6. 进程和线程的区别?

  7. 进程间通信的方法?

  8. 多线程同时读写会发生什么问题?

  9. 死锁是什么?如何避免?

  10. 索引的作用?索引有什么缺点?
    使用索引需要注意什么?

  11. 事务的特点有哪些?

  12. 说说数据库的乐观锁和悲观锁?

  13. 说说TCP和UDP?区别?分别有什么应用场景?

  14. HashMap的底层实现?看过源码吗?

  15. 选一种排序算法说说原理?

mysql、elastsearch、kafka了解情况

介绍了一下mysql的索引,包括索引的优缺点

4、B+树讲一讲
5、B+树和平衡二叉树做一下比较

6、线程池了解吗

7、自己有没有用过线程池

8、hashmap了解吗

9、hashmap是并发安全的吗

10、jvm内存分布聊一下

11、垃圾收集过程

12、java反射了解吗?

13、TCP三次握手

15、算法题

SpringBoot和单纯Spring的区别 ,@SpringbootApplication都做了什么

Spring IOC AOP原理,AOP和AspjectJ 的区别,Spring Ioc中 bean的顶层接口是什么
动态代理,JDK和CGLIB的区别

HashMap和HashTable区别,HashMap和ConcurrentHashMap区别
基本数据类型有哪些
类加载过程
加载、链接(验证、准备、解析)、初始化
JVM分区,对象如何到老年代

GC算法,常见的垃圾收集器

哪些对象可以作为 GC Roots 的对象:

线程有哪些状态,进程 有哪些状态,区别

MYISAM和Innodb的区别

MYSQL有哪些锁

事务的特性,隔离级别

spring 怎么实现事务:

@Transactional注解不起作用的集中情况:

进程和线程的区别,进程之间怎么通信,线程状态转移

synchronized 底层实现,synchronized和lock的区别,lock怎么实现公平锁

9.动态规划、分治算法的核心思想、区别

10.设计模式的六大原则

11、jvm内存

4.osi七层模型
5.tcp、udp 区别

2:redis 的数据结构

4:redis为何用跳表而不用红黑树

5: 各大排序算法以及复杂度和最坏以及最好的情况进行具体的栗子讲解

6: Array.sort 的底层中,为何一部分用快排而不用堆排序,工业界中为啥用快排多于堆排

计算机网络部分:
7:三次握手,四次挥手 (四次挥手有可能三次嘛?还是一定要四次)

这里确实学到了当三次挥手已经进行数据传输完成后,就可以直接断开无需四次挥手

5:redis 会出现因为多线程而造成数据读写错误嘛

6:redis为何快

7:你之前说redis6.0 采用了多线程,你觉得为何要这么改?

8:计算机网络

udp 和 tcp 部分

java内存分区
java类加载
字符串存在内存哪里

java有垃圾回收机制,它是否会内存泄露

java属性的初始化顺序

数字证书扮演什么角色,起到什么作用,包含哪些信息

宽带访问HTTPS站点,弹出广告,是HTTPS劫持吗,怎么做到的

什么是session和cookie

HTTP是无状态的,如何得知多个请求是否来自同一用户

a. 乐观锁与悲观锁
b. 可重入锁
c. sleep释放锁吗,wait释放锁吗
d. sleep释放CPU资源吗,wait也释放
如果是无限队列,比如LinkedBlockingQueue,会如何

介绍下TreeMap

介绍下ConcurrentHashMap
系统地介绍一下java中的锁
B+树什么原理,应用场景

线程有哪些状态
5个
sleep与wait的区别

ii. 为什么wait必须写在同步块或同步方法里

索引结构、对比、存储内容

事务隔离级别、解决了什么问题
线上环境RR隔离级别下可能出现的问题?

事务的传播行为

bean的生命周期

依赖注入spring怎么做不同基本类型的注入的

beanfactory和factorybean的区别

怎么拿到factorybean本身

看你项目都是Springboot,讲讲为什么

Springboot怎么去除xml的

自己讲讲hashmap和concurrenthashmap,看八股文有没有融会贯通了

我自己写了一个java.lang.String类,怎么加载到jvm中?

satics关键字的作用,JAVA中satics关键字和private关键字能否被重写

方法覆盖和重载的区别

抽象类和接口的区别

hascode和equals方法的重要性

开启线程的方法

12、Redis中的zset原理,跳表

16、数据库缓存双写一致性

4、Zset查找时间复杂度,空间复杂度

7.有20个红球和20个黑球,两个盒子,怎么放才能让取到红球的概率最大?

6.数据库表设计时有什么样的约束和规范

7.redis的这几种数据类型分别都适用于哪些场景,有了解过list的优先级队列吗

10.线程有哪些状态?引用类型有几种

12.switch的使用语法?里面能不能加continue

堆内存溢出如何解决,讲下思路

数据量超级大的表,如何进行处理。

什么时候考虑使用分区?

分区解决的问题

什么时候考虑分表?

分区和分表的区别与联系

redis 如何保证高可用的

集群系统中数据库挂了怎么办

集群的容错,扩容,高可用,一致性聊一聊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值