JVM内存

运算符
- & 按位与
- | 按位或
- ~ 取反
- ^ 异或
例:^异或运算符号。
运算规则是:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1。
17:0001 0001
5: 0000 0101
结果:0001 0100 转10进制:20
多线程实现方式
Java多线程实现方式主要有四种:
1、继承Thread类
2、实现Runnable接口
3、实现Callable接口通过FutureTask包装器来创建Thread线程
4、使用ExecutorService、Callable、Future实现有返回结果的多线程。
java事件模型
不包括事件过程:面向对象的语言里没有“过程”,面向过程的语言里没有“对象”
- 事件源(Event Source):即事件发生的场所,就是指各个组件,如按钮等,点击按钮其实就是组件上发生的一个事件;
- 事件(Event):事件封装了组件上发生的事情,比如按钮单击、按钮松开等等;
- 事件监听器(Event Listener):负责监听事件源上发生的特定类型的事件,当事件到来时还必须负责处理相应的事件;
collection和map
collection和map没有关系
-
collection
collection.png
-
map
map.png
start(),run()两种方法的区别
run方法是线程内重写的一个方法,start一个线程后使得线程处于就绪状态,当jvm调用的时候,线程启动会运行run。run函数是线程里面的一个函数不是多线程的.
- start方法:启动线程,是真正实现了多线程, 通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法。但要注意的是,此时无需等待run()方法执行完毕,即可继续执行下面的代码。所以run()方法并没有实现多线程。
- run方法:只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码。
网友评论