面经总结一下

IT 技术

spring 源码

多读源码

网址记录:

194 unix高级网络变

秒杀面试官!Java面试被问Redis,我吹个一小时不过分吧_哔哩哔哩_bilibili

秒杀面试官!Java面试被问Redis,我吹个一小时不过分吧_哔哩哔哩_bilibili

秒杀面试官!Java面试被问Redis,我吹个一小时不过分吧_哔哩哔哩_bilibili

秒杀面试官!Java面试被问Redis,我吹个一小时不过分吧_哔哩哔哩_bilibili

https://www.bilibili.com/video/BV1qv411j7bR?p=23&spm_id_from=pageDriver        

定时对chrome没用的标签页做清理,尽量每天一次吧,这样会清爽很多,而且切换页面效率会高很多,自己用起来也很爽

【狂神说Java】JUC并发编程最新版通俗易懂_哔哩哔哩_bilibili

【狂神说Java】JUC并发编程最新版通俗易懂_哔哩哔哩_bilibili

file:///C:/Users/tang/Downloads/FRIED_Jason_-_Rework.pdf

235 | 初始化内建Bean:MessageSource-极客时间

240 | Spring应用上下刷新完成阶段-极客时间

https://www.youtube.com/watch?v=vORRywfDEoE&list=PLMxK51MH9Tart9g54B7FsvAioqCGXLOS9&index=10

高性能MySQL实战_哔哩哔哩_bilibili

高性能MySQL实战_哔哩哔哩_bilibili

高性能MySQL实战_哔哩哔哩_bilibili

【Java架构师课程】MySQL 分页查询优化_哔哩哔哩_bilibili 14:29

2小时快速实现分页技术,一学就会。_哔哩哔哩_bilibili

https://www.google.com/search?q=mysql%E5%88%86%E9%A1%B5%E6%9C%89%E4%BB%80%E4%B9%88%E6%80%A7%E8%83%BD%E9%97%AE%E9%A2%98%E5%8F%8A%E5%A6%82%E4%BD%95%E4%BC%98%E5%8C%96&oq=mysql%E5%88%86%E9%A1%B5%E6%9C%89%E4%BB%80%E4%B9%88%E6%80%A7%E8%83%BD%E9%97%AE%E9%A2%98%E5%8F%8A%E5%A6%82%E4%BD%95%E4%BC%98%E5%8C%96&aqs=chrome..69i57.1067j0j7&sourceid=chrome&ie=UTF-8

https://segmentfault.com/a/1190000038704015

哈佛大学公开课:幸福课23集全_哔哩哔哩_bilibili

77 | 程序员练级攻略:Linux系统、内存和网络-极客时间

https://zh.wikipedia.org/wiki/%E9%9B%AA%E8%8A%B1%E7%AE%97%E6%B3%95

lab做到了4,还差蛮多

用GDB调试程序(一)_陈皓专栏 【空谷幽兰,心如皓月】-CSDN博客_gdb调试程序

跟我一起写 Makefile(一)_陈皓专栏 【空谷幽兰,心如皓月】-CSDN博客_makefile

UNIX 环境高级编程

尚硅谷MySQL数据库高级,mysql优化,数据库优化_哔哩哔哩_bilibili

尚硅谷MySQL数据库高级,mysql优化,数据库优化_哔哩哔哩_bilibili

尚硅谷MySQL数据库高级,mysql优化,数据库优化_哔哩哔哩_bilibili

雷丰阳2021版SpringBoot2零基础入门springboot全套完整版(spring boot2)_哔哩哔哩_bilibili

雷丰阳2021版SpringBoot2零基础入门springboot全套完整版(spring boot2)_哔哩哔哩_bilibili

尚硅谷MySQL数据库高级,mysql优化,数据库优化_哔哩哔哩_bilibili

写给自己看的,以后面试也好从里面复习:

"我的学习方法是先学会用懂得怎么用,再去知道到底是如何能用的。"

"面向面试学习,比如你要学JMM,就搜索JMM面试题" :

1.什么是JMM 2.他干嘛的 3.它如何学习

Spring

spring面试常见题:

Spring常见面试题总结(超详细回答)_张维鹏的博客-CSDN博客_spring面试题

spring的4种事务支持

Spring事务管理之几种方式实现事务_WilliamDream的博客-CSDN博客_spring事物

Spring中BeanFactory和FactoryBean的区别

ApplicationContext实现了BeanFactory接口,主要用来实例化bean,初始化bean,以及后置处理,FactoryBean也是接口,由AbstractFactoryBean继,而AbstractFactoryBean又由ListFactoryBean和MapFactoryBean继承,关于MapFactoryBean,见注释:

 Simple factory for shared Map instances. Allows for central setup
 of Maps via the "map" element in XML bean definitions.

其实就是用来根据xml里面定义的map属性,来生成一个公用的map,具体可看源码

BeanFactory和ApplicationContext的关系详解

BeanFactory是个低级容器接口,只有一些getBean,isSingleton,getAliases等方法,而ApplicationContext继承BeanFactory接口,并且具有refresh等很多重要的方法

Spring中是如何实现单例模式的

通过注册表实现的,就是会有singletonObjects,这是一个concurrentHashMap<beanName,beanInstance>,会把单例bean注册到这个map里面

MySQL

MySQL索引实现原理

mysql索引实现原理 - 吴磊的 - 博客园

MySQL语句、语法

SQL LEFT JOIN 关键字

1.from 嵌套语句

select * from ( select * from aTable) [as] bTable  // as是可选的,bTable是必须的

2.where嵌套语句

select * from aTable where id < (或者 in, not in) (select max(id) from aTable)

注:where不能与合计函数(比如sum,但其他的就不知道了)一起使用,要用having

3.having和group by

MySQL无GROUP BY直接HAVING返回空的问题分析_慕课手记

4.判断空要用is null 不能用 = null

5.TO_DAYS()日期转换成天数的函数

mysql分页有什么性能问题及如何优化

参考https://github.com/x1ah/Blog/issues/15

传统分页的sql如下

SELECT * FROM TEST_TABLE LIMIT offset, limit;

这种查询,在offset超过千万级别会非常慢,解决的办法,用游标

select * from data where id>cursor limit size

千万数据量时,传统分页会扫全表,游标会用索引

inner join和join,where相互之间等价

mysql引擎

https://birdteam.net/124053

数据库的四种语句DDL/DML等

DQL、DML、DDL、DCL的概念与区别 - 范兵 - 博客园

数据库事务的隔离级别

数据库常用的事务隔离级别都有哪些?都是什么原理? 这四种隔离级别,比如不可重复读,是指在一个事务内,会出现不可重复读,而不是所有时间内都不可重复读

数据库索引类型

MySQL数据库几种常用的索引类型使用介绍 - mysql数据库栏目 - 红黑联盟

数据库锁级别

【数据库】数据库的锁机制及原理_Zoom-CSDN博客_数据库的锁机制

Java 并发编程

并发编程的三要素

 "情有可原",有序性、可见性、原子性

面向对象的三大特点

面向对象的三大特点_JIUTIANDEYING的博客-CSDN博客

内存泄漏和内存溢出区别

内存溢出和内存泄漏的区别 - 没有名字~ - 博客园

四种引用

强引用指向的对象即便outOfMemory也不会回收该对象

软引用指向的对象在内存不足时,会被回收

弱引用是指无论内存是否不足,都会被回收

弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被JVM回收,这个软引用就会被加入到与之关联的引用队列中

虚引用也是无论内存是否不足,都会被回收

要注意的是,虚引用必须和引用队列关联使用,当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会把这个虚引用加入到与之 关联的引用队列中

error和exception

error和exception都是Throwable的子类,error一般是jvm的错误,与程序无关,比如outOfMemoryError,NoClassDefFoundError

VM Error,error是程序无法处理的错误,error不是异常(Exception)

必须throw的异常,为受检异常

除了RuntimeException及其子类(IndexOutOfBoundException, NullPointException),均为受检异常,比如IOException,SQLException

hashMap散列和扩容机制

介绍如何获得下标,以及为何扩容是2的次方,HashMap的扩容机制---resize() - 割肉机 - 博客园

concurrentHashMap机制及相关问题

Java并发编程笔记之ConcurrentHashMap原理探究 - 国见比吕 - 博客园

 currenthashmap底层1.8原理

ConcurrentHashMap笔记_newbaby2012的专栏-CSDN博客

synchronize是否是重入锁,以及重入锁机制

synchronized 是可重入锁吗?为什么? - 無名之徒 - 博客园

乐观锁悲观锁

面试必备之乐观锁与悲观锁_不忘初心-CSDN博客_悲观锁和乐观锁

CAS是什么?
CAS是英文单词CompareAndSwap的缩写,中文意思是:比较并替换。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。

CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操作。

list,set,map的区别

List、Set、Map的区别 - 苏亦晨 - 博客园

关于Map的containsKey

如果你用hashmap的话你应该覆盖hashCode方法,而不是equals方法,hashMap containsKey方法用的不是equals比较而是hashcode比较。
如果你用treeMap那就实现Comparable接口,treeMap用compareTo实现containsKey的比较。
不同的Map实现有不同的判断方式,所以,一般不建议用自己写的类作为key值,起码我是这么要求的

线程池如何设置参数 CPU/IO

CPU 密集型, 最大线程数设置为CPU核数

IO密集型, 最大线程数要大于十分耗IO的线程数

SOLID 开闭原则

参考 https://zh.wikipedia.org/wiki/SOLID_(%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%AE%BE%E8%AE%A1)

波多野结(I接口隔离)衣(D依赖反转)开(O开闭)车一(S单一权责)式(L里式替换)

接口隔离: 多个特定接口好于一个宽泛接口

依赖反转: 这个暂时没看懂

开闭原则: 对扩展开放,对修改封闭

里式替换: 父类可以被子类替换

单一权责: 对象只有一种功能

网络

TCP字段,三次和四次握手

TCP的三次握手与四次挥手理解及面试题(很全面)_lucky_jun-CSDN博客_三次握手和四次挥手

TCP拥塞控制,主要有四部分,慢启动、拥塞避免、快重传、快恢复

TCP拥塞控制机制(附面试题)_sHuXnHs-CSDN博客_tcp拥塞机制

http和socket、tcp的区别

【Http】TCP连接、Http连接与Socket连接的区别_It_sharp的博客-CSDN博客

http协议

理解HTTP协议 - Pickle - 博客园

一次完整的http请求

一次完整的HTTP请求过程 - 白日梦想家12138 - 博客园

http和https区别

HTTP 和 HTTPS 的区别(面试常考题)_Tyler_Zx的博客-CSDN博客_http和https的区别

网页加载慢原因及分析

网页打开慢的原因及分析_Daniel_LZH的博客-CSDN博客

Redis

redis类型,缓存击穿,雪崩和穿透 以及如何解决

缓存穿透、缓存击穿、缓存雪崩区别和解决方案_kongtiao5的专栏-CSDN博客

如何设计分布式锁? redis作为分布式锁的相关?

redis一个时间点所有key全部失效,怎么办?

常用的case 多想优化,设计的时候批量查询,多考虑a b方案

mq也需要知道吗

mysql为啥用b+树,不用b树?

JMM是啥 内存模型

设计模式

mq有了解过吗

mysql实际场景

redis中间件

无锁,偏向锁,轻量级锁,重量级锁

分布式 rpc框架 mySQL分库 redis分布式锁 缓存 内部线程调度模型

对网络比较感兴趣的话,可以去看看netty

分布式的CAP,原理

netty

上市 身份管理 网络认证系统 实名 审计,付费 sqlserver, 客户运维, ddd 拆分成微服务,k8s, 复杂业务 强大的,理解能力,, 信息化建设,身份管理,智慧身份,spring boot,

学底层 优秀的架构师,底层技术扎实 基本的架构框架都没问题, 阿里avatar,美团在b站的技术交流, 计算机网络,操作系统,算法能力,b站讲算法,ddd和设计模式

Object obj = new Object();

obj.xxx();

这里面那些东西存在堆,哪些东西存在栈里面?

Object这个实例对象存放在堆里,但是栈里面存放obj这个引用,引用会指向堆里面的实例对象

最困难的问题 丰富你的简历,简历要有亮点

redis,

mysql

分库分表,按时间来区分,为什么按时间来分表, 

抽象类,

项目的亮点,比如基于action注解开发

mysql锁 锁到那个地方,是锁到索引,还是锁到具体数据记录,磁盘?

tomcat 熟悉吗

http协议 发起请求,到服务端的整个流程

4 次挥手 机制

spring boot和spring如何整合的?

gc root包含哪些对象? 请自行google

1000万的对象 gc root 会有什么优点和缺点

haspmap 多线程,如何排他的?

不加volatile,如何能实现可见?

java g1的gc如何实现

Spring扩展点有哪些

对业务透明吗 sql分库 打破双亲委派机制 g1

携程大佬给的建议:

深入: 兴趣,io rpc 套路,io模型 线程模型, 这个框架通用流程咋做的

深入学习的路线是:  官网流程,买书,源代码,落地到使用,  但是要有积淀,(如果没有积淀,工作中遇到的问题,你可能很难解决)工作中能用到的,只有积淀的30%

紧跟技术, 找不变的,钻研精神,  要好奇心,脑海当中会有,技术这种体系(我反正要求,你一定要画思维导图)薄弱环节,你要去补全

形成一定的体系,只是知道一点点,底层 数据库 设计思想哪些 比较深入,彻底搞懂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值