java注释文档
一些常用的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