
wuli~Java
我是一只小青蛙呱呱呱呱呱
这个作者很懒,什么都没留下…
展开
-
JVM
JVM原创 2020-09-28 12:13:53 · 189 阅读 · 0 评论 -
锁
synchronized* 只要要访问多个线程共享的字段的方法都需要加锁保护 临界区:只允许单个线程执行的程序范围。 当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码,也就是保证synchronized内的代码块同步执行,而不会并行执行。 同步普通方法,锁的是当前对象。 同步静态方法,锁的是当前 Class 对象。 同步块,锁的是 {} 中的对象。 调用该对象的实例,this锁 锁分为对象锁和类锁 lock Lock需要手动加锁,释放锁也需要手动释放,释放锁最好(原创 2020-09-18 09:00:07 · 192 阅读 · 0 评论 -
线程/多线程
1、Thread.sleep(long millis),一定是当前线程调用此方法,当前线程进入阻塞,但不释放对象锁,millis后线程自动苏醒进入可运行状态。作用:给其它线程执行机会的最佳方式。 2、Thread.yield(),一定是当前线程调用此方法,当前线程放弃获取的cpu时间片,由运行状态变会可运行状态,让OS再次选择线程。作用:让相同优先级的线程轮流执行,但并不保证一定会轮流执行。实际中无法保证yield()达到让步目的,因为让步的线程还有可能被线程调度程序再次选中。Thread.yield().原创 2020-08-10 10:47:56 · 218 阅读 · 0 评论 -
HashMap、HashTable和ConcurrentHashMap
*HashMap * 通过get()和put方法存储和获取对象。 HashMap,数组的长度为2次幂,0,1,4,8,16… put时,需要决定put键值对象放在哪里?答案:通过HashCode计算,??要放在的位置。 比如,put(a,value)放在数组下标为3的位置,称为哈希桶。 再次put(b,value)进来后,通过HashCode计算放在的位置,若也放在了数组下标为3的位置,则发生Hash碰撞! 此时,将b插入到a之前(头插),java8之后,使用尾插。形成一个链表 == HashMap :数原创 2020-07-31 16:26:00 · 242 阅读 · 0 评论 -
反射和注解
什么是反射? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java获取反射的三种方法: 1.通过new对象实现反射机制 2.通过路径实现反射机制 3.通过类名实现反射机制 public class Get { //获取反射机制三种方式 public static void main(String[] args) throws C原创 2020-07-03 15:33:10 · 235 阅读 · 0 评论