![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
wuli~Java
我是一只小青蛙呱呱呱呱呱
这个作者很懒,什么都没留下…
展开
-
JVM
JVM原创 2020-09-28 12:13:53 · 162 阅读 · 0 评论 -
锁
synchronized*只要要访问多个线程共享的字段的方法都需要加锁保护临界区:只允许单个线程执行的程序范围。当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码,也就是保证synchronized内的代码块同步执行,而不会并行执行。同步普通方法,锁的是当前对象。同步静态方法,锁的是当前 Class 对象。同步块,锁的是 {} 中的对象。调用该对象的实例,this锁锁分为对象锁和类锁lockLock需要手动加锁,释放锁也需要手动释放,释放锁最好(原创 2020-09-18 09:00:07 · 161 阅读 · 0 评论 -
线程/多线程
1、Thread.sleep(long millis),一定是当前线程调用此方法,当前线程进入阻塞,但不释放对象锁,millis后线程自动苏醒进入可运行状态。作用:给其它线程执行机会的最佳方式。2、Thread.yield(),一定是当前线程调用此方法,当前线程放弃获取的cpu时间片,由运行状态变会可运行状态,让OS再次选择线程。作用:让相同优先级的线程轮流执行,但并不保证一定会轮流执行。实际中无法保证yield()达到让步目的,因为让步的线程还有可能被线程调度程序再次选中。Thread.yield().原创 2020-08-10 10:47:56 · 186 阅读 · 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 · 216 阅读 · 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 · 198 阅读 · 0 评论