博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2021年4月10日

摘要: 谈谈对线程安全的理解 线程安全可以理解为内存安全,堆是内存共享,可以被所有的内存访问。 当多个线程访问同一个对象时,如果不进行额外的同步控制或者其他的协调操作,调用这个对象的行为都可以获得正确的结果,我们就说这个对象时线程安全的。 堆是进程和线程共有的空间,分全局堆和局部堆,全局堆就是所有没有分配的 阅读全文

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) 编辑

摘要: 什么是字节码?采用字节码的好处是什么? java中的编辑器和解释器: java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟机的机器。这台虚拟的机器在 任何平台上都提供给编译程序一个的共同的接口。 编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来讲虚拟机代码转换为 阅读全文

posted @ 2021-04-10 09:56 南国木棉 阅读(1031) 评论(0) 推荐(0) 编辑