java面试题学习记录1
1.如何发现垃圾?
引用计数法
可达性分析
2.如何回收垃圾 4种
标记清除
标记整理
复制算法
分代收集算法
3.垃圾收集器 7种
gms收集器 标记清除 老年代收集器
g1收集器 标记整理 老年代加新生代
serial收集器 单线程复制算法 新生代收集器
parnew收集器 多线程复制算法 新生代收集器
Parallel Scavenge收集器: 新生代收集器,复制算法的收集器
Serial Old收集器 老年代版本
parnew Old收集器 老年代版本
4.请求重定向与转发
重定向浏览器地址会变,转发不会
重定向是请求了两次,转发是一次
重定向可以是任意地址,请求转发只能是当前项目
重定向是浏览器跳转,请求转发是服务器跳转
5.get和post的区别
get不安全,传递的参数可见
get数据大小有限制,post无限制
get只支持ascll码,post则是ios10646字符集
get是from表单默认的请求方式,效率比较好
6.cookie和session的区别
cookie存放在客户端 session存放服务器
cookie可以长期有效 session跟随会话关闭则关闭
cookie不安全,session安全
存储容量不同,服务器压力不同,存放的数据类型不同
7.数据库的三大范式
原子性,唯一性,直接性
8.mysql的存储引擎
myISAM存储引擎 5.5之前使用的,支持表级锁,不支持事务
innoDB存储引擎 5.5之后使用的,支持行级锁,支持事务,大并发量插入数据效率高,容易死锁
Memory存储引擎 数据放在内存中,读取或写入快,重启数据丢失
9.事务的四种特性 ACID
原子性 最小单位是原子,表示事务不可再拆分
一致性 事务运行前和运行后状态需一致
隔离性 事务与事务之间相互隔离,互不干扰
持久性 事务一旦被提交,则持久到硬盘
可能出现的问题:
脏的读幻读 不可重复读
10.事务的传播行为 7种
spring事务的传播行为说的是,当多个事务同时存在的时候,spring如何处理这些事务的行为。
require必须的/suppor支持/mandatory 强制托管/requires-new 需要新建/ not -supported不支持/never从不/nested嵌套的
PROPAGATION_REQUIRED:required需要,有加入,没有新建)
PROPAGATION_SUPPORTS:supports支持,支持当前事务,有则加入,没有以非事务运行)
supports在执行 增删改 时必须要有事务控制,查询是可有可无
PROPAGATION_MANDATORY:mandatory强制性,支持当前事务,有则加入,没有抛出异常PROPAGATION_REQUIRES_NEW:requires_new需要新的,不管有没有事务,直接创建新事务
PROPAGATION_NOT_SUPPORTED:not supported不支持事务,以非事务方式执行操作,存在事务,就把当前事务挂起。
PROPAGATION_NEVER:never不支持事务,以非事务方式执行,存在事务,则抛出异常。PROPAGATION_NESTED:nested存在则在嵌套事务内执行。没有则新建。
对事务的要求程度可以从大到小排序:mandatory / supports / required / requires_new / nested / not supported / never
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)