在Java中数据类型主要分为两类:基本数据类型和引用数据类型。
基本数据类型有四类八种:
数据类型 | 关键字 | 内存占用 | 范围 |
---|---|---|---|
字节型 | byte | 1字节 | -128 ~ 127 |
短整型 | short | 2字节 | -32768 ~ 32767 |
整型 | int | 4字节 | ~ |
长整型 | long | 8字节 | ~ |
单精度浮点数 | float | 4 字节 | 有范围,一般不关注 |
双精度浮点数 | double | 8 字节 | 有范围,一般不关注 |
字符型 | char | 2 字节 | 0 ~ 65535 |
布尔型 | boolean | 没有明确规定 | true 和 false |
注意:
不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节。
整形和浮点型都是带有符号的。
整型默认为int型,浮点型默认为double。
字符串属于引用类型,该中类型后序介绍。
对于经常改变的内容,在Java程序中,称为变量。而数据类型就是用来定义不同种类变量的。其定义格式为:数据类型 变量名 = 初始值;
整型变量:
方式一:在定义时给出初始值
int a = 10;
System.Out.println(a);
方式二:在定义时没有给初始值,但使用前必须设置初值
int b;
b = 10;
System.Out.println(b);
长整型变量:
int a = 10;
long b = 10; // long定义的长整型变量
long c = 10L; // 为了区分int和long类型,一般建议:long类型变量的初始值之后加L或者l
long d = 10l; // 一般更加以加大写L,因为小写l与1不好区分
短整型变量:
short a = 10;
System.Out.println(a);
字节型变量:
byte b = 10;
System.Out.println(b);
双精度浮点型:
double d = 3.14;
System.Out.println(d);
单精度浮点型:
float num = 1.0f; // 写作 1.0F 也可以
System.out.println(num);
char c1 = 'A'; // 大写字母
char c2 = '1'; // 数字字符
System.out.println(c1);
System.out.println(c2);
// 注意:java中的字符可以存放整形
char c3 = '帅';
System.out.println(c3);
boolean b = true;
System.out.println(b);
b = false;
System.out.println(b);
自动类型转换(隐式):
自动类型转换即:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。特点:数据范围小的转为数据范围大的时会自动进行。
强制类型转换(显式):
强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。特点:数据范围大的到数据范围小的。
在Java中使用String类定义字符串类型,比如:
public static void main(String[] args) {
String s1 = "hello";
String s2 = " world";
System.out.println(s1);
System.out.println(s2);
System.out.println(s1+s2); // s1+s2表示:将s1和s2进行拼接
}
即:对操作数进行操作时的符号,不同运算符操作的含义不同。
作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - */)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。
算术运算符
基本四则运算符:加减乘除模(+ - * / %)
int a = 20;
int b = 10;
System.out.println(a + b); // 30
System.out.println(a - b); // 10
System.out.println(a * b); // 200
System.out.println(a / b); // 2
System.out.println(a % b); // 0 --->模运算相当于数学中除法的余数
关系运算符
关系运算符主要有六个: == != < > <= >= ,其计算结果是 true 或者 false 。
int a = 10;
int b = 20;
// 注意:在Java中 = 表示赋值,要与数学中的含义区分
// 在Java中 == 表示相等
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a <= b); // true
System.out.println(a >= b); // fals
逻辑运算符(重点)
逻辑运算符主要有三个: && || ! ,运算结果都是 boolean类型。
逻辑与 &&:两个表达式都为真,结果才是真,只要有一个是假,结果就是假
int a = 1;
int b = 2;
System.out.println(a == 1 && b == 2); // 左为真 且 右为真 则结果为真。
逻辑||:左右表达式至少有一个为真,结果为真。
int a = 1;
int b = 2;
System.out.println(a == 1 || b == 2); // 左为真 且 右为真 则结果为真
逻辑非!:真变假,假变真。
int a = 1;
System.out.println(!(a == 1)); // a == 1 为true,取个非就是false
位运算符
位运算符主要有四个: & | ~ ^ ,除 ~ 是一元运算符外,其余都是二元运算符。
位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位的每一位依次进行计算.
按位与:
按位或:
条件运算符
条件运算符只有一个:
表达式1 ? 表达式2 : 表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;
当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值;
也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法。
// 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;