在程序运行过程中,其值不能发生改变的量.
字面值常量
- 整数常量
- 小数常量
- 字符串常量
- 字符常量
- 布尔常量
自定义常量
final 数据类型 常量名 = 值
final int I = 100数据类型
Java是强类型语言,数据类型明确.
计算机基础单位: 字节
最小单位:比特位
1byte = 8bit
基本类型
- 整型
- 字节型 byte 1字节 8位 2^8 -> [-128, 127]
- 短整型 short 2字节 16位 2^16 -> [-32769, 32769]
- 整型 int 4字节 32位 正负21亿
- 长整型 long 7字节 64位
证书字面量默认int
long类型的数据,需要在数据的后面添加 L | l
int money = 1000000
- 浮点型
- 单精度 float 4字节 小数点后7位左右
- 双精度 double 8字节 小数点后15位左右
浮点类型的字面常量类型为double
表示一个float类型的数据,在数据的后面添加f|F
double d1 = 0.123456789123456789 float f1 = 0.1234
- 字符型
char 2个字节
表示形式:
- ''中包裹的字符
- 0到65535之间的整数表示某个字符 UNicoude 字符集
参与运算时,先转为十进制整数,再运算
char ch1 = ' ';
char ch2 = '啦';
char ch3 = 95;
System.out.println(ch1);
System.out.println(ch2);
System.out.println(ch3);
- 布尔型
boolean 1bit true | false
引用数据类型
- 类
- 接口
- 数组
- 整型
二进制: 0b | 0B 开头
八进制: 0开头
十进制: 默认
十六进制: 0~9 a ~ f 不区分大小 0x | 0X 开头
其他进制转十进制: 从最后一位数开始乘以当前进制数的次方,次方数每次加一,得到乘积求和
十进制转其他进制: 不停的除以进制数,得到结果为0,看余数,从下往上得出结果 - 浮点类型
- 小数 0的整数位可以省略
- e 科学计数法 代表10 en(n>0) -> *10^n en(n<0) -> / 10^n
从 ** 开始,跟js一样的.
t 制表符
n 换行
b 退格
-
boolean类型不参与类型转换
-
自动类型提升:
- 从小到大
- 如果在byte,short,char类型复制的时候,只要在其反问诶的唱两句就能成功赋值
- 如果运算结果强制类型转换: 从大到小
// 自动类型提升
byte b1 = 100;
short s1 = b1;
System.out.println(s1);
final int i = 100;
byte b2 = i;
short s2 = b2;
System.out.println(s2);
long i2 = b2 + i;
System.out.println(i2);
float f = i2;
System.out.println(f);
// 强制类型转换
int n1 = (int) i2;
System.out.println(n1);
// 取整
double d2 = 100.12;
int n2 = (int) d2;
System.out.println(n2);
// 圆环呈现
byte by = (byte) 130;
System.out.println(by);
int m = 15;
int sal = 2000000000;
int result = m * sal;
long res = (long) m * sal;
System.out.println(result); // -64771072
System.out.println(res); // 30000000000
short sh = 100;
sh = sh + 1; //2 + 1 这种常量才可以
//Type mismatch: cannot convert from int to short
System.out.println(sh);
Scanner 工具类
引用数据类型
- 导包
告诉java,当前要是用类的位置
import 包名.类名; (权限定名: 包名.类名)
位置: 类的上面 - 创建当前引用数据类型的变量|引用
引用数据类型 变量名|引用名 = new 引用数据类型(); - 使用功能
引用名.功能名字();
Scanner 工具类
帮助接收用户键盘输入
- 导包 import java.util.Scanner
- 创建当前Scanner的变量|引用Scanner sc = new Scanner(System.in);
3.使用功能
sc.nextInt() 接手用户输入的int类型数据
sc.nextByte()
sc.nextShort()
sc.nextLong()
sc.nextFloat()
sc.nextDouble()
sc.next()接收用户输入的字符串,从有效字符开始接收,如果遇到空格tab停止接收,遇到enter结束功能,不接收enter.
sc.nextLine()接收整行,遇到enter结束,接收enter
sc.close() 用后销毁
// 导包
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
System.out.println("demo1");
// 创建当前Scanner的变量|引用
Scanner sc = new Scanner(System.in);
System.out.println("输入数字:");
// // 使用功能
int age = sc.nextInt();
System.out.println(age);
Scanner sc2 = new Scanner(System.in);
System.out.println("输入字:");
String byte2 = sc.next();
System.out.println(byte2);
// 处理系列next功能遗留的enter问题
sc2.nextLine();
Scanner sc3 = new Scanner(System.in);
System.out.println("输入字:");
String byte3 = sc3.nextLine();
System.out.println(byte3);
sc.close();
}
}



