数据类型可以形象的必做一个箱子, 而箱子有大有小, 要拿多大的需要具体去分析
创建一个变量
int类型
/**
* 整形:
* 1、大小: 4个字节(32个比特位)
* 2、在Java里面, int没有所谓的无符号整数.
* 所以, int既能表示整数, 也能表示负数
* @param args
*/
public static void main(String[] args) {
// 数据类型 变量名 = 数值
int a = 10;
System.out.println(a);
System.out.println("最大值: "+Integer.MAX_VALUE);
System.out.println("最小值: "+Integer.MIN_VALUE);
}
Integer是包装类, 可以粗暴理解为一个大号的int
包装类: 每个基本数据类型都会对应个类类型. 这个类类型就是包装类
long类型
/**
* 长整型:
* 1、他占8个字节->64个比特位
* -2^63 2^63-1
* @param args
*/
public static void main(String[] args) {
long a = 10L;
// L 是为了标识 a 为长整型
System.out.println(a);
System.out.println("最大值: "+Long.MAX_VALUE);
System.out.println("最小值: "+Long.MIN_VALUE);
}
/**
* 短整型:
* 1、2个字节-> 16个比特位
* -2^15 2^15-1
* 2、没有无符号的, 只有有符号的
* @param args
*/
public static void main(String[] args) {
short a = 10;
System.out.println(a);
System.out.println("最大值: "+Short.MAX_VALUE);
System.out.println("最小值: "+Short.MIN_VALUE);
}
byte类型
/**
* 字节型:
* 1、占用1个字节->8个比特位
* -2^7 2^7-1
* -128 127
* @param args
*/
public static void main(String[] args) {
byte a = 10;
System.out.println(a);
System.out.println("最大值: "+Byte.MAX_VALUE);
System.out.println("最小值: "+Byte.MIN_VALUE);
}
下面看几个常见的报错例子
public static void main(String[] args) {
byte a = 128;
}
public static void main(String[] args) {
byte a = 127;
byte b = a + 1;
}
解决方法
public static void main(String[] args) {
byte a = 127;
byte b = (byte) (a + 1);
// 强转为byte类型
}
思考: b为什么是-128呢 ?
通常情况下编译器会自动检查, 你的赋值是否超出当前数据类型的范围, 但是这个例子使用的是变量
强制类型转换一般会面临数据丢失的风险, 后果需自己承担 !
float类型
public static void main(String[] args) {
float a = 12.5;
}
解决办法: 后面加个f说明a是float类型
public static void main(String[] args) {
float a = 12.5f;
}
double 类型
public static void main(String[] args) {
double a = 12.3;
}
小数除法
public static void main(String[] args) {
double a = 1;
double b = 2;
System.out.println(a/b);
int c = 1;
int d = 2;
System.out.println(c*1.0/d);
}
char 字符型变量
Java当中 使用的是Unicode字符集
Unicode字符集: 包含了很多的语言–> 中文, 拉丁文…
ASSIC字符集: 只能表示英文相关的
public static void main(String[] args) {
char ch = 'a';
char ch2 = 97;
System.out.println(ch);
System.out.println(ch2);
}
打印26个字母
char ch = 'a';
char ch2 = 97;
for (int i = 0; i < 26; i++) {
System.out.print(ch2+" ");
ch2+=1;
}
System.out.println();
boolean 类型
/**
* boolean 类型 比较特殊 JVM没有明确大小
* @param args
*/
public static void main(String[] args) {
boolean flg = true;
boolean flg2 = false;
System.out.println(flg);
System.out.println(flg2);
}
下图就是学习过的数据类型了
public static void main(String[] args) {
int a = 10;
long b = 100L;
b = a;// 发生了隐式类型转换
a = b;//错误写法, 大类型转换不了小类型, 但是可以强制类型转换
a = (int) b;//强转会发生数据丢失 !
}
隐式类型转换一般发生在小类型 转换 为大类型
思考
字符串类型
单引号引起来的内容是字符
双引号引起来的是字符串
public static void main(String[] args) {
String str = "abcababerab";
System.out.println(str.length());// 3
System.out.println(str.toUpperCase(Locale.ROOT));//小写变大写
System.out.println(str.replace("ab", "NB"));//把ab换成NB
}
.length()
String --> int
int --> String
public static void main(String[] args) {
String str = "1234";
int a = Integer.parseInt(str);//把str内容换成数字
System.out.println(a+1);//1235
int i = 1234;
String ret = String.valueOf(i);
System.out.println();
}
呼~~~~~~~~~~~~可算码完了😍😍😍
2022年9月20日23:10:49