1.标识符
标识符的首字符必须是字母、下划线("_")、或美元符号("$"),其后的字符可以是字母、下划线、美元符号或数字。
2.Java命名
两种:PascalClass 和 camelClass
PascalClass:每个单词的首字母大写,其余均小写(一般用于自定义类型)
camelClass :第一个单词全部小写,其余单词的首字母大写,其余字母小写(一般用于变量名)
(1)包:通常使用名词,全部小写,单词之间用“.”隔开;
(2)类、接口:通常使用名词,使用PascalClass命名规则;
(3)方法:通常使用动词,使用camelClass命名规则;
(4)常量:通常使用名词,全部大写,单词之间用下划线隔开;
(5)变量:通常使用名词,使用camelClass命名规则,避免使用$符号;
3.数据类型
Java是强类型语言,每个变量和对象都必须具有声明对象;
简单类型:数值类型(整型:byte short int long char 浮点型:float double)布尔型:boolean
简单类型的变量在堆栈(Stack)中直接包含其数据,每个变量都有自己的数据副本;
引用类型:类类型 接口类型 数组类型 null类型
引用类型的变量在堆栈(Stack)中存储对数据(对象)的引用(地址),数据(对象)存储在堆(Heap)中.
注:两个变量可能引用同一个对象。
4.装箱和拆箱
装箱:指将一个简单类型隐式或显式的装换
boolean byte char short int long float double
1 2 2 4 8 4 8
Boolean Byte Character Short Integer Long Float Double
5.变量
(1)声明变量 【数据类型 变量名】
(2)变量赋值 【变量 = 要赋的值】或【数据类型 变量名 = 初值】
6.变量作用域
(1)类型成员变量 是在类类型中声明的变量,包括静态变量和实例变量,其有效范围为类类型定义体内;
(2)方法体局部变量 是方法中声明的变量,其有效范围为方法体内;
(3)语句块局部变量 是在控制结构块中的声明的变量。例如if、for等语句中定义的变量,其有效范围为控制结构块内;
7.常量
(1)文本常量 表示简单类型、String类型、null类型的值;
(2)整型常量 即int类型,如果加后缀L,则解释为long类型;
(3)浮点数类型常量 带小数点的数字或科学计数法表示的字符串通常解释为双精度浮点类型(double),后缀为F或f的为单精度浮点类型,后缀为D或d的为双精度浮点类型(double);
(4)布尔类型常量 分为true和false boolean b1 = true;
(5)字符类型常量 \n 回车 \t 水平制表符 \b 退格 \r 换行 \f 换页 \ddd 3位八进制 \udddd 4位十六进制 ’ 单引号 " 双引号
(6)字符串类型常量 是用双引号括起来的一串字符,Java中的字符串常量作为String类的一个对象来处理,字符串常量可以赋值给String类型变量。
例如:String str1 = “程序设计”;
(7)null类型 null类型是引用类型的唯一文本常量,可以为任何引用类型,赋值给任何引用类型。
(8)预定义数据类型 简单类型(整数类型、浮点类型、布尔类型)和其对应的包装类;引用类型(Object和String)
例如:
常量字段 MAX_VALUE 最大可能值
MIN_VALUE 最小可能值
静态方法 parse~~~(String s) 例:Byte.parseByte 将数字的字符串转换为Byte类型
valueOf(String s) 例:Short.valueOf 将数字的字符串转换为Short的对象实例
实例方法 intValue 例:Integer i1 = 123;
byte b1 = i1.byteValue(); 类型转换
toString() 例:Integer i1 = 123456;
String str1 = i1.toString(); 将此实例的数值转换为其等效的字符串表达式
8.类型转换
(1)自动类型转换
byte -----> short int long float double
short -----> int long folat double
char -----> int long float double
int -----> long float double
long -----> float double
float -----> double
注意:不存在到char的隐式转换
2)强制类型转换
short -----> byte char
char -----> byte short
int -----> byte short char
iong -----> byte short char int
float -----> byte short char int long
double -----> byte short char int long float
/**
* 装箱和拆箱
* 显式装箱:Integer obj1 = (Ineteger)i;
* 隐式装箱:Integer obj2 = i;
* 显式拆箱:int j = (int) obj1;
* 隐式拆箱:int k = obj2;
*/
class Class1 {
public int value = 0;
}
public class Test1 {
public static void main(String[] args) {
int val1 = 0;
int val2 = val1;
val2 = 123;
Class1 ref1 = new Class1();
Class1 ref2 = ref1;
ref2.value = 123;
System.out.println("Val: " + val1 + "Val2: " + val2);
System.out.println("Ref1: "+ ref1.value + "Ref2: " + ref2.value);
}
}
//变量
public static void main(String[] args) {
int i1;
i1 = 123;
int i2 = 456;
double d1 = 12.3,d2,d3 = 45.6;
System.out.printf("i1 = %d\n",i1);
System.out.printf("i2 = %d\n",i2);
System.out.printf("d1 = %f\n",d1);
//System.out.printf("d2 = %f\n",d2); //d2未赋值
System.out.printf("d3 = %f\n",d3);
}
//常量
public static void main(String[] args) {
double radius = 100; //声明变量半径并赋初值为100;
double amount = 1000; //声明变量金额并赋初值为1000;
final double PI = 3.14159; //声明常量PI圆周率为3.141509‘
final double TAXRATE; //声明变量增值税率;
TAXRATE = 0.17; //赋值;
double perimeter = 2 * PI * radius; //求周长
double area = PI * radius * radius; //求面积
double tax = amount * TAXRATE; //求增值税
System.out.printf("半径 = %3.2f;周长 = %3.2f\n",radius,perimeter);
System.out.printf("半径 = %3.2f;面积 = %3.2f\n",radius,area);
System.out.printf("金额 = %5.2f;税额 = %5.2f\n",amount,tax);
}