文章目录

东篱南山

采菊东篱下,悠然现南山

面试篇--问题篇

=========================================Java===============================================================
1.为啥要去重写HashCode和Equals?

2.Object常用的方法?
wait() notify() notifyAll() equals() hashcode() getClass() toString()

3.红黑树的特性

4.方法区和堆栈作用是啥
栈就是存的时方法的数据类型和对象引用,方法区存储类信息、常量、静态变量、即时编译器编译后的代码。
5.数组是存在哪的

6.LinkList和ArrayList使用场景?

8.队列有哪几种
1.arrayBlockQueue 2.LinkBlockQueue 3. 优先级队列 4. 延时队列

9.HashMap扩容的原因是因为桶还是key?
map扩容两个条件,map.size>=负载值&&table[index]!=null
10.Java中引用有哪几种?
强引用:无论内存是否足够,不会回收。
软引用:内存不足时,回收该引用关联的对象。
弱引用:垃圾回收时,无论内存是否足够,都会回收。
虚引用:任何时候都可能被垃圾回收器回收。
11.Java中常用的锁有哪些?
排它锁、共享锁、乐观锁、悲观锁、分段锁、自旋锁、公平锁、非公平锁、可重入锁等。
12.HashMap Entry数组中包含有哪些属性

13.信号量的使用
1.final Semaphore semp = new Semaphore(5); 先定义多少个并发
2.semp.acquire(); 获取许可
3.semp.release(); 释放许可
14.HashSet
HashSet底层由HashMap实现
HashSet的值存放于HashMap的key上
HashMap的value统一为PRESENT
15.TreeMap
数据+tree
保证了顺序,输出时候按中序遍历
put时候如果有相同的数据,替换,没有就插入新建,然后再平衡红黑树
get时按二叉搜索树搜索
=========================================数据库=============================================================
1.Mysql的主从复制有哪几种方式?
1.基于Sql的复制
2.基于行的复制
3.混合模式

2.幻读和不可重复读的区别
1.幻读指的是同一事务两次读写,读取的数据记录不一样
2.不可重复读指的是读取的记录内容不一样
3.可重复读和读已提交的区别
1.读已提交可能会造成幻读和不可重复度

4.字段重复度比较高 适合建索引吗?
重复度比较高列不适合建索引, 非聚簇索引存储了对主键的引用,所以使用非聚集索引会造成大量的回表操作,性能低
5.使用in,Or会走索引吗?
不走索引
6.is not null会走索引吗?

7.最左前缀原则
abc组合索引
a 可以
ab 可以
ac可以
abc 可以
c,b,a 可以
b,c不可以
========================================开源框架============================================================
1.Spring事务相关的一些知识点
1.编程时和声明式
2.@Transaction
3.对事务相关的配置(配置传播属性,超时,隔离级别)

2.RequestParam和RequestBody
@RequestParam接收的参数是来自requestHeader中,即请求头。通常用于GET请求,也可以使用POST delete等
Content-Type:application/x-www-form-urlencoded,multipart/form-data
解@RequestBody接收的参数是来自requestBody中,即请求体。可以将参数映射到实体类上
Content-Type: application/json, application/xml等
3.怎么加载第三方的Bean
@Configuration+@Bean

4.#和$的区别,项目中什么地儿用到了这两个?
#{}是经过预编译的,是安全的。
而${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。
5.JMS和AMQP区别
JMS 就是Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM-分布式系统的集成)的API。

6.服务的注册和发现原理

7.zuul怎么去做鉴权和路由

9.Redis中set底层结构
intSet和HashTable

10.setnx Redis怎么实现的

11.数据库和缓存怎么去保持数据一致性
数据开始写,最好实现双写,假如有数据更新,先删缓存,再更新数据库
12.Redis底层怎么个结构

13.长短连接怎么弄的

========================================设计模式============================================================
1.单例模式中DCL
双重检查加锁(Double Check Lock)的方法来避免每次调用getInstance()方法时都同步
因为上边是使用了volatile指令 避免了指令重拍
2.策略模式
定义一个接口,然后有多种实现


标题:面试篇--问题篇
作者:zc1249274251
地址:https://www.fanyueba.com/articles/2019/10/31/1572515995690.html