Java知识点拾遗1

来源:互联网 发布:memcached java 编辑:程序博客网 时间:2024/05/17 04:58

基本成员默认值

若一个类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。但局部变量(非成员变量)则是默认随机取值。

基本类型 默认值 boolean false char ‘\uoooo’(null) byte (byte) 0 short (short) 0 int 0 long 0L float 0.0f double 0.0d

Static关键字

使用场景:

  1. 只想为某特定域分配单一的存储空间,而不去考虑创建多少个对象

    • Static 字段:不论创建多少个对象,这些对象都共有一个Static字段都共用一份存储空间

    • Static字段可以通过类名引用,也可通过对象名引用

  2. 希望某个方法不与包含它的类的任何对象关联在一起。

    • static方法:再不创建任何对象的情况下就可以调用它,通过类名引用。(也能用对象名调用)该方法访问的方法和域也必须是static的。

注释和嵌入式文档

我们在编写代码的时候同时需要编写代码文档,来记录所写代码的用途等,当后续对代码重构或修改时会方便很多。Java使用Javadoc专门来提取注释,管理注释文档。它能自动查找程序中的特殊注释标签,同时将其毗邻的类名或方法名抽取出来。它的输出是一个HTML文件。通过编写维护单一的源文件,我们就能自动生成较高质量的程序文档。

注释文档

共有三种类型的注释文档,分别对应于注释位置后的三种元素:类、域、方法。即类注释正好位于类定义之前,域注释正好位于域定义之前,而方法注释也正好位于方法定义之前。如下所示

//: test/Documentation.java/** A class comment */public class Documentation{    /** A field comment */    public int hello;    /** A method comment */    public void world(){}} 

Javadoc只能为public和protected成员进行文档注释,其他访问域的方法注释会被忽略。通过IDE的提供的javadoc工具对上述代码自动生成HTML文档,如下图

这里写图片描述

独立文档标签

独立文档标签是一些以@字符开头的命令,且必须出现在注释行最前面。这里的注释格式必须是以/ * * 开始,以 * /结束,其他形式无效。下面给出常用标签示例

文档标签 作用 @author author-information 作者有关信息,姓名,电子邮件等 @see classname @see classname#method-name 引用其他类的文档,生成参见条目(See Also) @version version-information 适合包含在版本说明中的重要信息 @Param param-name decription 方法适用,说明对应名字的参数的用途等信息 @return description 用来说明返回值的含义 @Deprecated 该标签指出旧版特性已经由改版的新特性取代

具体应用示例如下:

/** * Display how javadoc generate code doc * @author King * @version 1.0.0 * @see test.Documentation */public class Documentation2 {    /**     * @param i input of function     * @return return value of function     */    public int helloworld(float i){        return 0;    }}

使用javadoc工具生成文档页如下:
这里写图片描述

这里写图片描述

测试对象等价性

一般使用==和!=来判定基本数据类型的等价关系 ,当判定两个对象的等价性的时候,==关系操作符比较的是两个对象的引用,如下所示:

Integer n1 = new Integer(22);Integer n2 = new Integer(22);System.out.println(n1 == n2);

这里的输出结果是false,虽然两个Integer的内容是一样的,但是它们是两个完全不同的对象,当比较其引用时,自然不同。当需要比较两个对象的实际内容是否相同时,需要使用所有对象都适用的方法equals():

Integer n1 = new Integer(22);Integer n2 = new Integer(22);System.out.println(n1.equals(n2));

这里的输出结果是true。大部分java类库都实现了equals()方法。当我们自己创建对象时,需要手动覆盖equals()方法,否则它默认比较的是两个对象的引用。

final关键字

通常final关键字的意思是“不可改变的”,又分为三种情况:数据、方法、类

final数据

使用场景:

  • 一个永不改变的编译时常量
  • 一个在运行时被初始化的值,不希望被改变

通常对基本数据类型使用。对某方法传入final参数则指定该参数为只读,不可被修改

final方法

使用场景:

  • 将方法锁定,以防任何继承类修改它的含义
  • 确保在继承中使方法行为保持不变,而且不会被覆盖

类中所有的private 方法都是默认为final类型的。

final类

使用场景

  • 出于安全考虑,不允许任何人继承该类
  • 该类的设计永不需要任何变动

final类中所有方法默认为final类型,而域则可以根据个人意愿选择。

0 0
原创粉丝点击