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-极客时间
https://www.youtube.com/watch?v=vORRywfDEoE&list=PLMxK51MH9Tart9g54B7FsvAioqCGXLOS9&index=10
【Java架构师课程】MySQL 分页查询优化_哔哩哔哩_bilibili 14:29
2小时快速实现分页技术,一学就会。_哔哩哔哩_bilibili
https://segmentfault.com/a/1190000038704015
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语句、语法
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引擎
数据库的四种语句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的区别
关于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请求
一次完整的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%
紧跟技术, 找不变的,钻研精神, 要好奇心,脑海当中会有,技术这种体系(我反正要求,你一定要画思维导图),薄弱环节,你要去补全
形成一定的体系,只是知道一点点,底层 数据库 设计思想哪些 比较深入,彻底搞懂