java 数据类型
1. 标识符¶
1.1 作用¶
常量、变量、方法、类和包等的名称
1.2 命名规则¶
以下是硬性规定
- 必须以字母、_下划线、美元符$开头。
- 其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合
- 大小写敏感,长度无限制。
- 不可以是Java的关键字[保留字]。
注意
1. Java不采用通常语言使用的ASCII字符集 2. Java采用unicode这样的标准的国际字符集。 因此,这里的字母的含义:英文、汉 字等等。 (不建议大家使用汉字来定义标识符!)
常规建议
- 驼峰标识
1. 类名,接口名称在命名的时候要首字母大写 2. 方法,变量命名的时候,首字母要小写 3. 多个单词拼接表示一个标识时候,每个单词都要大写
- 见名知意
1. 千万别写拼音 2. 看到标识符,就知道意思
2. 关键字和字符集¶
Java关键字是Java语言保留供内部使用的,如class用于定义类。 关键字也可以 称为保留字,它们的意思是一样的。
- ASCII
英文字符集 1个字节
- ISO8859-1
西欧字符集 1个字节
- BIG5
台湾的大五码,表示繁体汉字 2个字节
- GB2312
大陆使用最早、最广的简体中文字符集 2个字节
GBK
GB2312的扩展,可以表示繁体中文 2个字节
- GB18030
最新GBK的扩展,可以表示汉字、维吾尔文、藏文等中华民族字符 2个字节
Unicode
国际通用字符集 2个字节 ISO8859-1 BIG5 GB2312 unicode utf-8,utf-16 GBK GB18030
3. 常量和变量¶
- 常量: 在程序运行过程中,值不会发生改变的量叫做常量
- 变量: 在程序运行过程中,值会发生改变的量叫做变量
要点
- Java是一种强类型语言,每个变量都必须声明其类型。
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
- 变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元,声
type varName [=value] [{,varName[=value]}]
注意事项
1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型。 2. 变量名必须是合法的标识符。
例子
变量: 变量名称,变量类型,作用域 1. 先声明后赋值 int a;声明 a = 10;赋值 2. 声明+赋值 int a = 20; 3. 注意: 1. 在类内,方法外定义的变量叫成员变量,会存在默认值 2. 在方法内,定义的变量必须要进行初始化,不会存在默认值
final 常量
使用final关键字修饰的变量称之为常量或者叫最终常量,表示不可以修改 1. 使用final修饰的变量,只能被初始化一次,变成了常量。 2. final常量是有名称的 public class Constants { public static void main(String[] args) { final double PI = 3.14; // PI = 3.15; //error double r = 4; double area = PI * r * r; double circle = 2 * PI * r; System.out.println("area = " + area); System.out.println("circle = " + circle); } }
4. 基本数据类型¶
java是一种强类型的语言,
- 强类型表示,变量在定义的时候,必须显示的声明类型是什么, 如java,c++
- 弱类型表示,变量会割接值自己去推断,不需要指定类型是什么,如 js,python,scala
常量是有数据类型的,变量都必须声明其数据类型。
4.1 整数类型¶
类型 | 占用存储空间 | 表示范围 |
---|---|---|
byte | 1个字节 | -128 ~127 |
short | 2个字节 | -215 ~ 215-1 |
int(integer) | 4个字节 | -231 ~ 231-1 |
long | 8个字节 | -263 ~ 263-1 |
整型常量
- 十进制整数,如:99, -500, 0
- 八进制整数,要求以 0 开头,如:015
- 十六进制数,要求 0x 或 0X 开头,如:0x15
- 整型常量默认为int型,声明long型常量可以后加‘ l ’或‘ L ‘(建议使用大写, 小写容易误认为数字1),如:
long a = 55555555; //不出错,在Int表示的范围内(21亿内)。 long b = 55555555555;//不加l出错,已经超过int表示的范围
整数类型
整数类型: byte short int long [不同类型表示不同的长度] byte : 使用一个字节存储,因此范围是 2^7 ~ 2^7 -1 [-128 ~ 127] short : 使用两个字节存储,因此范围是 2^15 ~ 2^15 -1 [-32768 ~ 32767] int : 使用四个字节存储,因此范围是 2^31 ~ 2^31 -1 [正负21亿] long : 使用八个字节存储,因此范围是 2^63 ~ 2^63 -1 1.在使用整型的时候,默认都是int类型, 2.如果需要使用long类型的话,必须要在数字后面添加L, 建议使用大写,小写容易和数字1混淆。
4.2 浮点类型¶
类型 | 占用存储空间 | 表示范围 |
---|---|---|
float | 4字节 | -3.403E38 ~ 3.403E38 |
double | 8字节 | -1.798E308 ~ 1.798E308 |
浮点类型常量
- 十进制数形式,例如:
3.14 314.0 0.314
- 科学记数法形式,如
314e2 314E2 314E-2 double f = 314e2; //314*10^2-->31400.0 double f2 = 314e-2; //314*10^(-2)-->3.14
- 浮点型变量
浮点
浮点类型: float double 小数类型:1. 小数点 2.科学计数法 float: 单精度,精度可以精确到小数点后7位 double: 双精度,精度是float的双倍 1.默认浮点类型低double类型, 2.使用float的时候,数字后面要添加f|F 3.浮点类型并不能表示一个精确的值,会损失一定的精度 1. float类型:单精度类型,尾数可以精确到7位有效数字,在很多情况下, float类型的精度很难满足需求。 2. double类型:双精度类型 精度是float类型的两倍, 绝大部分应用程序都采用double类型。
注意
1. 浮点常量默认为double。要变为float,需在后面增加F/f. 如: 3.14F 2. 浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算, 需要使用BigDecimal类。
4.3 字符类型¶
转义符 | 含义 | Unicode值 |
---|---|---|
\b | 退格[backspace] | \u0008 |
\n | 换行 | \u000a |
\r | 换行 | \u000d |
\t | 制表符 | \u0009 |
\" | 双引号 | \u0022 |
\' | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
字符类型: char 占用2个字节,使用时候使用''表示
字符数据类型
1. 单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的, “A”表示含有一个字符的字符串。 2. char 类型用来表示在Unicode编码表中的字符。 3. Unicode编码被设计用来处理各种语言的所有文字,它占2个字节, 可允许有65536个字符;ASCII码占1个字节,可允许有128个字符 (最高位是0), 是Unicode编码表中前128个字符。 4. Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的 含义,char c2 = '\n'; //代表换行符 5. char类型在内存中存储的是该字符的Unicode编码值, 所以char类 型可以当做int类型来处理
4.4 布尔类型¶
布尔类型: boolean 只有true和false,在存储的时候占1位
布尔类型
1. boolean类型有两个值,true和false 2. boolean 类型用来判断逻辑条件,一般用于程序流程控制 3. 实践: 1. 请不要这样写:if ( is == true && done == false ) 只有新手才那么写。 对于任何程序员 if ( whether && !done ) 都不难理解吧。 所以去掉所有的 ==fasle 和 ==true
- 引用数据类型
类,接口,数组