【java】一些零碎的知识点

java注释文档

一些常用的javadoc标签

常用javadoc标签

@see: other-class

引用other-class 生成的html文档会有一个See Alse 作为超链接的只是条目

{@link package.class#member label}

@see, 但是用于行内. 生成的html文档会有一个label作为超链接的只是条目

{@docRoot}

产生到文档根目录的相对路径,用于文档树页面的显示超链接

{@inheritDoc}

从当前这个类的最直接的基类中继承相关文档到当前的文档注释中

@version version-information

用于生成自定义的版本信息(version-information)

@author author-information

用于生成自定义的作者信息(author-information)

@since

指定程序代码最早使用的版本

@param parameter-name description

parameter-name为方法参数列表的标识符, description表示可延续多行

@return return-value description

return-value描述返回值的含义description表示可延续多行

@throws fully-qualified-class-name description

fully-qualified-class-name给出一个在别处定义的异常类名字(不能产生歧义), description表示可延续多行

@Deprecated

建议用户不使用的旧特性

 

类相关

类的组合:

使用现有的类A的对象作为新类B的成员变量(通常限定类A的对象为private)

class A {}

public class B {

    Private A a;

}

A,B关系可确定为”has-a”(拥有)关系,B拥有A

 

类的继承

现有基类A, B继承自类A,则类A也成为类B的父类

class A {}

class B extends A {}

A和类B的关系可确定为”is-a”(是一个)关系,B是一个A

 

重写(覆盖)和重载

重写是指父类和子类之间,子类重写了父类的一个方法,且方法名,返回值,参数类型,参数个数,参数,顺序相同.

重载是一个类中,有多个方法名相同的方法,它们的返回值,参数类型,参数个数,参数,顺序至少有一个不同.

class A {

    public void helloWorld() {
    
        System.out.println(“hello world”);
    }
}

class B extends A {

    //重写(覆盖)父类方法
    
    public void helloWorld() {
    
        System.out.println(“hello world”);
    
    } 
    
    public void hi() {
    
        System.out.println(“hi”);
    
    }
    
    //重载上一个方法
    
    public int hi() {
    
        System.out.println(“hi”);
        
        return 1;
    }
}

 

 

java.lang类默认会被导入java文件中

static修饰的方法或变量属于类,不属于类的对象.static对每个类来说只有一个存储空间,而每个对象都有一个存储空间.可通过staticMethod, 类名.staticMethod, 对象变量.staticMethod等来访问.

 

创建对象时注意

String s;    //创建引用(自动初始化为null),并不是创建对象
new String(“hello world”);    //用new创建对象
String s = new String(“hello world”);    //先用new创建对象,再创建引用s,并指向创建的对象(=具有右结合性)

 

 

操作符注意

==!=用于比较基本类型的值,对象的引用是否相同

equals()比较对象的值是否相同, 但是不适用于基本类型

注意:equals默认行为是比较引用

 

class Value {
    int i;
    int j = 10;
}

public class EqualMethod {
    public static void main(String[] args) {
        //==和!=比较基本类型的值
        System.out.println(47 == 47.00);    //true
        Integer n1 = new Integer(47);
        Integer n2 = new Integer(47);
        
        //==和!=比较对象的引用
        System.out.println(n1 == n2);        //false
        //equals()比较对象的值
        System.out.println(n1.equals(n2));    //true
        
        
        Value v1 = new Value();
        Value v2 = new Value();
        v1.i = v2.i = 100;
        //equals()默认比较引用,这里v1,v2都为类Value的对象的引用
        System.out.println(v1.equals(v2));    //false
    }

}

逻辑操作符(&&, ||, !) 产生一个布尔值,存在短路现象

按位操作符(&, |, ~, ^) 不存在短路现象

移位操作符:(<<, >>, >>>):左移<<时低位补0;有符号右移>>时,若符号为正则高位补0,为负则高位补1;无符号右移>>>时,无论正负高位补1(byte和short类型进行无符号右移时,先会被转换为int型, 再右移,然后截断赋值给原来类型)

 

直接常量

long: L, l(后缀)

float:F, f(后缀)

double: D, d(后缀)

十六进制: 0X, 0x(前缀)

八进制: 0(前缀)

 

long a = 1024L;
float b = 40f;
double c = 2048d;
int d = 0x21;    //十进制33
int e = 021;    //十进制17

 

posted @ 2017-06-08 22:59  天秤libra  阅读(400)  评论(0编辑  收藏