变量与数据类型
1 注释 annotation
注释是为了便于阅读源代码,不会编译到字节码文件中。建议每个类,每个方法都要加上注释,显示该怎么使用。
单行注释: //
多行注释: /* */
文档注释: /** **/ 用于生成API
2 标识符 identifier
1. Java的标识符可以是字母,数字,下划线(_)和$随意组合。
2. Java的标识符不能以数字开头。
3. Java的标识符不能是Java的关键字和保留字。
4. Java的标识符建议遵守驼峰命名法。
5. Java的标识符建议做到见名知义。
注意:Java使用的是Unicode字符集,故而汉字,日文,韩文都属于字母。
类名: 首字母大写,驼峰命名法
方法名: 首字母小写,驼峰命名法
变量名: 首字母小写,驼峰命名法
常量名: 全部大写
包名: 全部小写,以 . 隔开
3.变量 variable
变量:可操作的存储空间,通过变量名称访问这个存储空间,从而操纵这个空间的值。
分配一片内存空间,空间的大小由数据类型确定。例如:int 4个字节 long 8个字节。
变量的声明: 数据类型 变量名; 例如: int age;
虽然可以一行定义多个变量,逗号隔开,但是不建议。例如 : int age , num;
变量的初始化: 变量名 = 值; 例如 age = 18;
变量的声明和初始化可以同时进行 数据类型 变量名 = 值; 例如: int age = 18;
变量分类:成员变量(member variable)局部变量(local variable)静态变量(static variable)
成员变量会自动初始化, 数值类型初始化为0,布尔类型初始化为false,引用数据类型初始化为null
注意: 变量的数据类型可以是基本数据类型,也可以是引用数据类型。
变量名必须是合法的标识符,满足首字母小写和驼峰命名法,做到见名知义。
变量必须声明和初始化以后,才可以使用,否则会报错。
4 作用域 action scope
成员变量的作用域是整个类中
局部变量的作用域是语句块(通常是方法块)
静态变量的作用域和修饰符有关
5 常量 constant
常量:不能改变的量,final关键字修饰的变量,只能赋值一次,不能多次赋值。
6 数据类型 data type
|
byte
|
short
|
int
|
long
|
float
|
double
|
boolean
|
char
|
|
1bytes
|
2bytes
|
4bytes
|
8bytes
|
4bytes
|
8bytes
|
4bytes/1bit
|
2bytes
|
|
Byte
|
Short
|
Integer
|
Long
|
Float
|
Double
|
Boolean
|
Character
|
注释: java虚拟机中没有boolean类型,会将其转换为int类型(根据java虚拟机规范)
1个字节8位,负数比正数多一个,0的补码是0000 0000。
long类型的常量,数值的尾部需要加上L或l
float类型的常量,数值的尾部需要加上F或f
正常为十进制,二进制:0b开头,八进制:0开头,十六进制:0x开头
7 科学记数法 scientific notation
java中的科学计数法以E作为分割符
例:20E10 20乘以10的10次方 2E-2 2乘以10的-2次方。
8 高精度数字BigInteger BigDecimal
由于Java的基本数据类型中的float和double的精度比较低,对于某些需要高精度数字的行业,我们需要使用java.math包中的2个类: BigInteger和BigDecimal。
高精度数字可以进行加减乘除以及精度选择等操作,可以转换为各种数值类型。
这2个类都继承自java.lang.Number类,实现了Comparable接口。
父类Number类实现了Serializable接口
Serializable用于序列化,Comparable用于比较大小
9 转义字符 escape character
常用转义字符
1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'
2.Unicode转义字符:\u + 四个十六进制数字;0~65535
3.特殊字符:
\":双引号 \':单引号 \\:反斜线
4.控制字符:
\' 单引号字符 \\ 反斜杠字符 \r 回车
\n 换行 \b 退格
\f 走纸换页 \t 横向跳格
10 运算符分类 operational charact
11 强制类型转换
java中存在自动类型转换,在容量小的往容量大的数据类型转换的过程中,精度不会丢失,故而可以进行自动转换。(整型常量可以赋值给byte, short, int, long。只要不超过其表示范围,可以直接赋值)
1:byte -> short -> int –> long -> double
2:float -> double
3:char -> int
int 和 long 转化为float的时候,可能会存在精度丢失问题
java中将容量大的转换为容量小的,可能会造成精度丢失问题,故而,不允许自动类型转换,这种情况下,只能使用强制类型转换。
格式 (type) variable
浮点数强转为整数,会丢失精度(截取整数部分)
注意:如果2个int类型的操作数的乘积的值超过了int可表示的范围,那么应当将其中一个操作数先强制转换为long类型,避免发生操作数溢出(不准确)的问题。

浙公网安备 33010602011771号