Java基础语法2-数据类型
2.数据类型
Java为强类型语言,要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
String name = "miyazhu";
int age = 18;
弱类型语言:VB、JavaScript
Java的数据类型分为两大类:基本类型、引用类型
基本类型 primitive type
数值类型
- 整数类型
- byte,占一个字节范围: -128~127,一个字节占8位,2的8次方
- short,占2个字节范围:-32768~32767,2的16次方
- int,占4个字节范围: -2147483648~2147483647,2的32次方
- long,占8个字节范围:-9223372036854775808~9223372036854775807,2的64次方
- 浮点类型
- float占4个字节
- double占8个字节
- 字符类型char,占2个字节
boolean类型-占1位其值只有true和false两个
public class Demo1 {
public static void main(String[] args) {
// 整数
int num1 = 10; // 最常用
byte num2 = 20;
short num3 = 30;
long num4 = 40L; // Long类型要在数字后加L
// 小数:浮点数
float num5 = 50.1f; // 浮点数要在数字后加f
double num6 = 63.345;
// 字符类型
char name = '朱';
char name2 = 'm';
// 字符串, String不是关键字,是类,不属于八大基本类型
// String words = "hello,little mm";
// 布尔值:是与否
boolean flag1 = true;
boolean flag2 = false;
}
}
整数拓展-进制
public class Demo2 {
public static void main(String[] args) {
int num1 = 12; // 默认十进制
int num2 = 012; // 0 八进制
int num3 = 0x12; // 0x 十六进制
int num4 = 0b1100; // 0b 二进制
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
}
}
结果显示:
12
10
18
12
浮点数拓展
public class Demo3 {
public static void main(String[] args) {
// 银行业务怎么表示?后续可用:BigDecimal,数学工具类
float num1 = 0.1f;
double num2 = 1.0/10;
System.out.println(num1);
System.out.println(num2);
System.out.println(num1==num2); // 结果为false,无限接近却不等于
System.out.println("=======");
float dec1 = 2391231231415926f;
float dec2 = dec1 + 1;
System.out.println(dec1);
System.out.println(dec2);
System.out.println(dec1==dec2); // 结果为true,因为数据超限导致的舍入误差
}
}
字符拓展
public class Demo4 {
public static void main(String[] args) {
char c1 = 'a';
char c2 = 'A';
char c3 = '1';
char c4 = '朱';
// 所有字符本质都是数字,根据Unicode表 97对应a 65对应A 26417对应汉字:朱 2字节 0-65536 = 2的2字节*8位次方,即2的16次方
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println((int)c1);
System.out.println((int)c2);
System.out.println((int)c3);
System.out.println((int)c4);
System.out.println("========");
// Unicode表范围:U0000 ~ UFFFF,即0~16*16*16*16,0~2的16次方
int num16 = 0x61; // 定义十六进制的61
System.out.println(num16); // 97
char ch1 = '\u0061'; // 十六进制的61为十进制的97,为字符:a
System.out.println(ch1);
System.out.println("========");
// 转义字符
// \t 制表符
// \n 换行
// 等...
System.out.println("\t1.第一点\nHelloWorld");
}
}
显示如下:
a
A
1
朱
97
65
49
26417
========
97
a
========
1.第一点
HelloWorld
关于字符串的一个知识点
public class Demo5 {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "hello";
System.out.println(s1==s2); // 结果:true
String sb1 = new String("hello");
String sb2 = new String("hello");
System.out.println(sb1==sb2); // 结果:false
}
}
引用类型 reference type
类、接口、数组