一、区分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. Graph-tool简介 - wiki

    graph-tool is a Python module for manipulation and statistical analysis of graphs[disambiguation nee ...

  2. 关于eclipse中maven项目的问题

    问题1: 严重: Error configuring application listener of class org.springframework.web.context.ContextLoad ...

  3. cocos2dx与Lua以及quick cocos

    1.cocos2dx中的脚本架构与组件 2.quick cocos的开发优势 3.自定义c++类如何导出到lua

  4. 鼠标经过容器放大--css3

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. selenium+python笔记6

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: 将登陆动作封装成function "" ...

  6. 218. The Skyline Problem *HARD* -- 矩形重叠

    A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...

  7. 多条查询sql语句返回多表数据集

    + + "';SELECT ProductID,ProductTitle,ProductName,SalePrice,ListingPrice,MainPicture,SaledItemCo ...

  8. MATLAB画图

    画图代码 clear % http://www.peteryu.ca/tutorials/matlab/visualize_decision_boundaries % load RankData % ...

  9. Objective-C:Foundation框架-常用类-NSValue

    NSNumber是NSValue的子类,前者只能包装数字,后者可以包装任意值.NSArray.NSDictionary只能存储OC对象,不能存储结构体.因此,如果想要在NSArray.NSDictio ...

  10. ios基础篇(四)——UILabel的常用属性及方法

    UILabel的常用属性及方法:1.text //设置和读取文本内容,默认为nil label.text = @”文本信息”; //设置内容 NSLog(@”%@”, label.text); //读 ...