随笔分类 -  Java

摘要:停止线程有四种方式 方式一 通过volatile标识去判断退出线程 public class VolatileCanStop implements Runnable{ private static volatile boolean canceled = false; @Override public 阅读全文
posted @ 2022-01-23 22:32 邓小白 阅读(329) 评论(0) 推荐(0) 编辑
摘要:方法一 继承Thread类 public class Thread01 extends Thread{ @Override public void run() { System.out.println(Thread.currentThread().getName()+" is running..." 阅读全文
posted @ 2022-01-23 22:32 邓小白 阅读(33) 评论(0) 推荐(0) 编辑
摘要:作用 BlockingQueue为一个阻塞队列,这里的阻塞有两个含义 从队列中获取元素时,如果队列为空,获取元素的线程会等待至队列中有元素再返回。 往队列添加元素时,如果队列已满,添加元素的队列会等待至队列有位置的时候再添加新的元素 特点 BlockingQueue中的元素不能为空 为线程安全的,但 阅读全文
posted @ 2022-01-23 22:27 邓小白 阅读(231) 评论(0) 推荐(0) 编辑
摘要:ROUND_UP 舍入远离零的舍入模式。 在丢弃非零部分之前始终增加数字(始终对非零舍弃部分前面的数字加1)。 注意,此舍入模式始终不会减少计算值的大小。 例如:0.121->0.13 ROUND_DOWN 接近零的舍入模式。 在丢弃某部分之前始终不增加数字(从不对舍弃部分前面的数字加1,即截短)。 阅读全文
posted @ 2022-01-23 22:26 邓小白 阅读(862) 评论(0) 推荐(0) 编辑
摘要:ScheduledExecutorService是一个可以用来定期执行线程任务的线程池,主要功能体现在,周期性执行线程任务和延迟时间来执行线程任务。主要特性体现在下面要讲解的四个方法中 方法一,延迟执行任务,不获取返回值 在指定delay(延迟)之后,执行提交Runnable的任务,返回一个Sche 阅读全文
posted @ 2022-01-23 22:25 邓小白 阅读(598) 评论(0) 推荐(0) 编辑
摘要:runAsync和supplyAsync方法,这个两个方法为CompletableFuture的主要使用方式,其主要作用给任务提供异步线程的操作方式 如何使用 CompletableFuture 提供了四个静态方法来创建一个异步操作。 public static CompletableFuture< 阅读全文
posted @ 2022-01-23 22:24 邓小白 阅读(417) 评论(0) 推荐(0) 编辑
摘要:现象: 工作时遇到某个服务老是频繁重启,日志报错为OOM 分析: 出现OOM是因为整个堆内存不够用了,此时JVM首先尝试扩展更多的空间,其次GC尝试回收内存,前两种方法无果的情况下只能报OOM并退出 可能的情况:内存不够、内存泄漏 尝试解决问题的步骤: 加上JVM参数 -XX:+HeapDumpOn 阅读全文
posted @ 2022-01-23 22:24 邓小白 阅读(1450) 评论(0) 推荐(0) 编辑
摘要:Java跟c++语言一样,都是面向对象的语言,那么面向对象的语言都有个共同的两点 在面向对象的软件中,对象(Object)是某个类(Class)的实例。 一切皆对象 在JVM的内存结构中,对象保存在堆内存中,而我们在对对象进行操作时,其实操作的是对象的引用。 那么对象本身在JVM中的结构是什么样的呢 阅读全文
posted @ 2022-01-23 22:02 邓小白 阅读(179) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩