一、区分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)即使事前不知道某个方法,我们也可以通过名字调用该方法

java基础-001的更多相关文章

  1. [java基础] 001 - 记一次堆栈溢出异常(StackOverFlowError)

    上午经理发来一个任务,解决某个接口异常,此接口第一次调用成功返回: {ret=Y, orderResultList=[{itemno=31920190521083622032, sub_msg=成功, ...

  2. 001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学

    001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学 welcome to Java World 欢迎来到Java世界 一起领略Java编程世界的奥秘与奥妙 ...

  3. 【java基础学习001】概述

    001.1    一个简单的Java程序 public class hello { public static void main(String[] args) { System.out.printl ...

  4. 微冷的雨Java基础学习手记(一)

    使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要 ...

  5. java 复习001

    java 复习001 比较随意的记录下我的java复习笔记 ArrayList 内存扩展方法 分配一片更大的内存空间,复制原有的数据到新的内存中,让引用指向新的内存地址 ArrayList在内存不够时 ...

  6. java基础01

    1. /** * JDK: (Java Development ToolKit) java开发工具包.JDK是整个java的核心! * 包括了java运行环境 JRE(Java Runtime Env ...

  7. JAVA基础-集合(二)

    一.Map整体结构体系 Map是集合的另一大派系,与Collection派系不同的是Map集合是以键值对儿的形式存储在集合的.两个键为映射关系,其中第一个键为主键(主键是唯一的不可重复),第二个键为v ...

  8. java基础-BigDecimal类常用方法介绍

    java基础-BigDecimal类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigDecimal类概述 我们知道浮点数的计算结果是未知的.原因是计算机二进制 ...

  9. Java 基础总结大全

    Java 基础总结大全 一.基础知识 1.JVM.JRE和JDK的区别 JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨平台,jv ...

随机推荐

  1. PHP 获取服务器详细信息【转】

    碰到此问题,做下记录 获取系统类型及版本号:    php_uname()                                   (例:Windows NT COMPUTER 5.1 b ...

  2. Weka 3: Data Mining Software in Java

    官方网站: Weka 3: Data Mining Software in Java 相关使用方法博客 WEKA使用教程(经典教程转载) (实例数据:bank-data.csv) Weka初步一.二. ...

  3. ScrollVIew 边界阴影效果

    一.删除android ScrollView边界阴影方法方法 1) 在xml中添加:android:fadingEdge=”none” 2) 代码中添加:ScrollView.setHorizonta ...

  4. SAP MM常用表

    EBAN 采购申请 MM模块EBAN_采购申请 EBKN 采购申请帐户设置 MM模块EBKN_采购申请帐户设置 EBUB 有关物料的运输请求的索引 MM模块EBUB_有关物料的运输请求的索引 EINA ...

  5. VS2012更改项目编译后文件输出目录

    1.现在我的解决方案里有存在两个项目,分别是类库项目ClassLibrary1和控制台项目ConsoleApplication1,默认情况下当解决方案重新生成后,这两个项目所对应的编译后文件分别会存在 ...

  6. Node.js 开发模式(设计模式)

    Asynchronous code & Synchronous code As we have seen in an earlier post (here), how node does th ...

  7. Qt之Timers

    简述 QObject是所有Qt objects的基类,在Qt中提供了基础定时器的支持.使用QObject::startTimer(),你可以传递一个毫秒数间隔作为参数启动一个定时器.该函数返回一个唯一 ...

  8. arcgis API for javascript 学习笔记

    ArcGis Server地图是缓存的,意味着它有服务器管理员简历提示性能的一组预先渲染的切片.由于这个原因地图通过ArcGISTiledMapServiceLayer表示 如果地图服务没有一个可用的 ...

  9. Linux下如何查看自己的服务器有没有无线网卡

    还是实验室那台破服务器,连不上网.有没有界面,所以想着如何用一些命令来链接上热点. 当然,在linux下链接wifi没有win下那么一点就好了! 首先我们需要的基本条件就是: 服务器上有无线网卡.[r ...

  10. java.lang.IllegalArgumentException: addChild: Child name '/SSHE' is not unique

    错误信息: Caused by: java.lang.IllegalArgumentException: addChild:  Child name '/SSHE' is not unique     ...