一、Java命名规则
- 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
- 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
二、Java数据类型
- 基本数据类型(内置数据类型)
byte 8位、有符号、-128—127,默认值0 short 16位、有符号、-32768—32767,默认值0 int 32位、有符号、-2,147,483,648—2,147,483,647,默认值0 long 64位、有符号、-9,223,372,036,854,775,808—+,默认值0L float 32位、有符号、符合IEEE 754标准的浮点数,默认值0.0F double 64位、有符号、符合IEEE 754标准的浮点数,默认值0.0 boolean 1位,true/false,全是小写 char 16位Unicode字符,常量用‘ ‘ - Java对Unicode支持采用的是UTF-16的编码实现;在UTF-16下,Java的一个Unicode字符由1或2个char(代码单元)表示。
UTF-32和Unicode码表基本一一对应,固定四个字节。 Unicode定义的范围太大了,其实99%的人使用的字符编码不会超过2个字节,所以如果统一用4个字节,数据冗余太大,16位是最好的。遇到超过16位才能表示的字符,可以通过代理技术,采用32位标识。所以现在绝大部分机器实现Unicode采用UTF-16的方案 - 整数默认为int型,浮点数默认为double型。
- 基本类型的取值范围,已经以常量的形式定义在对应的包装类中。如Byte.SIZE、Byte.MIN_VALUE、Byte.MAX_VALUE。"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。
- Java对Unicode支持采用的是UTF-16的编码实现;在UTF-16下,Java的一个Unicode字符由1或2个char(代码单元)表示。
- 引用数据类型
- 对象、数组都是引用数据类型。
- 所有引用类型的默认值都是null。
- 一个引用变量可以用来引用任何与之兼容的类型。
- 类型转换
(1)自动类型转化
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级。
低 ------------------------------------------------------------> 高
byte、short、char—> int —> long—> float —> double
(2)强制类型转化
把容量大的类型转换为容量小的类型时必须使用强制类型转换。
格式:(type)value
注:转换的数据类型必须是兼容的;不能对boolean类型进行类型转换。
三、常量
- 变量作用域
(1)局部变量
- 局部变量声明在方法、构造方法或者语句块中;
- 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
- 访问修饰符不能用于局部变量;
- 局部变量只在声明它的方法、构造方法或者语句块中可见;
- 局部变量是在栈上分配的。
- 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
(2)成员变量(实例变量)
-
- 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
- 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
- 实例变量可以声明在使用前或者使用后;
- 访问修饰符可以修饰实例变量;实例变量具有默认值;
- 数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。
- 实例变量可以直接通过变量名访问。
(3)类变量(静态变量)
-
- 在类中以static关键字声明,但必须在构造方法和语句块之外。
- 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
- 静态变量除了被声明为常量外很少使用。静态变量储存在静态存储区。
- 静态变量在程序开始时创建,在程序结束时销毁。
- 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
- 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
- 静态变量可以通过:ClassName.VariableName的方式访问。
- 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。
四、变量
五、修饰符
- 访问修饰符
修饰符用来定义类(接口)、方法或者变量,通常放在语句的最前端。
修饰符 当前类 同一包内 子孙类 其他包类 public Y Y Y Y protected Y Y Y default Y
Yprivate Y 注:上表空单元行代表N。
(1)访问控制继承关系
- 父类中声明为 public 的方法在子类中也必须为 public。
- 父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
- 父类中声明为 private 的方法,不能够被继承。
- 非访问修饰符
- static:用来创建类方法和类变量
静态变量 声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被成为类变量。局部变量不能被声明为 static 变量。 静态方法 声明独立于对象的静态方法。静态方法不能使用类的非静态变量。 对类变量和方法的访问可以直接使用classname.variablename 和 classname.methodname 的方式访问。 - final:final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
final 变量 final 变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象,但是 final 对象里的数据可以被改变,也就是说 final 对象的引用不能改变,但是里面的值可以改变。final 修饰符通常和 static 修饰符一起使用来创建类常量。 final方法 类中的 final 方法可以被子类继承,但是不能被子类修改,声明 final 方法的主要目的是防止该方法的内容被修改。 final类 final 类不能被继承,没有类能够继承 final 类的任何特性。 - abstract:用来创建抽象类和抽象方法。
abstract方法 抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成 final 和 static。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。抽象方法的声明以分号结尾,例如:public abstract sample();。 abstract类 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类。抽象类可以包含抽象方法和非抽象方法。 - synchronized
- transient
- static:用来创建类方法和类变量
时间: 2024-10-27 11:35:53