-
当一个对象被当作参数传递到一个方法,此方法可改变这个对象的属性,
并可返回变化后的结果,那么这里到底是值传递还是引用传递?
是值传递。java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的属性可以在被调用过程中被改变,但是对象的引用是永远不会改变的。 -
String 和 StringBuilder. StringBuffer 的区别?
java 平台提供两种类型的字符串: String 和StringBuffer/StringBuilder,他们可以储存和操作字符串。 其中String 是只读字符,也就意味着String 引用的字符内容是不可以改变的。StringBuilder 和StringBuffer 的可以被修改的。StringBuilder 是JDK1.5 中引入的,它和StringBuffer 的方法完全相同。 区别在于 StringBuilder的效率比StringBuffer 的效率高。相对 StringBuffer 比StingBuilder 的安全性高 -
List. Set. Map 是否继承自 Collection 接口
ist、Set 是,Map 不是。Map是键值对映射容器,与List和Set有明显的区别,而Set存储的零散的元素且不允许有重复元素(数学中的集合也是如此),List是线性结构的容器,适用于按数值索引访问元素的情形。 -
List、Map、Set三个接口存取元素时,各有什么特点
List以特定索引来存取元素,可以有重复元素。Set不能存放重复元素(用
对象的equals()方法来区分元素是否重复)。Map保存键值对(key-value pair)映射,映射关系可以是一对一或多对一 -
启动一个线程是调用Run() 还是start() 方法
启动线程调用的是start() 方法,使线程所代表的虚拟处理机处于可运行状态,这就意味它可以由JVM 调度执行,这并不意味着线程会立即执行。run() 方法是线程启动后要进行回掉
callback 的方法
6.获取一个类的对象有哪些方式?
方法1:类型.class, 例如:String.class
方法2:类型.getClass, 例如: “hello”.getClass()
方法3:Class.forName(),例如:Class.forName(“java.lang.String”)