Java随记3
2023-09-27 14:25:52 时间
1.初始化
初始化块在构造器执行之前执行,类初始化阶段先执行最顶层父类的静态初始化块,依次向下执行,最后执行当前类的静态初始化块;创建对象时,先调用顶层父类的构造方法,依次向下执行,最后调用本类的构造方法。
执行顺序:
父类静态代码块-》子类静态代码块-》父类构造代码块-》父类构造函数-》子类构造代码块-》子类构造函数
初始化过程:
初始化父类中的静态成员变量和静态代码块 ;
初始化子类中的静态成员变量和静态代码块 ;
初始化父类的普通成员变量和代码块,再执行父类的构造方法;
初始化子类的普通成员变量和代码块,再执行子类的构造方法;
2.类方法中可以直接调用对象变量?
不能,静态方法中不能调用对象的变量,因为静态方法在类加载时就初始化,对象变量需要在新建对象后才能使用
3.当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用?
CyclicBarrier
CountDownLatch 是等待一组线程执行完,才执行后面的代码。此时这组线程已经执行完。
CyclicBarrier 是等待一组线程至某个状态后再同时全部继续执行线程。此时这组线程还未执行完。
4.list是一个ArrayList的对象,可以在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?
Iterator 支持从源集合中安全地删除对象,只需在 Iterator 上调用 remove() 即可。这样做的好处是可以避免
ConcurrentModifiedException ,当打开 Iterator
迭代集合时,同时又在对集合进行修改。有些集合不允许在迭代时删除或添加元素,但是调用 Iterator 的remove()
方法是个安全的做法。
相关文章
- Java 泛型
- Java条件语句详解(Java必备知识)
- Java websocket
- 第十节:详细讲解一下Java多线程,随机文件
- Java简单计算器
- 【Java基础】浮点数精度丢失问题剖析
- 鸿蒙开发之Java工程目录结构介绍(HarmonyOS鸿蒙开发基础知识)
- 微信公众号开发:消息加密模式 java.security.InvalidKeyException: Illegal key size
- Java_JSP自定义标签的开发与应用
- java判断字符必须包含大写字母、小写字母、数字、特殊符号且10位及以上
- 华为OD机试 -两数之和绝对值最小(Java) | 机试题+算法思路+考点+代码解析 【2023】
- Java Native Interface Specification—Contents
- Java网络编程——UDP聊天程序
- How to set JAVA environment variables in Linux or CentOS
- Java笔记13:统计文件中每个字符出现的次数