Spring注解

18 4 月, 2021 0条评论 133点热度 0人点赞 专注着 阅读全文

主要是总结线程间的通信方式有哪些. 通信方式 通过synchronized进行通信 public class MyObject {    synchronized public void methodA() {        //do something....   }    synchronized public void methodB() {        //do some other thing   } } ​ public class ThreadA extends Thread {    privat…

16 4 月, 2021 0条评论 207点热度 0人点赞 专注着 阅读全文

为什么String被设计为不可变类 保证String对象的安全性。假设String对象时可变的,那么String对象将可能被恶意修改 保证hash属性值不会频繁变更,确保了唯一性,使得类似HashMap容器才能实现响应的key-value缓存功能 可以实现字符串常量池。在Java中,通常两个创建字符串对象的方式, 通过字符串常量的方式创建String str = "abc" 字符串变量通过new形式的创建String str = new String("abc") new String("abc")方式创建Stri…

15 4 月, 2021 0条评论 144点热度 0人点赞 专注着 阅读全文

Switch查找case的方式 tableswitch: a table with keys and labels lookupswitch: uses a table with labels only(采用二分查找法) tableswitch 当使用tableswitch时,从stack中获取int值,并直接通过index获取需要跳转的label, 并且立即执行跳转操作。在整个lookup + jump进程中,时间复杂度为O(1) public static void testSwitch(String type…

15 4 月, 2021 0条评论 165点热度 0人点赞 专注着 阅读全文

GC Roots包含哪些(哪些可以作为gc roots) 所谓的GC roots 是垃圾搜集器特有的对象, 垃圾搜集器搜集哪些非GC root的对象并且无法通过GC roots引用直接访问的对象。 一个对象可以属于多个roots, GC roots有一下几种: Class 由系统类加载器加载的类, 永远不能回收这样的类(自定义的类加载器不是root, 除非响应的实例恰好是其他java.lang.Class的类型的root) Thread - 存活的线程 Stack Local - Java方法局部变量或者参数 JN…

15 4 月, 2021 0条评论 125点热度 0人点赞 专注着 阅读全文

-Xms 代表着最小堆, 在jvm启动时就会分配到该大小的区域 -Xmx 代表最大堆, 在jvm最小堆不能满足需求时, 对jvm内存进行扩展, 直到最大堆的内存大小 -Xmn 代表新生代区域的大小 -XX:SurvivorRatio 代表着Eden区域与Survivor区域的比例. 一般Survivor的区域有两个。例如:-XX:SurvivorRatio = 3;则Survivor的大小 = 1/5 * 新生代大小 -XX:NewSize 设置新生代大小 -XX:NewRatio 设置新生代与老年代比值。例如:-…

21 3 月, 2021 0条评论 145点热度 0人点赞 专注着 阅读全文

jvm的常用命令 jps jps相关参数 实例 jstack 分析CPU使用100%的原因 jmap jinfo jstat javap jps 显示当前java的进程以及相关参数 jps相关参数 -q 只显示pid, 不显示class名称, jar名称以及main方法的参数 -m 输出传递给main的参数 -l 输出应用程序main, class的完整package名称或者应用程序jar包的完成路径名 -v 输出传递给jvm的参数 备注: 也可以使用ps aux | grep 项目名称查看对应的pid信息 实例 …

21 3 月, 2021 1条评论 136点热度 0人点赞 专注着 阅读全文
145678