![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
LLLLLin0
自我向博客,记录自己对编程能力培养的一些点滴。
展开
-
秋招准备-Java-并发编程-多线程基础(一)
1.线程的五个状态2.线程图3.多线程的实现方式4.Thread常用方法1.线程的五个状态 1.新建:用new实例化一个线程对象。 2.可运行:线程对象创建后,调用start()方法,通知jvm后,等待被线程调度选中。 3.运行:可运行状态的线程被选中后,获得cpu的时间轮片,开始执行run()方法,处于运行状态。 4.阻塞:阻塞状态指线程因某种原因放弃cpu的使用权,暂停...原创 2018-04-12 03:25:14 · 202 阅读 · 0 评论 -
秋招准备-Java-并发编程-阻塞队列(五)
1.Queue框架2.生产者消费者模式与阻塞队列3.阻塞队列实现类1.Queue框架 Java的集合类提供了Queue队列的实现,可以分为四个接口来对应相应的队列功能: Queue:普通队列,头出尾进,一般用于满足FIFO先进先出功能。 Deque:双端队列,双端进出,如果需要实现LIFO后进先出的堆栈功能,优先考虑Deque的实现类,而非Stack接口。 Blocking...原创 2018-04-18 18:57:39 · 175 阅读 · 0 评论 -
秋招准备-Java-并发编程-volatile和线程安全类(八)
1.volatile2.线程安全类3.CAS1.volatile 先简单了解一下Java内存模型 1.Java内存模型 和JVM的运行时数据分区相区别,Java的内存模型是用来描述线程工作的(定义程序中各个变量的访问规则)。可以说是一个抽象概念。 其规定,所有变量(数据)存储在主内存中。(这里的变量指非线程私有的实例字段、静态字段、数组元素~) 每个线程有自己的工作内...原创 2018-04-20 14:49:02 · 192 阅读 · 0 评论 -
秋招准备-Java-并发编程-同步工具(七)
1.同步工具1.同步工具(java.util.concurrent包) 1.Semaphore Semaphore是计数信号量。 从概念上讲,Semaphore维护了一个许可集。比方说,定义一个有三个许可的Semaphore,那么在这个许可集下,使用acquire()方法前,会检查许可集,如果许可1,2,3都用了,那么就会阻塞acquire(),直到有一个许可可用,然后获得该许可...原创 2018-04-19 05:05:56 · 222 阅读 · 0 评论 -
秋招准备-Java-并发编程-ThreadLocal(六)
1.结构分析2.源码分析3.使用和实验1.ThreadLocal结构分析 1.ThreadLocal<T> ThreadLocal提供了局部变量,主要是通过这个类,将一些线程需要的,本来可能是各个线程共享的变量(Connection),或者是约定好的初始变量(Integer i=0),变成线程自己的私有变量。 即本来许多线程共享一个数据库连接Connection对象,...原创 2018-04-19 00:44:55 · 411 阅读 · 0 评论 -
秋招准备-Java-JVM-内存区域+GC
Tips:1.Java内存区域,5个区域的存储内容,常量池与直接内存。内存区域与内存模型区别JVM栈中存储的局部变量表(基本类型与引用类型)与栈帧JVM栈中抛出异常的情况JVM堆的分区JVM堆的要点(要结合后面的来讲)方法区和常量池-联系字节码与类加载2.对象的分配、布局、访问创建对象的具体流程对象的大小计算引用如何对应到对象实例。3.GC算法3种垃圾收集算法什么对象需要被GC4.常用GC收集器,...原创 2018-04-07 03:19:03 · 260 阅读 · 0 评论 -
秋招准备-Java-设计模式(总)
1.单例模式 一个类仅有一个实例,并提供它的全局访问点。 1.饿汉单例 线程安全,非Lazy Loading(延迟加载),类加载时就初始化。较为常用。class Singleton{ private static Singleton instance = new Singleton();//初始化可以放到static{}代码块中 private Single...原创 2018-04-04 04:17:24 · 435 阅读 · 0 评论 -
秋招准备-Java-OJ常用方法与类
1.java.util.Scanner构造器: public Scanner(InputStream is) 可选参数System.in,也可用用BufferedInputStream装饰一下,在数据较多的时候稍有优化。方法: boolean hasNext() 用在多组数据时,while的判断处 String next() / int...原创 2018-04-03 01:30:02 · 519 阅读 · 1 评论 -
秋招准备-Java-并发编程-Executor框架(四)
1.带返回值的线程2.Executor3.线程池作用1.带返回值的线程 1.Callable接口//java.util.concurrent.Callablepublic interface Callable<V>{ V call() throws Exception;} 和Runnable接口相同,然后可以使用return语句,可以抛出异常这点的话,就是在...原创 2018-04-13 04:05:43 · 185 阅读 · 0 评论 -
秋招准备-Java-并发编程-显式锁Lock(三)
1.Lock接口与其方法,ReentrantLock为实现类2.Condition接口与其方法,组合ReentrantLock实现条件队列3.ReentrantReadWriterLock读写锁1.Lock接口,ReentrantLock实现类//java.util.concurrent.locks.Lock接口public interface Lock { /** * Lock实现提供...原创 2018-04-12 21:09:01 · 330 阅读 · 0 评论 -
秋招准备-Java-并发编程-同步机制与synchronized(二)
1.线程安全的一些概念2.同步简述3.synchronized的使用与说明1.线程安全的一些概念 1.正确性 即某个类的行为与其规范完全一致,意思就是功能不能出错,使用多线程编程在带来性能提高的同时,也会由于多线程之间相互影响而导致的功能出错的情况,因此,线程安全,实际上就是确保,大到程序,小到类的方法的正确性,保证每个功能都按其设计的语义来实现,则可以说线程安全。 ...原创 2018-04-12 05:43:27 · 222 阅读 · 0 评论