运维.售后
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
博客
Blog
ToB门户
了解全球最新的ToB事件
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
java技术整理1
java技术整理1
半亩花草
金牌会员
|
2022-9-16 17:19:10
|
显示全部楼层
|
阅读模式
楼主
主题
896
|
帖子
896
|
积分
2688
一、基本
1.hashmap:
1.1 转红黑树条件:
a.数组长度大于等于64(默认16,要经过2次扩容--当达到16*默认扩容因子0.75=12就扩容)
b.链表长度大于8
1.2 hashmap先计算hash值,再用hash值计算下标。
2.sleep与await:
1.1 sleep是线程方法,await是object方法
1.2 sleep不会释放锁,而await会
1.3 sleep不依赖于同步器synchronize,而await要
1.4 sleep不需要被唤醒,而await要
3.hashtable与hashmap:
1.1 前者线程安全,而后者不是
1.2 前者不可以把null作为key,而后者可以,并放在第一个节点上
1.3 两者扩容因子默认都是0.75;前者初始容量为11,扩容是当前容量
2+1;后者初始容量是16,扩容是当前容量
2
4.cookie与session的区别:
前者cookie:
存放在客户端浏览器中;
大小受限制,单个不超过4K,一般1个站点最多保存20个;
String类型;
不太安全(可以加密)
后者sessiono:
存放在服务器中;
大小一般不受限制;
Key-Value(Object类型);
安全性更高;
二、JVM
4.用户线程与内存线程:
1.1 多对一:不需要切换,线程创建、调度、同步非常快;但是如果其中一个用户线程阻塞会造成其他线程无法执行,且无法像内核线程一样实现较完整的调度、优先级;
1.2 一对一:java的jvm几乎把所有对线程的操作都交给了系统内核操作,线程真正启动顺序不一定是按我们启动的顺序,会引起用户态和内核态的频繁切换;如果系统出现大量线程,回家降低系统性能。
5.运行时数据区:
6.内存回收:
7.内存溢出:
1.1 栈溢出
1.2 堆溢出
》
》第8行设置会在堆溢出会导出Damping日志
1.3 方法区溢出
1.4 本机直接内存溢出
8.内存泄漏:
1.1 不使用的内存,却没有被释放;
1.2 每一次请求进来或者每一次操作处理都分配了内存,却有部分不能回收(或未释放),随着请求越来越多,内存泄漏就会越来越严重,必然造成内存溢出。
1.3 内存泄漏一般是资源管理问题或者程序bug,内存溢出则是内存空间不足和内存泄漏的最终结果。
9.hotspot对象头包含哪些部分:
10.根据类分析对象的内存占用:
11.jvm启动参数:在哪里配?
12.堆空间最大值设置:
13.G1垃圾收集器特点:
1.空间整合:哪块垃圾最多优先清理
2.多线程+并发+可预测停顿
14.排查OOM的方法:
14.jvm的相关命令工具:
15.java8默认垃圾收集器:
16.并行垃圾收集器:
17.swt:
安全点:方法调用、循环跳转、异常跳转;设置标志位,并不断轮询,主动停止。
17.cpu使用率飙升,怎么排查?
先通过top命令找到cpu使用率高的线程;top -p 进程号;该界面输入H查找最高cpu的线程;执行jstack 进程号做dump输出线程信息; 同时根据线程的16进制找到对应的堆信息,然后再找出对应的代码
6、最后根据线程信息定位到具体代码
18.垃圾回收器的三色标记:
19.类加载、类加载器:
三、消息中间件
1.为什么用rocketmq:
3.各种消息列队:
4.mq的消息重复:
5.mq的消息重复:
4.解决MQ重复消息:
6.roketmq性能优化:
四、缓存
1.Redis概念:
Nosql,C编写,包含多种数据结构(字符串、列表、集合、散列表、有序集合),支持网络,基于内存还能持久化性能高效每秒可以处理超过10万次读写操作,遵守BSD协议,支持分布式易拓展、支持多种语言的k-v存储数据库。
2.Redis数据类型:
2.Redis与Memcached区别:
3.Redis的应用场景:
4.Redis为什么速度:
5.为什么用Redis而不用map/guava做缓存:
6.Redis的持久化机制:
7.如何保持缓存与数据库双写时一致:
8.缓存穿透:
五、并发编程
1.线程与进程的区别:
2.多线程中的上下文切换:
3.java内存模型:
4.原子操作,JUC中原子操作类有哪些:
5.CAS操作及缺点:
6.java中的volatile变量作用:
7.volatile和atomic变量区别:
8.lock接口与synchronized区别:
9.乐观锁和悲观锁的理解及实现:
10.死锁:
11.callable及future:
13.futureTask的底层原理:
14.阻塞队列及实现原理:
15.不可变对象对并发应用的帮助
16.生产消费者模型作用:
17.copyOnWriteArrayList应用场景:
18.java单例:
19.双重检查锁定DCL的单例:
20.AQS:
wait、notify、notifyAll为什么不在thread类中:
六、分布式
1.分布式幂等性接口设计:
2.分布式session方案:
3.分布式事务:
4.ZAB协议:
5.Zookeeper和Redis区别:
6.Zookeepr节点宕机处理:
7.Zookeeper四种类型数据节点:
8.Dubbo和cloud区别:
9.Dubbo协议:
七、数据库
1.mysql存储引擎:
2.innodb与myisam区别:
3.表设计字段选择:
4.mysql的varchar(M)最多存储数据:
5.事务基本特性:
6.事务并发引发问题:
7.mysql索引:
8.三星索引:
9.innodb一颗b+树存放可以存放多少行数据:
10.如何提高insert性能:
11.全局锁、共享锁、排他锁:
12.mysql死锁:
<font color="#999AAA"> 以上主要参考:https://www.bilibili.com/video/BV1vu41197Np?p=4&spm_id_from=pageDri
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
半亩花草
金牌会员
这个人很懒什么都没写!
楼主热帖
YOLOV5 代码复现以及搭载服务器运行 ...
本周涨粉一倍,我决定再开源一个商超管 ...
APP性能优化
安装Python
经典Python题目:一个列表或者数组去重 ...
Java集合框架(五)-Collections 和 泛型 ...
《C++性能优化指南》 linux版代码及原 ...
Spring5——JdbcTemplate笔记
【Redis】BigKey问题
.net6下[WPF+yolov5+opencvsharp]
标签云
存储
服务器
快速回复
返回顶部
返回列表