0
点赞
收藏
分享

微信扫一扫

问题精选-Java

亿奇学 2021-09-25 阅读 187
问题精选

一、&和&&的区别

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(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 个字节,所以放一个中文是没问题的。

举报

相关推荐

0 条评论