标识符
类名,变量名,方法名都被称为标识符
标识符的注意点:
- 所有的标识符否应该以字母(AZ/az),美元符($),下划线(_)开始
- 首字符之后可以是字母(AZ/az),美元符($),下划线(_)或者数字的任何字符组合
- 关键字不能用来作变量名或者方法名
- 标识符是***大小写敏感的***
- 一般不建议使用中文名和拼音
关键字
常用的关键字:
数据类型
Java的所有变量都必须先定义再使用
Java的数据类型分为两大类:
-
基本类型(primitive type):
- 数值类型:
- 整数类型
1.int(整型)
2.long(长整型) 范围:-232~232-1 long类型后面一般要加 L
3.short(短整型)范围:-32768~32767
4.byte(字节型)范围:-128~127 - 浮点类型:
- float(单精度)范围:-3.4 * 10(-38)~3.4 * 10(38) float类型后面一般要加 F
- double(双精度)范围:-1.7 * 10(-308)~1.7 * 10(308)
- 字符类型 char是单个的,即一个字(字符串用String来定义,但String不是关键字,是一个类)
- 整数类型
2.boolean类型:只有true和false两个值 (只占一位)
- 数值类型:
-
引用类型(reference type)
-
类
-
接口
-
数组
-
科普:
- 位(bit):计算机内部数据存储的最小单位,101就是一个三位二进制数
- 字节(byte):计算机中数据处理的最小单位,一般用B来表示
- 1B=8bit
- 字符:是指计算机中使用的字母,数字,字和符号
变量
格式:数据类型 变量名(=值);
例如:int a=1;
拓展
整数拓展:
进制:二进制,十进制,八进制,十六进制
二进制以0b开头,八进制以0开头,十六进制以0x开头
浮点数的拓展;
其输出:
解决方法:用BigDecimal(数学工具类)
原因:float能表现的字长是有限的,如果用float来表示只能是大约,接近,但不等于
最好完全避免使用浮点数进行比较
字符拓展:
所有的字符本质还是数字,可以通过int强制转换成数字
转义字符:
\t:空格(制表符)
\n:换行
\0:空字符(NULL)
\a :响铃(BEL)
\ddd: 任意字符 三位八进制
\xhh :任意字符 二位十六进制
布尔拓展 :
boolean flag=true
if(flag==true){}
if(flag){}
两个if括号内的条件相等
类型转换
类型转换(低->高):
如:
(注意:
-
小数的优先级大于整数
-
转换的时候可能存在内存溢出或者精度问题
这里的128超过了byte的内存
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型)
强制转换(高->低)的格式:(类型)变量名
在运算中,不同的数据类型要先转化为同一类型,然后进行运算。
其输出:
常见的问题:
操作比较大的数的时候,注意溢出问题:
int money=10_0000_0000;
int years=20;
long total=money*years;
System.out.println(total);
这样会输出一个随机值,因为int*int=int,再由int向long转换,这样无法解决问题
解决方法:
int money=10_0000_0000;
int years=20;
long total=money*((long)years);
System.out.println(total);
即:int*long的值再赋给一个long类型的变量
money=10_0000_0000;
int years=20;
long total=money*((long)years);
System.out.println(total);
即:int*long的值再赋给一个long类型的变量