一、区分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. java里的基本数据类型

    java里一共有八大数据类型 boolean(未定) char(2字节) byte(1字节) short(2字节) int(4字节) long(8字节) float(4字节) double(8字节), ...

  2. STM8s在利用库配置端口的小问题

    在应用的时候PA2口需要设置成推挽输出,控制一个外部电源开关,端口初始化程序如下: GPIO_DeInit(GPIOA); GPIO_Init(GPIOA,GPIO_PIN_2,GPIO_MODE_O ...

  3. js的预编译机制

    1.var定义的是“当前作用域下的一个变量”,当在函数内部不使用var声明时,会被当做全局变量而不是函数内的局部变量(严格模式下还会报错) 2.js的预编辑:[对定义式函数]直接创建为作用域上的函数变 ...

  4. The Economist

      The turning point in the process of growing up is when you discover the core of strength within yo ...

  5. JavaScript 运行机制详解:再谈Event Loop

    原文地址:http://www.ruanyifeng.com/blog/2014/10/event-loop.html 一年前,我写了一篇<什么是 Event Loop?>,谈了我对Eve ...

  6. WLAN频段介绍-04

    ISM频段 ISM频段,此频段主要是开放给工业.科学.医学三个主要机构使用,该频段是依据美国联邦通讯委员会(FCC)所定义出来,并没有所谓使用授权的限制. 工业频段:美国频段为902-928MHz,欧 ...

  7. [Hadoop 周边] Hadoop资料收集【转】

    原文网址: http://www.iteblog.com/archives/851 最直接的学习参考网站当然是官网啦: http://hadoop.apache.org/ Hadoop http:// ...

  8. MATLAB 矩阵转化为灰度图

    A=[ 1.00 0.96 0.98 0.88 0.94 0.61 0.96 0.80 0.98 0.89 0.96 1.00 0.94 0.90 0.95 0.71 0.96 0.83 0.90 0 ...

  9. git在公司内部的使用实践(转)

    从2011.10月左右,开始在后台组推行git版本控制,到现在也差不多半年了,也形成了一套基于git flow的副官模式工作流程: 版本定义: 版本号使用x.x.x进行定义,第一个x代表大版本只有在项 ...

  10. cmd扩展路径

    在命令行窗口中,输入for /? 即可得到如下参数解释==== 对一组文件中的每一个文件执行某个特定命令. FOR %variable IN (set) DO command [command-par ...