java基础
文章平均质量分 79
CodeMan22
不接受平庸
展开
-
线程捕捉异常
在Java中,线程中的异常是不能抛出到调用该线程的外部方法中捕获的。 因为线程是独立执行的代码片断,线程的问题应该由线程自己来解决,而不要委托到外部。”基于这样的设计理念,在Java中,线程方法的异常都应该在线程代码边界之内(run方法内)进行try catch并处理掉,换句话说,我们不能捕获从线程中逃逸的异常。 public static void main(String[] args){ try { new Thread( () -> {原创 2021-02-06 22:30:19 · 1177 阅读 · 6 评论 -
什么?ArrayList我用增强for循环删除居然没报错?
笔者在阅读阿里巴巴Java开发手册时看到这样一段话: 不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用Iterator 方式,如果并发操作,需要对 Iterator 对象加锁 正例: List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); Iterator<String> iterator = list.iterator(); while (it原创 2020-06-24 17:29:45 · 2139 阅读 · 7 评论 -
深入了解JVM&&阅读笔记第二章
运行时数据区域 程序计数器 程序计数器是一个较小的空间,可看做是当前线程所执行的字节码的行号指示器,是程序控制流的指示器,通过改变这个计数器的值来选取下一条需要执行的字节码指令,从而实现分支、循环、跳转、异常处理、线程恢复等工,因此线程都是独立的,不同线程互不影响,独立存储。 程序计数器只记录线程执行的JAVA方法,为正在执行的虚拟机字节码指令的地址 是唯一一个不会出现任何OutOfMemoryError的区域 JAVA虚拟机栈 Java虚拟机栈为线程私有,生命周期同线程相同,描述的是Java方法执行的线原创 2020-05-29 17:20:17 · 485 阅读 · 0 评论 -
别再说你不懂Java的i =i++了!
首先,我们先来看一段程序 int a = 0; int b = 0; a = a++; b =a++; System.out.println(a); System.out.println(b); 请大家先想想答案 答案是0 1 首先,我们先来了解一下i++和++i的区别: 1. i = i++是先返回值,...原创 2020-04-10 11:30:05 · 320 阅读 · 2 评论