Http:八股 1、服务器将公钥注册到CA, CA用自己的私钥给 服务器的公钥进行数字签名。2、客户端拿到服务器证书后,用CA的公钥确认数字证书的真实性。3、获取服务器的公钥,使用它对报文加密后发送。SSL/加密流程:1、向服务端索要公钥,验证公钥的有效性。2、双方协商产生会话密钥。(通过非对称加密,产生会话密钥)3、通过会话密钥,进行加密通信。(对称加密)
Java垃圾回收_1 存在循环引用问题, Java未使用这种算法在引用计数法中,每个对象都有一个引用计数器,记录着指向该对象的引用数量。当引用计数器为零时,表示没有任何引用指向该对象,该对象可以被释放,回收其占用的内存。
docker-file 网络 加入自定义网络的容器可以互相访问,并且可以通过容器名互相访问,不需要知道容器名。新加入的网卡容器加入网络 docker network connect heima nginxdocker inspect nginx 查看 多出一个network。
SpringBoot Bean 加上Bean注解,使用通过Aotuwired注入第三方Bean 可以通过Bean注解的name value 指定bean名称,默认是方法名第三方Bean需要注入其他Bean,可以通过形参自动装配,根据类型从IOC容器找到Bean对象注入。
Java AOP 切入点表达式 : 返回值 包名 + 类名 + 方法(方法参数, …要在其他类中使用,pointcut修饰的方法改为public。为目标对象生成代理对象,程序执行的时候注入的是代理对象。自定义注解MyLog,要匹配哪个方法就在方法上加注解。原始方法前开启事物,原始方法结束后 提交/回滚事物。调用代理对象的list方法,已经进行了功能的增强。可以获得目标方法的 方法名 参数 类名等信息。环绕通知,原始方法之前和之后都可以执行。执行业务层方法时,运行共性方法。可以被AOP控制的方法。匹配有特定注解的方法。
Filter和Interceptor 浏览器接收响应回来的数据 自动将cookie存储在本地,服务器端接收到请求对请求进行统一拦截,校验token。后续请求当中浏览器将cookie携带到服务器。服务器自动将cookie响应给浏览器。
sprinboot配置文件 Value注解读取配置文件,properties配置文件。将spring配置文件中的值自动注入对象的属性中。配置文件值赋值给AliOSSUtils中的属性。每个成员变量加value注解,繁琐。
Web开发三层架构 如果要将实现类由EmpServiceA 切换为EmpServiceB,可以基于B对象在容器中创建一个对象,即使Service中实现类发生变化,Controller代码也不需要改动。此时如果要切换实现类:EmpServiceA 切换到EmpServiceB,将A上面的 //@Component注释掉就可以。有两个EmpService的Bean,EmpServiceA,EmpServiceB:使用哪个?(1)@Primary 设置优先级,想要哪个Bean生效,就在哪个Bean上加@Primary。
Java获取请求参数 /请求参数名与形参中数组名保持一致//集合接收,请求参数名和集合变量名相同// 加上注解@RequestParam//接收json格式的数据,加上注解@RequestBody//路径参数,请求的参数是路径的一部分,id是可变的。
Tomcat springboot开发的入门程序,springboot底层提供servlet程序,DispatcherServlet。HttpServletRequest解析请求信息,应用程序可以通过Request对象获取请求信息。HttpServletResponse按照Http响应数据的格式给浏览器响应数据。Tomcat:servlet容器。
STL set、multiset| map multimap / 内部rb_tree容器public://迭代器,set不可以通过迭代器修改元素set中所有操作,使用红黑树做,set这里可以看成一个container adapter。
RB-Tree red-black tree(红黑树)是平衡二元搜索树(balanced binary tree)。其特征:排列规则有利于Search和Insert,并保持适度平衡—无任何节点过深。前者需要key在树是独一无二的(multimap/set不适用),后者key可以重复存在。rb_tree在使用中需要你提供4个参数:Key、Value、KeyofValue(提取Key的方法)、Compare(比较key的大小的方法)。Compare:Compare(比较key的大小的方法)