synchronized是关键字,ReentrantLock是类,这是二者的本质区别。ReentrantLock是类,所以synchronized更多更灵活的特性,可以被继承、可以有方法、可以有各种各样的类变量ReentrantLock比synchronized的扩展性体现在几点上:ReentrantLock可...
Iterator比较好用,而且只能单向移动:(1)使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。比如list.iterator()(2)用next()得到序列中的下一个元素。(3)使用hasNext()检查是否还有其它元素。...
Vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。Statck:堆栈类,先进后出,项目中用得并不多。Hashtable:就比hashmap多了个线程安全,所以建议使用HashMap。enum...
List对象转换成为数组:可以调用ArrayList(或其它List)的toArray方法。数组转换成为List:调用Arrays的asList方法。
Collection是一个集合接口,是所有线性表对象的父类。Collections是集合类的一个工具类,包含了对集合元素进行排序和线程安全等各种操作方法。
String不是基础类型,基础类型有8种:byte、boolean、char、short、int、float、long、double,而String是对象。但说到这里,你要多说句。Strings="abc";,这是常量,放常量池管理。不建议频繁对String修改,因为会产生内存碎片。
修饰在类上,该类不能被继承。修饰在方法上,该方法不能被重写。修饰在变量上,叫常量,该常量必须初始化,初始化之后值就不能被修改,而常量一般全都是用大写来命名。
Atomic包中的类基本的特性就是在多线程环境下,当有多个线程同时对单个(包括基本类型及引用类型)变量进行操作时,具有排他性,即当多个线程同时对该变量的值进行更新时,仅有一个线程能成功,而未成功的线程可以向自旋锁一样,继续尝试,一直等到执行成功。Atomic系列的类中的核心方法都会调用unsafe类中的几个本地...
synchronized是java内置关键字,在jvm层面,Lock是个java类synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁synchronized会自动释放锁(a线程执行完同步代码会释放锁;b线程执行过程中发生异常会释放锁),Lock需在finally中手工释放锁(unlo...
线程局部变量是局限于线程内部的变量,属于线程自身所有,不在多个线程间共享。Java提供ThreadLocal类来支持线程局部变量,是一种实现线程安全的方式。但是在管理环境下(如web服务器)使用线程局部变量的时候要特别小心,在这种情况下,工作线程的生命周期比任何应用变量的生命周期都要长。任何线程局部变量一旦在工...