1.字面常量
字面常量就是在程序运行中,固定不变的量,例如如下的代码
public class Demo{
public static void main(String[] args){
System.Out.println("hello world!");
System.Out.println(100);
System.Out.println(3.14);
System.Out.println('A');
System.Out.println(true);
System.Out.println(false);
}
}
sout输出的内容使用了双引号括起来,都是字面常量。
2.数据类型
Java中数据类型主要分为两类:基本数据类型和引用数据类型。
基本数据类型有四类八种:
1.四类:整型,浮点型,字符型,布尔型
2.八种:
注意:Java中任何类型的系统,数据类型内存占用是固定的,且int,double都是带符号的,整型默认为int,浮点型默认double
3.变量
3.1整型变量
3.1.1整型变量
int a = 10;
我们一般在定义时就给出初始值,且一定要赋值,否则会出现编译报错。同时,在定义int型变量的时候,不要超过int的范围,int的包装类型为Integer
3.1.2长整型变量
long b = 10L;
长整型变量的初始值后加L或者l,一般我们加L,占8个字节,包装类型是Long
3.1.3短整型变量
short a = 10;
占2个字节,包装类型为Short
3.1.4字节型变量
byte b = 10;
占1个字节,范围-127 ~ 128,包装类型Byte
3.4浮点型变量
3.4.1双精度浮点型
double d = 3.14;
在Java中,int除以int的值仍然是int
int a = 10;
int b = 20;
System.out.println(a / b);
结果是0
double num = 1.1;
System.out.println(num * num); // 输出1.21吗?
// 执行结果
1.2100000000000002
double占8个字节,小数的存储并不精确,double的包装类型是Double
3.4.2单精度浮点型
float num = 1.0f; // 写作 1.0F 也可以
一定要记住在赋值时加f或者F
3.5字符型变量
char c1 = 'A'; // 大写字母
char c2 = '1'; // 数字字符
Java中的字符型变量可以存储汉字,他的包装类型是Character
char c3 = '帅';
3.6布尔型变量
布尔型变量赋值只有true和flase,没有0或1,boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法,包装类型是Boolean,没有确定的大小
boolean b = true;
System.out.println(b);
b = false;
System.out.println(b);
3.7类型转换
可以由小到大,由大到小需要强制类型转换,且可以出现问题
int a = 10;
long b = 100L;
b = a; // 可以通过编译
a = b; // 编译失败
类型提升:int会被提升为long,但需要注意的是,byte与byte的加法计算中,我们会先将byte提升到int,因此最后输出的内容是int类型,例如:
byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c);
// 编译报错
Test.java:5: 错误: 不兼容的类型: 从int转换到byte可能会有损失
byte c = a + b;
总结:对于不同类型数据的混合运算,范围小的变为大的,对于比四个字节少的类型,会先提升,再计算
4.字符串类型
Java使用String类定义字符串类型,举例如下:
String s1 = "hello";
String s2 = " world";
System.out.println(s1);
System.out.println(s2);
在输出的时候,字符串相加就是拼接
s1 + s2的结果是helloworld
有些情况下,字符串和整型间进行转换
int转换为String
2. String 转成 int
int num = 10;
// 方法1
String str1 = num + "";
// 方法2
String str2 = String.valueOf(num);
String转换为int
String str = "100";
int num = Integer.parseInt(str);