1.mutable(可变)和immutable(不可变)类型的区别 可变类型的对象:提供了可以改变其内部数据值的操作,其内部的值可以被重新更改. 不可变数据类型:其内部的操作不会改变内部的值,一旦试图更改其内部值,将会构造一个新的对象而非对原来的值进行更改. 2.mutable和immutable类型的优缺点   mutable immutable 优点 可变类型会减少数据的拷贝次数,从而其效率 要高于immutable 由于内部数据不可变,所以对其频发修改会产生大量的临时拷贝,浪费空间 缺点…
方法一:使用Arrays.asList()方法   1 2 String[] asset = {"equity", "stocks", "gold", "foreign exchange","fixed income", "futures", "options"}; List<String> assetList = Arrays.asList(asset)…
Java中创建(实例化)对象的五种方式1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法.如:Object obj = Class.forName("java.lang.Object").newInstance(); 4.调用对象的cl…
知识点:使用java中的反射获得object对象的属性值 一:场景 这两天开发代码时,调用别人的后台接口,返回值为Object对象(json形式的),我想获得object中指定的属性值,没有对应的get方法,也不像在js中用object.属性获得,这里可以通过反射获得了Object对象的属性值. 二:实例 如上我想获得object对象的data中的一个属性值eventId,就可以使用反射获得data的属性值,之后强转类型即可. 代码如下: Object entitySave = subEvent…
本文翻译自:http://www.programcreek.com/2013/04/why-string-is-immutable-in-java/ 这是一个很老但很流行的问题,这里有几个原因String在java中被设计成immutable的.对内存.同步.数据结构等有好的理解,能更好的回答这个问题.下面我将简单的介绍这些原因: 1, String Pool的需要. String pool(String intern pool) 是一个方法区里的特殊的存储区域.当创建一个String, 如果它…
参考:java中集合Collection转list对象 首先我的需求是获取到购物车列表,购物车列表是一个Map对象,构造方法获取购物项,这里购物项是Collection对象 // 购物项集合,K商品ID,V就是购物项 Map<Integer, CartItem> map = new LinkedHashMap<Integer, CartItem>();public Collection<CartItem> getCartItems() { return map.valu…
原文出处:Java 中关于String的空对象(null) ,空值(empty),空格 定义 空对象: String s = null; 空对象是指定义一个对象s,但是没有给该对象分配空间,即没有实例化该对象,因此,空对象在调用所有对象方法时候都会抛出异常,如s.length(), s.isEmpty()等方法. 空值: String k = ""; 空值是指一个字符床对象已经实例化,即系统已经给该变量分配了空间,只是对象的内容为空. 空格: String n = " &qu…
java中使用Semaphore构建阻塞对象池 Semaphore是java 5中引入的概念,叫做计数信号量.主要用来控制同时访问某个特定资源的访问数量或者执行某个操作的数量. Semaphore中定义了一组虚拟的permits,通过获取和释放这些permits,Semaphore可以控制资源的个数. Semaphore的这个特性可以用来构造资源池,比如数据库连接池等. Semaphore有两个构造函数: public Semaphore(int permits) { sync = new No…
对象的强.软.弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使用它.从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期.这4种级别由高到低依次为:强引用.软引用.弱引用和虚引用. ⑴强引用(StrongReference)强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会回收它.当内存空间不足,Java虚拟机宁愿抛出Out…
1.概念 采用新的异常处理机制 在以往的程序开发过程中,经常采用返回值进行处理.例如,在编写一个方法,可以返回一个状态代码,调用者根据状态代码判定出错与否.若状态代码表示一个错误,则调用这进行相应的处理,或显示一个错误页面或错误信息.通过返回值进行处理的方法是有效的,但是有它的许多不足之处. 1. 程序复杂 2. 可靠性差 3. 返回信息有限 4. 返回代码标准化困难 采用错误代码和异常处理相结合的方式的优越性: 1. 把错误代码与常规代码分开 2. 可以在catch中传播错误信息 3. 可以对…