• 2015-04-12一些知识点


      1、一个关于内部类的小程序

    package com.lk.C;
    
    public class Test1 {
        static class one{
            private static class two{
                public static void main(String[] args) {
                    System.out.println("two");
                }
            }
        }
    }
    输出
    two

      2、Object 类下的两个方法:getClass()作用是返回一个对象的运行时类;toString()方法返回该对象的字符串表示。

      3、Java的集合:Vector容器确切地知道它所持有的对象隶属于什么类别,Vector不进行边界检查。

           边界检查:在设计或实现某种集合的时候,经常会遇到集合边界值的情况。例如,从集合中取一个元素,必须得考虑这个集合是否非空;向一个有限集合添加元素,必须考虑集合满的情况。而对于包含异常处理的编程语言来说,如果遇到集合操作边界,我们常见的编程约定有两种:一种选择是将边界条件作为异常来处理。另一种选择是不将边界操作作为异常来处理,而是用某个特定值来表示(如null)。

      4、关于Collections:Collections是针对集合类的一个帮助类,它提供了一些列静态方法实现对各种集合的搜索、排序、线程安全化等操作。相当于对Array进行类似操作的类--Arrays。

    Collections.max(Collection coll)//取coll中最大的元素
    Collections.sort(List list)//对list中元素排序

      5、如何选择容器类:

    1)容器类和Array的区别,择取:

      容器类仅能持有对象引用(指向对象的指针),而不是将对象信息复制一份至数列某位置,一旦将对象置入容器内,便损失了该对象的类别信息。

    2)在各种Lists中,最好的做法是以ArrayList作为默认选择。当插入、删除频繁时,使用LinkedList();Vector总是比ArrayList慢;

       在各种Sets中,HashSet通常优于HashTree(插入、查找)。只有当需要产生一个经过排序的序列,才用TreeSet。TreeSet的意义是用来维护其内元素的排序状态;

       在各种Maps中,HashMap用于快速查找。当元素个数固定时,最好使用Array,因为Array的效率是最高的。

      6、一个关于构造函数的实例:子类继承父类时构造函数的执行顺序等的问题

    package com.lk.C;
    
    public class Test2 extends X{
        Y y = new Y();//步骤3:再次构造Y,输出Y
        Test2(){
            System.out.println("Z");//步骤4:最后调用Test2本身的构造函数,输出Z
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            new Test2();
        }
    
    }
    
    class X{
        Y b = new Y();//步骤1:若Test2继承X,构造Test2,则先构造X,进入X类运行Y b = new Y();输出Y
        X(){
            System.out.println("X");//步骤2:接着输出X
        }
    }
    class Y{
        Y(){
            System.out.println("Y");
        }
    }
    Y
    X
    Y
    Z

       7、在继承结构中,父类的内部细节对于子类是可见的。所以,通过继承的代码复用是一种“白盒式代码复用”。

            组合是指通过对现有的对象进行拼装(组合)产生新的更复杂的功能。因为在对象之间,各自的内部细节是不可见的,所以,我们也说这种方式的代码复用是“黑盒式代码复用”。

      8、静态的方法不能被重写,一下程序输出

    package com.lk.C;
    
    public class Test4 {
        public static void main(String[] args) {
            Father f = new Father();
            Father c = new Child();
            System.out.println(f.getName());
            System.out.println(c.getName());
        }
    }
    class Father{
        public static String getName(){
            return "Father";
        }
    }
    class Child extends Father{
        public static String getName(){
            return "Child";
        }
    }
    Father
    Father

      9、子类的构造函数如果要引用super()方法,必须把super放在函数的首位,否则会编译不通过。

  • 相关阅读:
    ubuntu12.04 安装eclipse
    loj 1429(可相交的最小路径覆盖)
    loj 1406(状态压缩)
    mysql数据库表插入单条数据/批量插入数据
    window7安装MongoDB详细步骤
    django中的setting全局变量的导入
    django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)
    DjangoDRF序列化组件使用
    python并发编程知识点总结
    协程+IO切换实现并发
  • 原文地址:https://www.cnblogs.com/luankun0214/p/4419324.html
Copyright © 2020-2023  润新知