03 2020 档案
摘要:synchronized底层对应的JMM模型8大原子操作lock与unlock synchronized原理分析 加锁: 同步实例方法,锁是当前实例对象 同步类方法,锁是当前类对象 同步代码块,锁是括号里面的对象 原理: synchronized标记的对象在编译为指令的时候,是被moniterent
阅读全文
摘要:MYSQL索引分类 在一个表中,主键索引只能有一个,唯一索引可以有多个 主键索引:即一个索引只包含单个列,一个表可以有多个单值索引。 --该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULLALTER TABLE tb1_name ADD RPIMARY KEY(column_list)
阅读全文
摘要:算法类型: 标记-清除算法:标记无用对象,然后进行清除回收。缺点:效率不高,无法清除垃圾碎片。 标记-压缩算法:标记无用对象,让所有存活的对象都向一端移动,然后直接清除掉端边界以外的内存。 复制算法:按照容量划分二个大小相等的内存区域,当一块用完的时候将活着的对象复制到另一块上,然后再把已使用的内存
阅读全文
摘要:一、GC存在的意义 GC是垃圾回收的意思(gabage collection),内存处理器是编程人员容易出现问题的地方,忘记或者错误的内存回收导致程序或者系统的不稳定甚至崩溃,java的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,java语言没有提供释放已分配内存的俄显示操作方
阅读全文
摘要:JVM内存模型包括:类加载器、执行引擎、本地方法库、运行时数据区 1.类加载器 JVM中类加载器会把 Java 代码转换成字节码,主要使用双亲委派机制实现类的加载,加载机制为:当前程序类-->扩展程序类-->根加载器(rz.jar) 类加载器分类: 启动类加载器(Bootstrap ClassLoa
阅读全文
摘要:JDK中包含JRE,JRE中包含JVM,JVM中有platforms,如下图所示:
阅读全文
摘要:线程阻塞的原因,有三大类: 1.获取锁,得不到,就进入到等待锁的阻塞队列。 只有占有锁的线程,释放锁时,才会唤醒这个队列中的线程。 notify不会唤醒该队列中的线程 2.正在占用锁的线程,调用了wait,就进入wait阻塞队列。 只有obj.notify()方法,才会唤醒这个队列中的线程。 一般的
阅读全文
摘要:有四种 调用构造器创建对象; 使用类反射创建对象 使用clone方法创建; 使用反序列化创建对象
阅读全文
摘要:封装 对外隐藏复杂的实现过程,暴露出简单的使用方法。 隔离变化。 提高代码重用性。 保护数据。 继承 提高代码重用性。(如果仅仅是为了重用,name可以优先考虑组合) 多态的前提。 多态 多态的前提:继承 多态的作用:提高代码扩展性(dao、jdbc) 多态的体现:向上转型 多态的限制:向上转型发生
阅读全文
摘要:单一原则 一个类,一个方法,只负责一件事 里氏替换原则 在任何使用父类对象的地方,替换为子类对象后,程序不会有任何问题 依赖倒置 上层不能依赖于下层,他们都应该依赖于抽象; 举例:dao,service通过dao接口+dao工厂来访问下层的dao实现的,在以后扩展dao时,上层service是不用改
阅读全文
摘要:设计模式七大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两
阅读全文
摘要:具体步骤如下: spring mvc 先将请求发送给 DispatcherServlet。 DispatcherServlet 查询一个或多个 HandlerMapping,找到处理请求的 Controller。 DispatcherServlet 再把请求提交到对应的 Controller。 Co
阅读全文
摘要:1.堆内存溢出 堆内存中主要存放对象、数组等,只要不断地创建这些对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,当这些对象所占据空间超过最大堆容量时,就会产生OutOfMemeorgError的异常,堆内存溢出异常示例如下: public class ArrayDe
阅读全文
摘要:一、数据的存储结构 1.顺序存储结构,例如:java中的数组、ArrayList等。 2.链式存储结构,例如:java中的LinkList等。 二、数据的逻辑结构 1.集合结构:集合结构中的数据元素同属于一个集合,他们之间是并列的关系,除此以外没有其它关系。 2.线性结构:线性结构中的元素存在一对一
阅读全文
摘要:1.一个类中若没有任何构造器,则编译的时候回默认生成一个无参构造器; 2.若父类中已经有有参构造方法,那么子类中也必须存在有参构造方法,且必须通过super关键字调用父类有参构造器; 3.若父类中同时存在有参和无参构造器,那么子类中的有参构造器会默认执行父类无参构造方法,参考代码如下: public
阅读全文
摘要:相同点: StringBuffer和StringBuilder在功能上是完全相等的,他们都继承自AbstractStringBuilder,使用方法也都一样; 可以对StringBuffer和StringBuild对象进行改变,每次改变还是在原来的对象上发生的,不会重新new出新的StringBuf
阅读全文

浙公网安备 33010602011771号