• java基础-001


    一、区分final 、 finally 、 finalize 

    1.关键字final

      Java语言的关键字final可以用于变量、类或方法,但是含义会有所不同。

      -用于变量:一旦初始化,变量值就不能修改

      -用于方法:该方法不能被子类重写(overrride)

      -用于类:该类不能派生出子类

    2.关键字finally

      关键字finally和try/catch语句配对使用,即使有异常抛出,也能确保某段代码一定会执行。finally语句块会在try/catch语句块之后,在控制权交回之前执行。

    3.finalize方法

      在真正销毁对象之前,自动垃圾收集器会调用finalize()方法。因此,一个类可以重写Object类的finalize()方法,以便定义在垃圾收集时的特定行为。

      

    protected void finalize() throws Throwable{
        
      /*关闭以打开的文件,释放资源等操作*/  
    
    }
    

      

    二、区分重载与重写

    1.重载(overloading)是指两个方法的名称相同,但参数类型或个数不同。

    1 1 public double computeArea(Circle c ){...........}
    2 
    3 2 public double computeArea(Square s){..........} 

    2.重写(overriding)是指某个方法与父类的方法拥有相同的名称和函数签名

    三、常用集合框架

    1.ArrayList:ArrayList是一种可动态调整大小的数组,随着元素的插入,数组会适时扩容。

    1 ArrayList<String> myArray = new ArrayList<String>();
    2 myArray.add("one");
    3 myArray.add("two");
    4 System.out.println(myArray.get(0)); //打印“one”

    2.Vector:vector与ArrayList非常相似,只不过前者(Vector)是同步的(synchronized)。两者语法也相差无几。

    1 Vector<String> myVector = new Vector<String>();
    2 myVector.add("one");
    3 myVector.add("two");
    4 System.out.println(myVector.get(0));

    3.LinkedList:Java内建的LinkedList类,使用时会引出一些迭代器的语法

    1 LinkedList<String>  myLinkedList = new LinkedList<String>();
    2 myLinkedList.add("two");
    3 myLinkedList.add("one");
    4 Iterator<String> iter = myLinkedList.iterator();
    5 while(iter.hasNext()){
    6       System.out.println( iter.next());      
    7 }

    4.HashMap:HashMap集合广泛用于各种场合。

    1 HashMap<String,String> map = new HashMap<String,String>();
    2 map.put("one","one");
    3 map.put("two","two");
    4 System.out.println(map.get("one"));

     四、从继承的角度看,将构造函数声明为私有的作用

      将构造函数声明为私有(private),可确保类以外的地方都不能直接实例化这个类。在这种情况下,要创建这个类的实例,唯一的办法是提供一个公共静态方法,就像工厂方法模式(Factory Method Pattern)那样。

      此外,由于构造函数是私有的,因此这个类也不能被继承。还有就是单例模式(singleton)也要用到私有化的构造函数。

    五、Java中的对象反射以及作用

      对象反射(Object Reflection)是Java的一项特性,提供了获取Java类和对象的反射信息的方法,他可以执行以下操作:

      (1)运行时取得类的方法和字段的相关信息

      (2)创建某个类的新实例

      (3)通过取得字段引用直接获取和设置对象字段,不管访问修饰符为何

      作用体现在以下三方面:

      (1)有助于观察或操纵应用程序的运行时行为

      (2)有助于调试或测试程序,因为我们可以直接访问方法、构造函数和成员字段

      (3)即使事前不知道某个方法,我们也可以通过名字调用该方法

  • 相关阅读:
    微信小程序Http高级封装 es6 promise
    Java 常用的几个lambda表达式
    关于jedis2.4以上版本的连接池配置,及工具类
    Elasticsearch5.0 安装问题
    Newtonsoft.Json 序列化器的重写
    MongoDB查询用法大全
    RabbitMQ基础概念详细介绍
    基于AOP的iOS用户操作引导框架设计
    Apache ActiveMQ实战(1)-基本安装配置与消息类型
    iOS图形手势识别框架SGGestureRecognizer
  • 原文地址:https://www.cnblogs.com/lrh-xl/p/5243968.html
Copyright © 2020-2023  润新知