02-线程池 1. 线程池概念现有问题: 线程是宝贵的内存资源、单个线程约占1MB的空间,过多分配易造成内存溢出; 频繁的创建及销毁会增加虚拟机回收频率、资源开销,造成程序性能下降。 线程池: 线程容器,可设定线程分配的数量上限; 将预先创建的线程对象存入池中,并重用线程池中的线程对象; 避免频繁的创建和销毁。 2. 线程池原理将任务提交给线程池,由线程池分配线程、运行任务,并在当前任务结束后复用线程。 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 05_并发和锁 #JavaSE #线程池
03-锁种类 1.1 乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低。每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出,然后加锁操作(比较跟上一次的修改版本,如果一样则更新),如果失败则要重复读-比较-写的操作。Java 中的乐观锁基本都是通过 CAS 操作实现的,CAS 是一种更新的原子操作,比较当前值跟传入值是 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 05_并发和锁 #JavaSE #锁
04-synchronized同步锁 1. synchronized同步锁(悲观锁)synchronized 它可以把任意一个非 NULL 的对象当作锁。他属于独占式的悲观锁,同时属于可重入锁。 1.1 synchronized 作用范围 作用于方法时,锁住的是**对象的实例(this)**; 作用于静态方法时,锁住的是Class实例,又因为Class的相关数据存储在永久带PermGen(jdk1.8 则是 metaspace),永久 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 05_并发和锁 #JavaSE #锁 #synchronized
05-ReentrantLock重入锁 1. Lock接口1public interface Lock {} 提供更多实用性方法,功能更强大、性能更优越。 常用方法: void lock() // 获取锁,如锁被占用,则等待 boolean trylock() // 尝试获取锁(成功true,失败false,不阻塞) void unlock() // 释放 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 05_并发和锁 #JavaSE #锁 #ReentrantLock
01-日志方案×2 基于 Maven,pom.xml 导包方便。 1. 日志用于记录系统中发生的各种事件。记录位置常见的有:控制台、磁盘文件等… 日志级别(从低到高):TRACE(堆栈), DEBUG(调试), INFO(普通), WARN(警告), ERROR(错误), FATAL(致命) 日志作用: 通过日志观察、分析项目的运行情况——项目维护; 通过日志分析用户的使用情况——大数据分析; … 2. 方案 2016-04-28 09_调试测试 > 01_日志记录 #日志 #log4j #logback #SLF4j
01-异常体系 1. 异常概念概念:程序在运行过程中出现的特殊情况必要性:任何程序都可能存在大量的位置问题、错误;如果不对这些问题进行正确处理,则可能导致程序的中断,造成不必要的损失。如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 04_异常处理 #异常 #JavaSE #Exception
02-自定义异常 1. 自定义异常1.1 定义方式① 必须继承自Exception或Exception的子类,常用RuntimeException② 必须提供无参构造方法;③ 必须提供String message的1参构造方法,super(message);备注:受查异常CheckedException和运行时异常RuntimeException的定义方式没有区别。 12345678910111213141516 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 04_异常处理 #异常 #JavaSE #Exception
02-logback-spring.xml日志配置 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210 2016-04-28 09_调试测试 > 01_日志记录 #Spring #logback
02-List集合 1. List接口特点:有序、有下标、元素可重复补充:继承了父接口提供的共性方法,同时定义了一些独有的与下标相关的操作方法方法:<参考jdk1.8 API>常用方法: 123456789101112131415161718192021222324252627282930313233343536boolean add(E e)将指定的元素追加到此列表的末尾(可选操作)。void add( 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 03_泛型集合 #JavaSE #List
03-Set集合 1. Set接口与实现类特点:1)无序、无下标、元素不可重复(当插入新元素时,如果新元素与已有元素进行equals比较,结果为true时,则拒绝新元素插入)2)set接口并没有提供自己独有的方法,均是继承Collection的方法 Set 注重独一无二的性质,该体系集合用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。对象的相等性本质是对象 hashCode 值(java 是依据对象的内 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 03_泛型集合 #JavaSE #Set