一、标识符规则_驼峰规则
标识符是用来给变量、类、方法以及包进行命名的
标识符使用规则:
·标识符必须以字母、下划线、美元符开头。
·标识符其他部分可以是 数字、字母、下划线、美元符的任意组合。
·java标识符大小写敏感,且长度无限制。
·标识符不可以是java的关键字
标识符使用规范:
·类名的标识符每个单词首字母大写,如Man
·方法名和变量名的标识符:第一个单词首字母小写,第二个单词开始首字母大写,“驼峰原则”
注意: 汉字也可以用来定义标识符
二、变量的本质就是代表一个“可存储空间”。就像车位
Java是一种强类型的语言,每个变量必须声明其类型
变量作为程序中最基本的存储单元,其要素包括变量名,变量类型,作用域
一行可以声明多个变量,不建议使用
可以把变量的初始化和声明放在同一行中
变量分类(局部变量、成员变量、静态变量)
·局部变量:方法或语句块内部定义的变量。生命周期.......
使用前必须先声明、初始化再使用
·成员变量(实例变量):方法外部、累的内部定义的变量。从属与对象,生命周期伴随对象始终
实例变量默认初始值: int 0 double 0 char ‘\uoooo’
boolean false
·静态变量(类变量): 使用static定义。从属于类。生命周期伴随类始终,从类加载到卸载。
三、常量和final
常量: 通常指的是一个固定的值。如 1、2、3、4、a、b、true、false。
Java语言中主要用关键字final来定义一个常量,常量一旦初始化后不能更改其值。使用final修饰的PI等称为符号常量。
变量和常量命名规范:
变量名、方法名:首字母小写和驼峰原则
类名:首字母大写和驼峰原则
常量:大写字母和下划线
四、基本数据类型(primitive data type)
整型变量和整型常量
byte 1字节 -128 —+127 256
short 2字节 +- 3万 65536
Int 4字节 大约21亿
long 8字节 2的63次方
Java语言整型常量的四种表示形式
·十进制整数:15
·八进制整数:要求以0开头, 015
· 十六进制: 以0x开头,0x15
· 二进制, 0b或者0B开头,0b15
浮点型变量/常量(浮点数是不精确的,一定不要用于比较!)
float 4字节 -3.4E38 ~+3.14E38
double 8字节 -1.798E308~+1.798E308
Float类型又被称作单精度类型,位数可以精确到7位有效数字,double精度是float的双倍,又被称作双精度类型,浮点常量默认是double
做大数据金融了领域运算比较:java.math包下面的两个有用类:BigInteger和BigDecimal,前者实现任意精度的整数运算,后者实现任意精度的浮点运算
字符型变量/常量
字符型占两个字节
Char类型用来表示Unicode编码表中的字符,Unicode编码被设计用来处理各种语言文字,占两个字节。可允许65536个字符
Unicode具有0 ~65536之间的编码,通常用从’\u0000’到’\uFFFF’之间的十六进制来表示
转义字符
注意:我们以后学的String类,其实是字符序列
boolean类型变量、常量
Boolean类型有两个常量值,true和false,在内存中占一位,而不是一个字节
Less is more不要这样写: if(flag == true),推荐if(flag)或者if (!flag)
五、运算符
·算术运算符
算术运算符中+ 、-、 *、 /、%属于二元运算符 得两个擦作数 ,其中%是取模运算符,也就是取余数
二元运算规则:
·整数:见long 结果long;
没long结果都为int;
·浮点运算:有double 结果为double
只有两个操作数都为float,结果才为float;
·取模运算:·其操作数为浮点数,一般使用整数,结果是余数,“余数”符号和左边操作数相同 7%-3=1
++ 、-- 属于一元运算符
·赋值和赋值扩展运算符
扩展赋值运算符:+=、-=、*=、/=、%=
·关系运算符
关系运算符得结果是布尔值:true/false
==
!=
>
<
>=
<=
注意:·= 是赋值运算符,判断两个操作数是否相等的运算符是 ==
·==、!=是所有(基本和引用)数据类型都可以使用
·<、>、<= 、>= 仅针对数值类型整数,浮点和char类型
·逻辑运算符: 短路问题 Operator03
·位运算符 ~、&、|、^(异或)、>>、<<
·字符串连接符: +两边只要有一个字符
·条件运算符
x?Y:z
·运算符优先级_逻辑与或优先级问题
一般用括号来处理优先级
逻辑非>逻辑与>或
37自动类型转化
38 强制类型转化
/**
* 测试类型转换常见问题
* @author HIAPAD
*
*/
public class TestTypeConverError {
public static void main(String[] args) {
int money = 1000000000; //10亿
int years = 20;
//返回的total是负值, 超出了int范围
int total = years*money;
System.out.println("tatal"+total);
//返回的任然是负值
long total1 = years*money;
System.out.println("tatal1"+total1);
//先将一个因子变成long,整个表达式提升,
long total2 = money*((long)years);
System.out.println("tatal2"+total2);
long total3 =464613L* money*years;
System.out.println(total3);
//命名问题
int l = 2;//分不青l 还是1
long a = 23456l; //大写 L