摘要:
3.2 哪些对象需要回收 3.2.1 引用计数法 对象持有一个计数器,有地方引用则计数器加1,当引用失效时减1,计数器为零时回收。存在环形引用无法回收问题。 3.2.2 可达性分析 当对象和GC Roots对象之间没有引用路径时,需要回收。 GC Roots对象: 虚拟机栈中引用的对象 方法区中静态 阅读全文
摘要:
一、事务的隔离级别 读未提交-read uncommitted(产生脏读现象):A事务读取到B事务未提交的修改内容 读已提交-read committed(产生不可重复读现象):A事务在B事务提交前后读取到的内容不一致,包括B事务增/删/改造成的影响 可重复读-repeatable read(产生幻 阅读全文
摘要:
2.2 运行时数据区域 程序计数器:线程私有,没有OOM,当前执行的java方法则是虚拟机字节码指令的地址,如果是native,则为空(undefined)。 虚拟机栈:线程私有,生命周期与线程相同,每个方法对应一个栈帧(局部变量表、操作数栈、动态链接、方法出口等),方法的执行就是栈帧的出栈和入栈。 阅读全文
摘要:
1. TCP 和 UDP的区别: TCP面向连接;UDP无连接 TCP保证数据的可靠传输,数据传送无差错,不丢失,无重复,按序到达;UDP不保证可靠交付 TCP连接一对一;UDP支持更广泛 UDP实时性好,效率高,适用场景:短消息传输,大量客户端,对数据安全性要求不高但实时性要求高 TCP面向数据流 阅读全文
摘要:
参考:https://blog.csdn.net/fuzhongmin05/article/details/57404890 在此之前,描述一下类加载器: 类的加载阶段,根据类的全限定名找到对应的二进制字节流并没有定义具体的实现方式,是通过类加载器完成的。一个类加载器本身也是一个Java类。 JVM 阅读全文
摘要:
Synchronized的作用方式: 作用于代码块 作用于实例方法 作用于静态方法 作用于对象 1. 同步代码块和同步实例方法的区别:只有进入同步代码块才会锁住对象,而进入同步方法立即锁住对象。 public void print(){ System.out.print("进入方法+线程:" + T 阅读全文
摘要:
当数据库比较复杂时(数据量大,表较多,业务关系复杂),需要预先设计数据库。 软件项目的开发周期 1. 需求分析:分析客户的业务和数据处理需求 2. 概要设计:设计数据库的E-R模型图,确认需求信息的正确和完整 3. 详细设计:将E-R图转换为多张表,进行逻辑设计,并用数据库设计的三大范式进行审核 4 阅读全文
摘要:
参考:https://blog.csdn.net/xionghuixionghui/article/details/68569282,https://blog.csdn.net/rainHistory/article/details/78780227 1. HTTP协议以明文方式发送内容,不提供数据 阅读全文
摘要:
参考:https://www.cnblogs.com/ITtangtang/p/3978349.html 1. 依赖注入发生的时间 (1)用户第一次通过getBean方法向IoC容器索取Bean时,触发依赖注入 (2) 用户在Bean定义资源中为<Bean>元素配置了lazy-init属性,让容器在 阅读全文
摘要:
参考:https://www.cnblogs.com/ITtangtang/p/3978349.html 一、Ioc/DI 控制反转,把原先代码里需要实现的对象的创建、依赖的代交给容器帮忙实现。所以需要创建一个容器,同时需要一种描述让容器知道需要创建的对象与对象之间的关系。 对象与对象之间的关系通过 阅读全文