数据类型与运算符
一. 变量和类型
八大数据类型都有默认值
1. 数值型
1.1 byte类型( 字节型变量)一个字节
进行编程或者文件IO传输使用byte
byte a = 0;
System.out.println(a);
1.2 short类型 (短整型变量)
short value = 0;
System.out.println(value);
注意事项:
- short 占用 2 个字节, 表示的数据范围是 -32768 -> +32767
- 这个表示范围比较小, 一般不推荐使用
1.3 int类型(整型)4个字节
int a = 10;
System.out.println(a);//整型变量a放在内存中
注意:
- 初始化操作是可选的,但是建议创建变量的时候都显示初始化。
- 所有程序执行起来,数据都存储在内存中。
- 内存一断电,数据全清空了。
- 当在类中(主方法外定义int变量时,默认值为0)
- 在Java中,一个int 变量占4个字节,,和操作系统没有直接关系。
- Java中没有无符号整数的概念。
- **int 4 个字节 32位 最高位表示正负(0表示正数,1表示负数)
- int 范围 (-2^31 ~ 2 ^31-1) * 4**
- 计算机使用二进制表示数据. 我们认为 8 个二进制位(bit) 为一个字节(Byte).
- 当最大值 +1,发生溢出(当前的数据类型放不下当前数据)
- Java中使用以下代码查看整形数据范围
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
1.4 long类型(长整型)8个字节
long b = 10L;
//声明一个长整型变量(L)
注意:
- 基本语法格式和创建int 变量基本一致,只是把类型修改成 long。
- long 表示的数据范围: -2^63 ~ 2 ^63-1
- 使用以下代码查看Java中的长整型数据范围
System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);
}
1.5 double类型(双精度浮点型变量) 8个字节
神奇的代码:
public class java_10_30 {
public static void main(String[] args) {
double a = 1.0;
double b = 2.0;
System.out.println(a / b);
}
}
在Java中,int 除以 int 的值仍然是 int (会直接舍弃小数部分)
如果想得到 0.5 ,需要使用double类型计算。
当使用 double 类型进行小数运算时,会出现精度会出现不准,使用 BigDecimal 代替
BigDecimal a = BigDecimal.valueOf(1.1);
BigDecimal b = BigDecimal.valueOf(1.1);
System.out.println(a.multiply(b));
1.6 float 类型(单精度浮点型变量)4个字节
// 定义一个float变量
float a =1.0f;
System.out.println(a);
2. char类型 (字符型变量)2个字节
char A = 'A';
System.out.println(A);
一个char 就是两个字节,无论是英语还是汉字。
3. boolean类型(布尔类型)
boolean a = true;
boolean b = false;
System.out.println(a);
System.out.println(b);
注意:
- boolean 类型的变量只有两种取值,true 表示真,false 表示假。
- Java的 boolean 类型和int不能相互转换,不存在1表示true,0表示false这样的用法。
- boolean 类型有些 JVM 的实现是占一个字节,有些是占一个比特位,这个没有明确规定。
3. 字符串类型变量(重点!!!)
字符串不是基本数据类型,属于类。
在Java中,任何数据类型只要和字符串“+”,都会将其转为字符串而后进行字符串的拼接操作。
String a = "result=";
int b = 1;
int c = 2;
String r = a + b + c;
System.out.println(r);
4. 变量的命名规则:小驼峰命名法
int age;
String schoolName = "泾阳中学";
5. 常量
5.1 字面值常量
5.2 final 关键字修饰的常量
final int a = 10;
a = 20; // 编译出错. 提示 无法为最终变量a分配值
常量不能在程序运行过程中发生修改