本文共 1622 字,大约阅读时间需要 5 分钟。
- 自我介绍
- 项目里用到的技术
- springboot 是干什么的
- springboot的启动类源码有了解过吗
- springboot 和spring的区别
- spring主要是干什么的
- 如何理解spring的AOP 实现方式有几种
- 怎么理解动态代理
- jvm的动态代理和CGLIB有什么区别 只有实现接口和类的区别吗
- http和https 什么区别
- https的加密证书怎么获取
- 加密后客户端保留的是公钥还是私钥
- http是哪一层的协议 底层用什么协议
- tcp三次握手过程 isn的变化 syn在tcp头部是什么结构
- 滑动窗口是干什么的 怎么用
- 滑动窗口什么时候会滑动 算法是什么
- 线程池用过那些
- 在多线程情况下如何保证线程安全
- 数据库用什么
- mysql的引擎有几种 有什么区别
- mysql的索引是什么结构 为什么不用红黑树
- jvm的数据区域
- 垃圾收集算法
- 主要进行gc的区域 方法区会发生gc吗
- 类加载过程
- 双亲委派模型 是什么
- 为什么要用双亲委派模型
- 如何打破这种机制 ====================================== 问题24: 堆是主要发生垃圾回收的区域 方法区在java虚拟机规范中明确说不必实现 因为回收效率远不如堆 但此部分的内存空间也是可以被回收的。这里发生的垃圾回收主要有两种,一种是常量对象不再被引用 标记为废弃对象 可以被回收,第二种是无用的类。无用的类主要有三种情况,满足一种才能被标记为无用的类。 1 java堆中不存在任何该类的实例 2 加载该类的类加载器已经被回收 3 该类对应的java.lang.Class不在任何地方被引用,且在任何地方无法通过反射来访问该类的方法。 当满足上述三个条件的类才可以被回收,但是并不是一定会被回收,需要参数进行控制,例如HotSpot虚拟机提供了-Xnoclassgc参数进行控制是否回收。 问题20: MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。 应用场景: 1、MyISAM管理非事务表,提供高速存储和检索以及全文搜索能力,如果再应用中执行大量select操作,应该选择MyISAM 2、InnoDB用于事务处理,具有ACID事务支持等特性,如果在应用中执行大量insert和update操作,应该选择InnoDB
问题10:
网站在使用HTTPS前,需要向“CA机构”申请颁发一份数字证书,数字证书里有证书持有者、证书持有者的公钥等信息,服务器把证书传输给浏览器,浏览器从证书里取公钥就行了,证书就如身份证一样,可以证明“该公钥对应该网站”。
https并不是每次传输都会进行加密 这样非常耗时。浏览器在第一次tsl握手时发送一个密钥,服务器将该密钥存在相应的sessionID下,之后浏览器每次请求都会携带sessionid,服务器会根据相应的sessionid找到相应的密钥进行解密加密操作,这样就不必每次都进行密钥的传输制作了。
https的加密过程:
某网站拥有用于非对称加密的公钥A、私钥A’。
浏览器像网站服务器请求,服务器把公钥A明文给传输浏览器。
浏览器随机生成一个用于对称加密的密钥X,用公钥A加密后传给服务器。
服务器拿到后用私钥A’解密得到密钥X。
这样双方就都拥有密钥X了,且别人无法知道它。之后双方所有数据都用密钥X加密解密。
什么是对称加密
就是有一个密钥,它可以对一段内容加密,加密后只能用它才能解密看到原本的内容,和我们日常生活中用的钥匙作用差不多。
非对称加密:
有两把密钥,通常一把叫做公钥、一把叫做私钥,用公钥加密的内容必须用私钥才能解开,同样,私钥加密的内容只有公钥能解开。
加密的私钥是绝对不可以在网络间传输的,所以最后客户端保留的是私钥
问题12 转载地址:http://qenhb.baihongyu.com/