java GC 类加载器 Servlet

1. servlet的生命周期

 画出servlet的运行原理. 其中第3.4.5.8是servlet的生命周期

生命周期有四个部分:

1.创建Servlet实例对象。通过服务器反射机制创建Servlet对象,第一次请

求时才会创建。(默认)

2,调用Servlet对象的init()方法。初始化Servlet的信息,init()方法只会在创建后被调用一次;

3,响应请求,调用service()或者是doGet(),doPost()方法来处理请求,这些方法是运行的在多线程状态下的。

4,  在长时间没有被调用或者是服务器关闭时,会调用destroy()方法来销毁Servlet对象。

2. 类加载器的加载流程

 3. 类加载流程

4.类加载器的类型有几种

5. 常用的加密算法及原理。 什么是对称加密, 什么是非对称加密算法, 有哪些算法是对称加密算法, 哪些是非对称加密算法? 

  md5加密算法:

  md5加密算法是一种不可逆的加密,一定记住是不可逆的虽然现在很多算法也可以将md5解密出来但是md5还是具有很大程度上的不可逆,而且加大解密难道使用双重加密,很多登录的地方用到md5加密,那么有些人会问我用md5加密了服务器怎么解密呢,你要是这么想就错了登录时输入用户的密码这个密码被md5加密后在服务器也存的是这个md5的字符格式,也就是说服务器的数据库存的就是这个格式的字符串,所以服务器那边为什么要解密呢,只要比较你客户端发送的md5字符串和它数据库字符串进行比较就行了,而且现在APP运营商也很多都不敢保存用户的明文密码这是对用户信息的不负责。现在md5也只是用于数据库存储数据。
      还有一种就是可以解密的加密算法,一本分为两种,对称加密算法和非对称加密算法。

 

 

 

RSA算法中,每个通信主体都有两个钥匙,一个公钥(Public Key)用来对数据进行加密; 一个私钥(Private Key)用来对数据进行解密。 

在SSH的加密原理中,使用到了RSA非对称加密算法,

非对称加密算法的两种用途:加密和验签

 
   详解非对称加密算法
 
  非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公钥对数据加密,只有用对应的私钥才能解密;如果用私钥对数据加密,那么只有对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法
  非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公钥公开给乙方;得到该公钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
  另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签。
  甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。 非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。
  非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。
 

 6. minorGC和fullGC的触发条件

Minor GC ,Full GC 触发条件

Minor GC触发条件:当Eden区满时,触发Minor GC。

Full GC触发条件:

(1)调用System.gc时,系统建议执行Full GC,但是不必然执行

(2)老年代空间不足

(3)方法去空间不足

(4)通过Minor GC后进入老年代的平均大小大于老年代的可用内存

(5)由Eden区、From Space区向To Space区复制时,对象大小大于To Space可用内存,则把该对象转存到老年代,且老年代的可用内存小于该对象大小

 7. RestFul设计风格

restFul设计风格, 看下面这两篇文章就基本你理解了. 

https://www.imooc.com/article/17650

https://blog.csdn.net/weide_java/article/details/53793769

原文地址:https://www.cnblogs.com/ITPower/p/9165362.html