上一页 1 2 3 4 5 6 ··· 14 下一页
摘要: CAS无锁机制 CAS:Compare and Swap,即比较再交换。 Java内存模型:JMM(Java Memory Model) 在内存模型当中定义了一个主内存,所有声明的实例变量都存在于主内存当中,主内存的数据会共享给所有线程,每一个线程有一块工作内存,工作内存当中主内存数据的副本 当更新 阅读全文
posted @ 2020-03-26 18:52 wishsaber 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 锁是干什么用的 锁一般来说用作资源控制,限制资源访问,防止在并发环境下造成数据错误 java中有哪些锁 按照锁的性质分类 公平锁 / 非公平锁 乐观锁 / 悲观锁: 独享锁 / 共享锁 (互斥锁 / 读写锁) 可重入锁(递归锁) 按照锁设计方案分类 自旋锁 / 自适应自旋锁 锁粗化 / 锁消除 偏向 阅读全文
posted @ 2020-03-25 19:02 wishsaber 阅读(330) 评论(0) 推荐(0) 编辑
摘要: Callable的Future模式 线程实现方式 1.继承Thread类 2.实现Runnable接口 3.线程池 4.Callable 无论使用继承Thread类还是实现Runnable接口,还是使用线程池都没有办法解决2个问题 1.线程执行没有返回值结果 2.线程执行没有办法抛出异常,只能自己通 阅读全文
posted @ 2020-03-23 20:44 wishsaber 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 1.并发工具类 1.CountDownLatch:可以实现线程计数,阻塞后续线程 CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。 CountDownLatch的方法 countDown()实现计数器-1 await()等待拦截方法,等待计数器 阅读全文
posted @ 2020-03-19 20:34 wishsaber 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 串行和并行: 串行:一个线程在处理操作 并行:多个线程在处理同一个操作 什么叫做并发编程: 在多线程环境下,应用程序的执行 并发编程的目的:充分运用到资源,提高程序的效率 什么情况下用到并发编程: 1.在线程阻塞时,导致应用程序停止 2.处理任务时间过长时,可以创建子任务,来进行分段处理 3.间断任 阅读全文
posted @ 2020-03-18 20:27 wishsaber 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 一.了解Map集合吗?Map集合都有哪些实现 HashMap 、HashTable、 LinkedHashMap 、TreeMap、 ConcurrentHashMap HashMap底层数据结构是哈希表,所以其特点是元素无序且唯一(自定义对象需要重写hashCode和equals方法保证他的唯一性 阅读全文
posted @ 2020-03-16 16:12 wishsaber 阅读(233) 评论(0) 推荐(0) 编辑
摘要: Vector和ArrayList以及LinkedList区别和联系,以及分别的应用场景 线程安全: Vector:如果创建Vector时没有指定容量,则默认容量为10,底层基于数组实现,线程是安全的,底层采用synchronized同步方法进行加锁 添加方法 查询方法 ArrayList:底层基于数 阅读全文
posted @ 2020-03-15 14:45 wishsaber 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 什么是JVM类加载器? 类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。 一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。 类加载器负责 阅读全文
posted @ 2020-03-12 19:42 wishsaber 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 通过javap命令查看class文件的字节码内容 写一个java程序 public class JvmTest { public static void main( String[] args ) { int a = 2; int b = 5; int c = b-a; System.out.pri 阅读全文
posted @ 2020-03-11 16:00 wishsaber 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 优化,不仅仅是在运行环境进行优化,还需要在代码本身做优化,如果代码本身存在性能问题,那么在其他方面再怎么优化也不可能达到效果最优的。 1、尽可能使用局部变量 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。 另外,栈中创建 阅读全文
posted @ 2020-03-11 15:58 wishsaber 阅读(131) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 14 下一页