摘要:
字节流,字符流: >非文本文件都用字节流8bit传输, 其余(文本文件)使用字符流16bit. 输入流,输出流: >数据输入程序输入流,程序输出数据输出流 四个主要抽象实现类: 抽象基类 节点流(文件流) 缓冲流 Inputstream: FileInputstream: BufferInputst 阅读全文
摘要:
ArrayList():List主要实现类,效率高,线程不安全 特别注意:ArrayList在实际开发中建议,使用带参数的构造器,指明底层数组的长度,避免不必要的扩容 ArrayList和vector底层都是使用数组实现 源码分析: jdk7: List list =new ArrayList(); 阅读全文
摘要:
Map:采用key_value存储数据, Map接口:存储的是一对一对的数据,采用key-value存放 | >HashMap:主要实现类,线程不安全,效率高;允许添加null的key或null的value | >LinkedHashMap:HashMap的子类,可以实现按照添加1的顺序实现遍历 对 阅读全文
摘要:
首先了解集合框架构成: 首先了解到List与Set是单例集合Collection接口的两个重要子接口 1.LIst:有序,可重复的接口 >ArrayList:主要实现类,底层使用Object[] 存储,效率高,但线程不安全 Collections工具类中提供了将ArrayList转换为线程安全的方法 阅读全文
摘要:
数组的优点: 数组一旦初始化,长度就是确定的 数组存储数据类型单一 通过数组索引的方式调用数组元素 数组中存储的多个元素是有序的,可以重复的,使用的内存空间是连续的 数组的弊端: 一旦初始化,长度就不可变 数组中操作面较简单,没有涉及到增,删,改,查,等操作的方法 针对与开发中的复杂问题,使用数组难 阅读全文
摘要:
自然排序:实现Comparable接口,自定义重写compareTo方法 //编写商品类,实现Comparable接口 package compare; import static org.hamcrest.CoreMatchers.instanceOf; public class Goods im 阅读全文
摘要:
三者的异同 String:不可变,底层使用char[存储] StringBuffer:可变,jdk1.0就有线程安全,效率低 StringBuilder:可变,jdk5.0,线程不安全,效率高 比较三者的效率: String<StringBuffer<StringBulider package st 阅读全文
摘要:
String与包装类的转换 //基本数据类型,包装类 >String 使用方式:被转化数据+""变成字符串类型,使用被转化的数据类型对应的valueOf() //String >基本数据类型,包装类方法 使用方式:要转换为的包装类对应的parseInt()方法 @Test public void t 阅读全文
摘要:
wait():将线程进入阻塞状态,需要等待唤醒,此时释放cpu资源 notify():程序一旦执行到此方法,就会唤醒一个被wait的线程 notifyAll():程序一旦执行到此方法,就会唤醒被wait的线程 注意:这三个方法只能用在同步方法或同步代码块中 这三个方法的调用者必须是同步监视器,否则会 阅读全文
摘要:
死锁:不同线程,分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了死锁 同步锁:使用Lock 比较Lock与synchronized: 相同点:都解决了线程安全问题 不同点:synchronized需要制定同步监视器,且保证同步监视器的唯一性,且不管是同步代码块还是同步方 阅读全文