美文网首页
问题精选-Java

问题精选-Java

作者: AC编程 | 来源:发表于2021-03-11 09:08 被阅读0次

    一、&和&&的区别

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

    相关文章

      网友评论

          本文标题:问题精选-Java

          本文链接:https://www.haomeiwen.com/subject/aoofqltx.html