Java面试知识点总结

从url到页面显示过程

  1. 浏览器先查找浏览器缓存,系统缓存,路由器缓存,有则直接显示,没有则下一步
  2. 经过域名解析,获得相应的ip地址
  3. 浏览器向服务器发送tcp,以滑动窗口形式进行三次握手
  4. 握手成功后发送http请求
  5. 服务器收到请求,并返回数据包
  6. 浏览器对数据进行解析和渲染,生成最终页面

索引失效

  1. 隐式转换
  2. 对索引列运算,加减乘除和比较运算,like
  3. 对索引列使用内部函数
  4. 条件有or

Spring事务

  • [ ] 声明式事务:
    TransactionManager,配置传播行为隔离级别
  • [ ] 编程式:@Transaction(propagation isolation rollback for
    -xx:+UseConcMarkSweepGC
    -xx:+UseParallelGC
    -xx:+UseParallelOldGC
    -xx:+UseSerialGC
    jvm工具:jstat visualvm

解决跨域:1.控制台修改浏览器属性 2.使用jsonp解决xhr类型限制 3.给浏览器增加字段
jsonp弊端:1.改动服务器代码 2.只支持get请求 3.不能发送xhr格式

http

  • [ ] 支持cs模式
  • [ ] 简单快速,一次请求,一次响应
  • [ ] 传输任意对象
  • [ ] 无连接,交互完成不保持连接
  • [ ] 无事务
    请求内容
  • [ ] 请求行,消息头,消息体
    响应内容
  • [ ] 状态行,消息头,消息体
    https
  • [ ] 发送https请求
  • [ ] 返回证书
  • [ ] 信息检验
  • [ ] 发送对称密钥
  • [ ] 服务器解析对称密钥
  • [ ] 协商使用此对称密钥

dry不要重复
kiss简单之美
ddd领域驱动设计

前序:根左右
中序:左根右
后序:左右根
三范式

  • [ ] 每列原子性
  • [ ] 确保每列和主键相关
  • [ ] 确保每列和主键直接相关
    Spring冲突:构造时相互依赖,无法完成
    序列到头了:循环
    mybatis直接从String输入sql:无法进行预编译,防注入机制

redis

  • [ ] rename重命名
  • [ ] expire ttl设置生存时间
  • [ ] type查看类型
  • [ ] select切换数据库
  • [ ] 事务multi.exec.discard
  • [ ] 持久rdb方便 ,aof安全管理

jvm加载机制

  • [ ] 加载:加载到内存,数据放方法区,并在堆生成Class对象,以便类加载器访问方法区
  • [ ] 验证:符合jvm规范
  • [ ] 准备:静态变量初始化为初始值
  • [ ] 解析:把字面引用解析为指针
  • [ ] 初始化:执行构造器
  • [ ] 使用:执行main方法形成栈帧,调用其他方法会压栈,先在栈生成A对象的引用a为null,后通过new执行构造器,生成堆里的A对象,并把地址赋值给a,通过a调用方法区的数据
  • [ ] 卸载:垃圾回收

MySQL引擎区别:

  • [ ] innodb:支持事务,外键,行级锁
  • [ ] Myisam:高性能读取

Zookeeper:

  • [ ] 三种角色:领导者,学习者,客户端
  • [ ] zab协议实现原子广播,保证服务的同步
  • [ ] 运行三种状态:looking,leading,following
  • [ ] zxid标识事务

Hibernate事务隔离

  • [ ] 1,读未提交,虚读,不可重复读,脏读
  • [ ] 2,读已提交,虚读,不可重复读
  • [ ] 4,可重读,虚读
  • [ ] 8,可串行化
  • [ ] 乐观锁解决并发问题,添加版本号
    悲观锁:一锁二查三更新
    乐观锁:当取锁失败多的情况不如悲观锁
    脏读:读到的数据被回滚
    虚读:读到了不一样的数据,多或少一个数据
    不可重复读:同上,但相同的数据值变了

事务传播行为

  • [ ] 1required默认,有就用,没有就创建
  • [ ] 2supports,有就用,没有就不用
  • [ ] 3mandatory,有就用,没有就抛异常
  • [ ] 4requiresnew,永远使用新事务
  • [ ] 5notsupported,永远不使用事务
  • [ ] 6never,不使用事务,如果有就抛异常
  • [ ] 7nested,有就嵌套,没有就创建

分布式:一个业务拆分多个子业务
集群:一个子业务部署在多个服务器
厨师与主厨的区别

Struts基于类的多例
Springmvc基于方法的单例

shiro流程

  • [ ] 构建securitymanager环境
  • [ ] subject.login提交认证
  • [ ] 调用securitymanager.login提交认证
  • [ ] Authentication 验证
  • [ ] realm验证

tomcat只让servlet生成一次

nginx负载均衡机制:

  • [ ] 轮询:默认
  • [ ] 最少连接:least_conn
  • [ ] ip哈希:ip_hash
  • [ ] 权重:weight
  • [ ] 健康监测:fail_timeout max_fails

Callable区别

  • [ ] call方法取代run,可以返回future,可以抛出异常
  • [ ] 调用get方法,返回future对象记录线程运行状况

前端优化

  • [ ] css放js前面
  • [ ] 懒加载
  • [ ] 静态资源压缩和缓存
  • [ ] 使用cdn选择最近的服务器
  • [ ] 使用ssr后端渲染
  • [ ] 减少dom操作
  • [ ] 多内存,少io

jvm结构

  • [ ] 年轻代:一个eden区,两个survivor区,from和to。当ygc时,会移动到另一个s区,然后转换角色,to始终保持空的,用于复制算法
  • [ ] 老年代:存放年龄大的对象,15岁
  • [ ] 永久代:存放静态文件
  • [ ] fullgc:老年代和永久代满,调用gc方法
  • [ ]
    jvm调优
  • [ ] xms.xmx调整堆初始值和最大值
  • [ ] xmn设置初始年轻代大小
  • [ ] xx:PermGen,MaxPermGen设置永久代初始和最大
  • [ ] xx:SurvivorRatio设置eden和survivor空间比例,默认8
  • [ ] xx:NewRatio设置老年代和年轻代空间比例,默认2
  • [ ] xx:MaxTenuringThreshold设置年龄

gc调优

  • [ ] 使用visual gc插件提供可视化界面
  • [ ] permgenspace,提高永久代内存空间
  • [ ] fullgc,提高老年代内存空间
  • [ ] 降低youngGC的频率、减少fullGC的次数。
    gc算法
  • [ ] 标记清除
  • [ ] 复制
  • [ ] 标记整理
  • [ ] 增量回收
  • [ ] 分代清除
  • [ ] 并发回收
  • [ ] 并行回收

tomcat调优

  • [ ] 增加jvm初始值xmsxmx
  • [ ] 优化connector.xml超时时间,最小最大链接,排队长度
  • [ ] 安装插件apr,tomcat nativejiukan

{}和${}

  • [ ] $是文本占位符,静态文本替换${string}
  • [ ] #是参数占位符,会进行预编译成?

常见标签
resultMap parameterMap
sql include
selectKey trim
where set
foreach
if choose
when otherwise
bind

MyBatisDAO工作原理

  • [ ] 接口映射给配置文件,解析为一个MappedStatement
  • [ ] 交给动态代理执行

Mybatis内部之间的关系

  • [ ] 配置封装到Configuration内部
  • [ ] 〈parameterMap〉解析为parameterMap对象,子元素解析为parameterMapping对象
  • [ ] 〈resultMap〉解析为resultMap对象,子元素解析为resultMapping对象
  • [ ] 增删改差标签解析为MappedStatement对象,sql解析为BoundSql对象

自定义注解

  • [ ] @documented @target @inherited @retention

HashMap工作原理

  • [ ] 基于hashing算法
  • [ ] put()先调用hashcode方法,找到bucket位置储存entry对象,get根据key的哈西找到
  • [ ] hashcode相同,会储存bucket链表中,链表太长会转为二叉树,取值时找到正确的bucket用equals依次比较o1退化ologn

10层架构

  • [ ] Service 服务
  • [ ] Config 配置
  • [ ] Proxy 代理
  • [ ] Registry 注册
  • [ ] Cluster 集群
  • [ ] Monitor 监控
  • [ ] Protocol 远程调用
  • [ ] Exchange 信息交换
  • [ ] Transport网络传输
  • [ ] Serialize序列化

网络7层

  • [ ] 应用层
  • [ ] 表示层
  • [ ] 会话层
  • [ ] 传输层
  • [ ] 网络层
  • [ ] 数据链路层
  • [ ] 物理层

调用流程

  • [ ] 提供者发送服务到注册中心
  • [ ] 消费者从注册中心订阅服务
  • [ ] 消费者调用已经注册的服务

tair是键值对的解决方案
从url到页面显示过程

  1. 浏览器先查找浏览器缓存,系统缓存,路由器缓存,有则直接显示,没有则下一步
  2. 经过域名解析,获得相应的ip地址
  3. 浏览器向服务器发送tcp,以滑动窗口形式进行三次握手
  4. 握手成功后发送http请求
  5. 服务器收到请求,并返回数据包
  6. 浏览器对数据进行解析和渲染,生成最终页面

索引失效

  1. 隐式转换
  2. 对索引列运算,加减乘除和比较运算,like
  3. 对索引列使用内部函数
  4. 条件有or

Spring事务

  • [ ] 声明式事务:
    TransactionManager,配置传播行为隔离级别
  • [ ] 编程式:@Transaction(propagation isolation rollback for
    -xx:+UseConcMarkSweepGC
    -xx:+UseParallelGC
    -xx:+UseParallelOldGC
    -xx:+UseSerialGC
    jvm工具:jstat visualvm

解决跨域:1.控制台修改浏览器属性 2.使用jsonp解决xhr类型限制 3.给浏览器增加字段
jsonp弊端:1.改动服务器代码 2.只支持get请求 3.不能发送xhr格式

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,561评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,218评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,162评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,470评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,550评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,806评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,951评论 3 407
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,712评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,166评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,510评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,643评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,306评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,930评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,745评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,983评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,351评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,509评论 2 348

推荐阅读更多精彩内容