摘要: 最近看到一个问题: java多线程Thread类与Runnable 接口使用哪个更好? 作为一个面试题,他需要有答案,如下 实现Runnable 接口比继承Thread 类的方式更好: (1)可以避免由于Java单继承带来的局限性; (2)可以实现业务执行逻辑和数据资源的分离; (3)可以与线程池配 阅读全文
posted @ 2022-04-07 22:51 r1-12king 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 1、StringBuilder 与 StringBuffer StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。 2、区别 StringBuffer 和 StringBuilder 区别在于,StringBuffer 是线程安全,Strin 阅读全文
posted @ 2022-04-07 22:33 r1-12king 阅读(581) 评论(1) 推荐(1) 编辑
摘要: #{}是预编译处理,${}是字符串替换。 · Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值; · Mybatis在处理{}时,就是把时,就是把{}替换成变量的值。 使用#{}可以有效的防止SQL注入,提高系统安全性。 一、什么 阅读全文
posted @ 2022-04-07 16:56 r1-12king 阅读(83) 评论(0) 推荐(0) 编辑
摘要: Mybaits的优点 (1)基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响, SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态 SQL语句,并可重用。 (2)与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码 阅读全文
posted @ 2022-04-07 16:49 r1-12king 阅读(221) 评论(0) 推荐(0) 编辑
摘要: CAS工作原理 假如线程在自己的工作空间对数据进行修改后,准备写入主内存时,线程先判断(比较)主内存现有的值是不是自己修改前的那个值,如果是的话那么就直接将数据写入(交换)主内存,不是的话那么就重新读入 主内存的值在进行操作,直到准备写入的时候主内存的值是自己预期的值,这就是比较并交换的简单思想. 阅读全文
posted @ 2022-04-07 16:33 r1-12king 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 1)堆栈配置相关 -Xmx3550m: 最大堆大小为3550m。 -Xms3550m: 设置初始堆大小为3550m。 -Xmn2g: 设置年轻代大小为2g。 -Xss128k: 每个线程的堆栈大小为128k。 -XX:MaxPermSize: 设置持久代大小为16m -XX:NewRatio=4: 阅读全文
posted @ 2022-04-07 16:28 r1-12king 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 1)类加载检查:虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 2)分配内存:在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需的内存大小在 阅读全文
posted @ 2022-04-07 16:21 r1-12king 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 建立对象就是为了使用对象,我们的Java程序通过栈上的 reference 数据来操作堆上的具体对 象。对象的访问方式有虚拟机实现而定,目前主流的访问方式有使用句柄和直接指针2种: 句柄: 如果使用句柄的话,那么Java堆中将会划分出一块内存来作为句柄池,reference 中存 储的就是对象的句柄 阅读全文
posted @ 2022-04-07 16:11 r1-12king 阅读(123) 评论(0) 推荐(0) 编辑
摘要: JVM中的堆,一般分为三大部分:新生代、老年代、永久代。 1、新生代 主要是用来存放新生的对象。一般占据堆的1/3空间。由于频繁创建对象,所以新生代会频繁触发MinorGC进行垃圾回收。 新生代又分为 Eden区、ServivorFrom、ServivorTo三个区。 Eden区:Java新对象的出 阅读全文
posted @ 2022-04-07 16:02 r1-12king 阅读(1284) 评论(0) 推荐(0) 编辑
摘要: 如何判断一个常量是废弃常量 ? 运行时常量池主要回收的是废弃的常量。 假如在常量池中存在字符串 "abc",如果当前没有任 何 String 对象引用该字符串常量的话,就说明常量 "abc" 就是废弃常量,如果这时发生内存 回收的话而且有必要的话,"abc" 就会被系统清理出常量池。 如何判断一个类 阅读全文
posted @ 2022-04-07 15:48 r1-12king 阅读(117) 评论(0) 推荐(0) 编辑
摘要: JVM调优命令 jps,JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。 jstat,JVM statistics Monitoring,是用于监视虚拟机运行时状态信息的命令,它可以显示出 虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。 j 阅读全文
posted @ 2022-04-07 15:38 r1-12king 阅读(183) 评论(0) 推荐(0) 编辑
摘要: Java 多态的概述 多态是面向对象编程语言的重要特性。它允许基类的指针或者引用指向派生类的对象,而在具体访问时实现方法的动态绑定。 Java 对于方法调用动态绑定的实现主要依赖于方法表,但通过类引用调用(invokevitual)和接口引用调用(invokeinterface)的实现则有所不同。 阅读全文
posted @ 2022-04-07 15:07 r1-12king 阅读(101) 评论(0) 推荐(0) 编辑