• 表与表之间常用的关联方式有两种:内连接、外连接,下面以MySQL为例来说明这两种连接方式。 内连接: 内连接通过INNER JOIN来实现,它将返回两张表中满足连接条件的数据,不满足条件的数据不会查询出来。 外连接: 外连接通过OUTER JOI...
  • 默认情况下,Bean在Spring容器中是单例的,我们可以通过@Scope注解修改Bean的作用域。该注解有如下5个取值,它们代表了Bean的5种不同类型的作用域: 类型 说明 singleton 在Spring容器中仅存在一个实例,即Bean以...
    • 9月前
  • 对于敏感数据,应存放在session里,因为cookie不安全。 对于普通数据,优先考虑存放在cookie里,这样会减少对服务器资源的占用。
    • 9月前
  • Full GC会“Stop The World”,即在GC期间全程暂停用户的应用程序。
  • 引用计数算法: 在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。 但是,在Java领域,至少主流的Java虚拟机里面都没有选用引用计数算法来管理内存,...
  • MVC是一种设计模式,在这种模式下软件被分为三层,即Model(模型)、View(视图)、Controller(控制器)。Model代表的是数据,View代表的是用户界面,Controller代表的是数据的处理逻辑,它是Model和View这两层...
    • 10月前
  • 概括来说,写好的 Java 源代码文件经过 Java 编译器编译成字节码文件后,通过类加载器加载到内存中,才能被实例化,然后到 Java 虚拟机中解释执行,最后通过操作系统操作 CPU 执行获取结果。如下图:
    • 10月前
  • 影响插入速度的主要是索引、唯一性校验、一次插入记录条数等。针对这些情况,可以分别进行优化。 对于MyISAM引擎的表,常见的优化方法如下: 禁用索引 对于非空表,插入记录时,MySQL会根据表的索引对插入的记录建立索引。如果插入大量数据,建立索引...
    • 10月前
  • 没有程序计数器,Java程序中的流程控制将无法得到正确的控制,多线程也无法正确的轮换。 扩展阅读 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机...
  • 当一个变量被定义成volatile之后,它将具备两项特性: 保证可见性 当写一个volatile变量时,JMM会把该线程本地内存中的变量强制刷新到主内存中去,这个写会操作会导致其他线程中的volatile变量缓存无效。 禁止指令重排 使用vola...