一、&和&&的区别
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)
二、Collection 和 Collections 的区别
Collection 是集合类的上级接口,继承与他的接口主要有 Set 和 List。Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
三、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的
例子一
public class Client {
public static void main(String[] args){
int num = 1;
fun(num);
System.out.println(num);
}
private static void fun(int num){
num = num+1;
System.out.println("fun:"+num);
}
}
//输出
fun:2
1
例子二
public class Client {
public static void main(String[] args){
User user = new User();
user.setName("Alan Chen");
fun(user);
System.out.println(user.getName());
}
private static void fun(User user){
user = new User();
user.setName("AC");
System.out.println("fun:"+user.getName());
}
}
//输出
fun:AC
Alan Chen
例子三
public class Client {
public static void main(String[] args){
User user = new User();
user.setName("Alan Chen");
fun(user);
System.out.println(user.getName());
}
private static void fun(User user){
user.setName("AC");
System.out.println("fun:"+user.getName());
}
}
//输出
fun:AC
AC
引用传递本质上就是值传递,将引用变量的值传递给形参,因为引用变量的值存放的是地址值,所以当地址值传递给形参后,形参和实参指向同一块内存区域。 但改变形参的地址值,不会影响到实参的地址值。
四、ArrayList 和 Vector 的区别
1、同步性:Vector 是线程安全的,也就是说是同步的,而 ArrayList 是线程序不安全的,不是同步的。
2、数据增长:当需要增长时,Vector 默认增长为原来一培,而 ArrayList 却是原来的一半。
五、HashMap 和 Hashtable 的区别
1、历史原因:Hashtable 是基于陈旧的 Dictionary 类的,HashMap 是 Java 1.2 引进的 Map接口的一个实现。
2、同步性:Hashtable 是线程安全的,也就是说是同步的,而 HashMap 是线程序不安全的,不是同步的。
3、值:只有 HashMap 可以让你将空值作为一个表的条目的 key 或 value。
六、char 型变量中能不能存贮一个中文汉字?为什么?
是能够定义成为一个中文的,因为 java 中以 unicode 编码,一个 char 占 16 个字节,所以放一个中文是没问题的。
网友评论