【Java基础知识14讲-03:Java的数据类型】
- 3.1基本数据类型
boolean, byte, char, short, int, long, float, double
引⽤数据类型
类(class)
接⼜(interface)
数组
逻辑类型boolean
常量:true,false
例如
boolean x = true;
boolean y =false
- 3.2整数类型
整数类型
常量:123,665555577777L
具体类型
int
short
long
byte
不同类型占⽤空间不同
不同类型可以表达的范围不同
整数类型int
常量:123,-1
内存占⽤4个字节(byte)
取值范围:(-2的31次方 ~ 2的31次方-1)
例如
int x = 10000;
int y =-7;
New一个新的工程
Next:》
Next》给新的工程命名如“case2”==》finish
==》new Windows
新建一个java类,如下图:
接下来命名类的名字:如“Basic”
新工程建成后如下图:
此时,新建工程已建成。
调节字体大小:
File >> settings >> editor >> colors&fonts >> font 即可调节字体大小
数据超长问题举例:如int 超出范围
程序举例:
public class Basic {
public static void main(String[] arrgs){
int x = 10;
int y;
y = 20;
System.out.println(x);
System.out.println(y);
//int 的取值范围是-2的31次幂~~2的31次幂减1,若超出范围会这样
//int number = 999999999999; //此时IDE会提示integer number too large
int number =9999;
int number1 = Integer.MAX_VALUE; //JAVA中有次静态变量Integer.MAX_VALUE代表int的最大数值
System.out.println(number1);
System.out.println("number1 + 1 =" +(number1 +1)); //若输出的数超出int范围后,会溢出,输出后为负数,
}
}
/*以下内容为在IntelliJ IDEA上run后的结果:
- 3.3整数类型short
整数类型short
常量:123,-1
内存占⽤2个字节(byte)
取值范围:(-2的15次方 ~ 2的15次方-1)
例如
short x = 100;
short y = -7;
整数类型long
常量:123L,-1L
内存占⽤8个字节(byte)
取值范围:(-2的15次方 ~ 2的15次方-1)
例如
long x = 1000L;
long y = -7L;
若long型赋值给int型变量会报错,如下图:
字节类型byte
常量:123,-1
内存占⽤1个字节(byte)
取值范围:(-2的7次方 ~ 2的7次方-1)
例如
byte x = 123;
byte y = -7
- 3.4浮点数类型:
浮点类型float (单精度) (用大写F或小写f表示均可)
常量:453.5439f,21379.987F,2e7f
(注:2e7代表2 x 107)
内存占⽤4个字节(byte)
例如
float x = 123.903f;
float y = -1.23f;
浮点类型double (双进度)(后缀d表示,默认双精度,可以不后缀d)
常量:453.5439d,21379.987,2e7
内存占⽤8个字节(byte)
例如
double x = 123.903;
double y = -1.23;
错误举例如下图:
Java代码举例如下:
public class Basic {
public static void main(String[] arrgs){
int x = 10;
int y;
y = 20;
System.out.println(x);
System.out.println(y);
//int 的取值范围是-2的31次幂~~2的31次幂减1,若超出范围会这样
//int number = 999999999999; //此时IDE会提示integer number too large
int number =9999;
int number1 = Integer.MAX_VALUE; //JAVA中有次静态变量Integer.MAX_VALUE代表int的最大数值
System.out.println(number1);
System.out.println("number1 + 1 =" +(number1 +1)); //若输出的数超出int范围后,会溢出,输出后为负数,
//long型变量举例
//x = 1000L; //上面x变量为int,此时赋值long,会报错,IDE提示不相容的类型
//float 类型举例
float numFloat1 ;
//numFloat1 = 1.23; //1.23后面若不加f。会提示错误,因为变量是float,不加f默认是双精度d
numFloat1 = 1.23f;
double numDouble1 = 1.2345; //不加d,默认是双精度d
System.out.println(numFloat1);
System.out.println(numDouble1);
}
}
/*以下内容为在IntelliJ IDEA上run后的结果:
- 3.5字符类型:
字符类型char
常量:‘a’ //单引号括起来
内存占⽤2个字节(byte),每⼀个字符对应唯⼀数值
例如
char ch1 = ‘a’;
char ch2 = 97;
以上其实是一个字符,字符‘a’对应数值97。
表示字符单引号或者换行时,会提示不是有效字符
*如何表示单引号和换行呢,如下:使用转义 *
Char程序举例:
public class Basic {
public static void main(String[] arrgs){
int x = 10;
int y;
y = 20;
System.out.println(x);
System.out.println(y);
//int 的取值范围是-2的31次幂~~2的31次幂减1,若超出范围会这样
//int number = 999999999999; //此时IDE会提示integer number too large
int number =9999;
int number1 = Integer.MAX_VALUE; //JAVA中有次静态变量Integer.MAX_VALUE代表int的最大数值
System.out.println(number1);
System.out.println("number1 + 1 =" +(number1 +1)); //若输出的数超出int范围后,会溢出,输出后为负数,
//long型变量举例
//x = 1000L; //上面x变量为int,此时赋值long,会报错,IDE提示不相容的类型
//float 类型举例
float numFloat1 ;
//numFloat1 = 1.23; //1.23后面若不加f。会提示错误,因为变量是float,不加f默认是双精度d
numFloat1 = 1.23f;
double numDouble1 = 1.2345; //不加d,默认是双精度d
System.out.println(numFloat1);
System.out.println(numDouble1);
//字符 char 类型举例, 字符‘a’就对应数值 97
char ch1 = 'a';
char ch2 = 97;
System.out.println("ch1=" + ch1); //打印时的双引号中的“ch1 +”代表是字符串,会直接打印出来
System.out.println("ch2=" + ch2);
char ch3 = 'A';
char ch4 = 'A' + 1; //即ch4 等于‘A’的编码再加1
System.out.println("ch3=" + ch3);
System.out.println("ch4=" + ch4);
char ch5 = '1'; //带单引号代表为 1 这个字符
char ch6 = 1; //代表 编码=1 的字符
char ch7 = 49;
System.out.println("ch5=" + ch5); //输出为1
System.out.println("ch6=" + ch6); //可以看到没有输出,因为编码1的字符为不可打印字符
System.out.println("ch7=" + ch7); //输出后也为1,说明1 这个字符的编码为49
char ch8 ='\''; //表示 单引号这个字符时,需要用转义符号 反斜杠
System.out.println("ch8=" + ch8);
}
}
/*以下内容为在IntelliJ IDEA上run后的结果:
- 3.6Java基本数据类型转换
把⼀种基本数据类型变量转变为另⼀种基本数据类型
基本数据类型按照精度和范围排序(从低到⾼)
byte short int long float double
级别低的变量赋给级别⾼的变量,系统⾃动转换
int x = 3;
long y = x;
级别⾼的变量赋给级别低的变量,需要显⽰转换(也叫强制转换)
double x = 3.56;
int y = (int) x;
Java程序举例如下:
public class Basic {
public static void main(String[] arrgs){
int x = 10;
int y;
y = 20;
System.out.println(x);
System.out.println(y);
//int 的取值范围是-2的31次幂~~2的31次幂减1,若超出范围会这样
//int number = 999999999999; //此时IDE会提示integer number too large
int number =9999;
int number1 = Integer.MAX_VALUE; //JAVA中有次静态变量Integer.MAX_VALUE代表int的最大数值
System.out.println(number1);
System.out.println("number1 + 1 =" +(number1 +1)); //若输出的数超出int范围后,会溢出,输出后为负数,
//long型变量举例
//x = 1000L; //上面x变量为int,此时赋值long,会报错,IDE提示不相容的类型
//float 类型举例
float numFloat1 ;
//numFloat1 = 1.23; //1.23后面若不加f。会提示错误,因为变量是float,不加f默认是双精度d
numFloat1 = 1.23f;
double numDouble1 = 1.2345; //不加d,默认是双精度d
System.out.println(numFloat1);
System.out.println(numDouble1);
//字符 char 类型举例, 字符‘a’就对应数值 97
char ch1 = 'a';
char ch2 = 97;
System.out.println("ch1=" + ch1); //打印时的双引号中的“ch1 +”代表是字符串,会直接打印出来
System.out.println("ch2=" + ch2);
char ch3 = 'A';
char ch4 = 'A' + 1; //即ch4 等于‘A’的编码再加1
System.out.println("ch3=" + ch3);
System.out.println("ch4=" + ch4);
char ch5 = '1'; //带单引号代表为 1 这个字符
char ch6 = 1; //代表 编码=1 的字符
char ch7 = 49;
System.out.println("ch5=" + ch5); //输出为1
System.out.println("ch6=" + ch6); //可以看到没有输出,因为编码1的字符为不可打印字符
System.out.println("ch7=" + ch7); //输出后也为1,说明1 这个字符的编码为49
char ch8 ='\''; //表示 单引号这个字符时,需要用转义符号 反斜杠
System.out.println("ch8=" + ch8);
//类型转换
double numDouble = 3.56;
// int numInt = numDouble ; //这种方法提示错误,需要强制转换
int numInt = (int) numDouble ;
System.out.println("numInt=" + numInt);
//在计算的时候也会自动转换,如下
System.out.println("10/3=" + (10/3)); //输出3,因为两个操作数10,3都是int类型,所以结果也是int类型
System.out.println("10/3.0=" + (10/3.0));
/*以上输出3.333。。为double浮点型,因为除数3.0为double型,
java会把被除数10页转为double型,所以结果为double型。
java把低级别的数据类型转换为高级别的,结果也为高级版的数据类型
*/
}
}
/* 在IntelliJ IDEA 中输出结果如下:
- 3.7字符串类型
String
不属于基本数据类型
由零个或多个字符组成的字符序列
字符序列中字符的个数称为字符串的长度
例如: “hello”, “123”, “I am a student”
注意:双引号括起来
默认值为null,表⽰暂时还没有任何指向的内存空间