posted @ 2021-04-10 14:39 南国木棉 阅读(922) 评论(0) 推荐(0) 编辑
摘要:
谈谈对线程安全的理解 线程安全可以理解为内存安全,堆是内存共享,可以被所有的内存访问。 当多个线程访问同一个对象时,如果不进行额外的同步控制或者其他的协调操作,调用这个对象的行为都可以获得正确的结果,我们就说这个对象时线程安全的。 堆是进程和线程共有的空间,分全局堆和局部堆,全局堆就是所有没有分配的 阅读全文
摘要:
谈谈对线程安全的理解 线程安全可以理解为内存安全,堆是内存共享,可以被所有的内存访问。 当多个线程访问同一个对象时,如果不进行额外的同步控制或者其他的协调操作,调用这个对象的行为都可以获得正确的结果,我们就说这个对象时线程安全的。 堆是进程和线程共有的空间,分全局堆和局部堆,全局堆就是所有没有分配的 阅读全文
posted @ 2021-04-10 14:39 南国木棉 阅读(922) 评论(0) 推荐(0) 编辑
摘要:
sleep和wait的区别: 1 sleep是Thread的静态方法,wait是object方法。 2 sleep不会释放锁,wait会释放锁。 3 sleep不需要唤醒,而wait需要被唤醒。 yield 方法的作用是放弃当前cpu资源,将它让给其他的任务去占用cpu执行时间,但放弃的时间不确定, 阅读全文
posted @ 2021-04-10 14:26 南国木棉 阅读(76) 评论(0) 推荐(0) 编辑
摘要:
线程的生命周期?线程有几种状态? 1 线程通常有五种状态,创建,就绪,运行,阻塞和死亡状态。 2 祖泽的情况又分三种 1)等待阻塞,当线程调用wait方法的时候, 2)同步阻塞, 当线程未拿到同步锁的时候。 3)其他阻塞,运行sleep或者join方法的时候。 新建状态(new):新创建了一个线程。 阅读全文
posted @ 2021-04-10 14:09 南国木棉 阅读(530) 评论(0) 推荐(1) 编辑
摘要:
Gc如何判断对象可以被回收? 1 引用计数器:每一个对象有一个引用属性,新增一个引用时加一,引用释放时减一,计数为0的时候可以回收。 2 可达性分析:从GcRoot开始向下搜索,搜索所走过的路径被称为引用链,当一个对象到GcRoot没有任何引用链相连时,则证明此对象是不可用的,那么虚拟机就可以判定回 阅读全文
posted @ 2021-04-10 14:03 南国木棉 阅读(554) 评论(0) 推荐(0) 编辑
摘要:
java异常体系 java中所有的异常都来自顶级父类ThrowAble。 ThrowAble下有两个子类,Exception和Error。 Error是程序无法处理的错误。一旦出现这个错误,程序将被迫停止运行。 Exception不会导致程序停止,又分为RunTimeException运行时异常和C 阅读全文
posted @ 2021-04-10 11:01 南国木棉 阅读(65) 评论(0) 推荐(0) 编辑
摘要:
双亲委派模型 先看图 java自带三种类加载器, BootStrapClassLoader,ExtClassLoaer,AppClassLoader, 其中BootStrapClassLoader是最高级,ExtClassLoader是BootStrapClassLoader的子加载器,AppCla 阅读全文
posted @ 2021-04-10 10:43 南国木棉 阅读(45) 评论(0) 推荐(0) 编辑
摘要:
java类加载器有哪些? jdk自带有三个类加载器: bootstrap,ClassLoader、ExtclassLoader、AppClassLoader。 BootStrapClassLoader 是ExtClassLoader的父类加载器,默认负责加载%JAVA_HOME%lib下jar包 和 阅读全文
posted @ 2021-04-10 10:08 南国木棉 阅读(1266) 评论(0) 推荐(0) 编辑 |
||