Java知识点拾遗1

基本成员默认值

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

基本类型默认值
booleanfalse
char‘\uoooo’(null)
byte(byte) 0
short(short) 0
int0
long0L
float0.0f
double0.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类型,而域则可以根据个人意愿选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值