目录
一、常量
常量即程序运行期间,固定不变的量
public class Test{
public static void main(String[] args){
System.out.println("Hello");//字符串常量
System.out.println(1);//整形常量
System.out.println(1.0); //浮点数常量
System.out.println('ABC');//字符常量
System.out.println(true);//布尔型常量
}
}
这些都是不同类型的常量,这些常量的分类其实就是数据类型。
二、数据类型
在java中数据类型分为基本数据类型和引用数据类型。
基本数据类型有四类八种
四类:整形、浮点型、字符型、布尔型
八种:
数据类型 | 关键字 | 内存占用 | 范围 |
字节型 | byte | 1 byte=8 bit | -128~127 |
整型 | int | 4byte | -2^31~2^31-1 |
短整型 | short | 2 byte | -32768~32767 |
长整型 | long | 8 byte | -2^63~2^63-1 |
单精度浮点数 | float | 4 byte | |
双精度浮点数 | double | 8 byte | |
字符型 | char | 2 byte | 0~65535 |
布尔型 | boolean | true/false |
整型默认为int型,浮点型默认为double型
三、变量
1.变量概念
对于经常要改变的内容称为变量
2.语法格式
数据类型 变量名 = 初始值
例如:
int age = 20;
3.整形变量
方法一
int a = 10;
System.out.println(a);
方法二
int b;
b = 10
System.out.println(b);
注意在定义int变量时不能超过int的范围,否则会报错。
在使用方法二时,如果在使用前没有赋值,则编译时会报错。
长整型变量
int a =10;
long b =10L;//为了区分int和long整型,一般建议在long变量后加上大写L
长整型在系统中占8个字节
long的包装类为Long
短整型变量
short a = 10;
System.out.println(a);
短整型在系统中占2个字节
short的包装类为Short
4.浮点型变量
int a = 1;
int b = 2;
System.out.println(a / b);
在java中,int / int仍然是int 会直接舍弃小数部分,所以如果想要得到小数,需要使用double类型来计算。
double a = 1.0;
double b = 2.0;
System.out.println(a / b);
double在系统中占8个字节
double的包装类为Double
float a = 1.0f;//或者1.0F
System.out.println(a);
5.字符型变量
char a = 'A';
char b = '1';
char c = '语言';
System.out.println(a);
System.out.println(b);
System.out.println(c);
注意:Java 中使用 单引号 + 单个字母 的形式表示字符字面值
如果c在javac中输出时有文字错误,则加入utf-8就可以
javac -encoding UTF-8
char的包装类型为Character
6.布尔型变量
布尔类型一般用于判断真假
boolean a = true;
boolean b = flase;
System.out.println(a);
System.out.println(b);
注意:
boolean类型的变量只有true和flase两种取值
boolean的包装类型为Boolean
7.类型转换
int a = 1;
long b = 100L;
b = a;//可以执行编译
a = b;//不可以执行编译
如图中,当数据类型不一致时,就会进行类型转换。
java类型转换主要分为两种:自动转换 和 强制转换
自动转换:
int a = 1;
long b = 100L;
b = a;//可以执行编译 b比a的范围大,可以将a提升到long类型,然后赋值
a = b;//不可以执行编译 a比b的范围小,如果转换,会有数据丢失
强制转换:
int a = 1;
long b = 100L;
b = a;
a = (int)b;//a的范围比b小,需要强转
总结:
不同类型的变量之间赋值时,范围更小的类型可以自动转型到范围大的类型
如果将范围大的类型赋值给范围小的类型时,选哟强制转换,但有可能发现精度丢失
强制转换不一定能每次都成功,不相干的类型不能互相转换(如int和boolean型)