目录:
一、变量与常量
二、数据类型
三、标识符
四、定义变量
五、数据类型的转换
一、变量与常量
- ·通常将类的属性成为类的全局变量(成员变量),将方法中的属性称为局部变量。全局变量声明在类体中,局部变量声明在方法体中。全局变量和局部变量都有各自的应用范围。如下面的代码中s1是成员变量,s2是局部变量。
public class First
{
static String s1 = "你好";
public static void main(String[] args)
{
String s2 = "Java";
System.out.println(s1);
System.out.println(s2);
}
}
- 常量概述:在程序执行过程中,其值不可以发生改变的量
常量分类:
~字符串常量 用双引号括起来的内容(“HelloWorld”)
~整数常量 所有整数(12,-23)
~小数常量 所有小数(12.34)
~字符常量 用单引号括起来的内容(‘a’,’A’,’0’,'人')
~布尔常量 较为特有,只有true和false
~空常量 null
/*
常量:在程序执行的过程中,其值不可以发生改变的量
常量分类:
A:字符串常量 "HelloWorld"
B:整数常量 12,-23
C:小数常量 12.34
D:字符常量 'a','0'
E:布尔常量 true,false
F:空常量 null
*/
public class ChangLiang {
public static void main(String[] args) {
//字符串常量
System.out.println("HelloWorld");
//整数常量
System.out.println(12);
System.out.println(-23);
//小数常量
System.out.println(12.34);
//字符常量
System.out.println('a');
System.out.println('0');
//布尔常量
System.out.println(true);
System.out.println(false);
}
}
- 变量概述:在程序的执行过程中,在某个范围内其值可以发生改变的量,从本质上讲,变量其实是内存中的一小块区域。
变量定义格式:
~数据类型 变量名 = 初始话值;
~注意:格式是固定的,记住格式,以不变应万变。
二、数据类型
- 计算机存储单元
变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。
除了字节外还有一些常用的存储单位,大家可能比较熟悉,我们一起来看看:
~1B(字节) = 8bit
~1KB = 1024B
~1MB = 1024KB
~1GB = 1024MB
~1TB = 1024GB
- 数据类型概述和分类
1、为什么有数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存分配了不同大小的内存空间。
2、Java中数据类型的分类
基本数据类型
引用数据类型
基本数据类型
四类 | 八种 | 字节数 | 内存空间 | 取值范围 |
整形 | byte | 1 | 8位 | -128~127 |
整形 | short | 2 | 16位 | -32768 ~ 32767 |
整形 | int | 4 | 32位 | -2^31-1~2^31 (21 亿) |
整形 | long | 8 | 64位 | -2^61-1~2^61 |
浮点型 | float | 4 | 32位 | 1.4E-45~3.4028235E38 |
浮点型 | double | 8 | 64位 | 4.9E-324~1.7976931348623157E308 |
字符型 | char | 2 | 16位 | 表示一个字符,如(‘a’,'A','0',‘人’) |
布尔型 | boolean | 1 | 8位 | 只有两个值true和false |
***注意:不能以0作为十进制数的开头(0除外)。八进制必须以0开头。十六进制必须以0X或0x开头。
- 定义变量
1、基本数据类型变量的定义和使用
~变量的定义格式:
数据类型 变量名 = 初始化值;
~基本数据类型:
byte,short,int,long,float,double,char,boolean
***注意:整数默认是int类型,定义long类型的数据时,要在数据后面加L。
浮点数默认是double类型,定义float类型的数据时,要在数据后面加F。
public class VariableDemo {
public static void main(String[] args) {
//定义byte类型的变量
byte b = 10;
System.out.println(10);
System.out.println(b);
//定义short类型的变量
short s = 100;
System.out.println(s);
//定义int类型的变量
int i = 10000;
System.out.println(i);
//定义long类型的变量
long l = 1000000000000000L;
System.out.println(l);
//定义float类型的变量
float f = 12.34F;
System.out.println(f);
//定义double类型的变量
double d = 12.34;
System.out.println(d);
//定义char类型的变量
char c = 'a';
System.out.println(c);
//定义boolean类型的变量
boolean bb = false;
System.out.println(bb);
}
}
- 定义变量的注意事项
~变量未赋值,不能直接使用
~变量只在它所属的范围有效
变量在哪对大括号内,变量就属于哪对大括号
~一行上可以定义多个变量,但是不建议。
- 数据类型转换
~隐式数据类型转换:取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
/*
+:是一个运算符,做加法运算的。
我们在做运算的时候,一般要求参与运算的数据类型必须一致。
类型转换:
隐式转换
强制转换
隐式转换
byte,short,char -- int -- long -- float -- double
*/
public class TypeCastDemo {
public static void main(String[] args) {
//直接输出了运算的结果
System.out.println(3 + 4);
//定义两个int类型的变量
int a = 3;
int b = 4;
int c = a + b;
System.out.println(c);
//定义一个byte类型,定义一个int类型
byte bb = 2;
int cc = 5;
System.out.println(bb + cc);
//我能不能不直接输出,用一个变量接受呢?
//用变量接受,这个变量应该有类型
//可能损失精度
//byte dd = bb + cc;
int dd = bb + cc;
System.out.println(dd);
}
}
~强制类型数据转换
*强制类型转换的格式:
b = (byte)(a+b);
*强制类型转换的注意事项:如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
/*
强制转换:
目标类型 变量名 = (目标类型) (被转换的数据);
不建议强制转换,因为会有精度的损失。
*/
public class TypeCastDemo2 {
public static void main(String[] args) {
int a = 3;
byte b = 4;
int c = a + b;
//byte d = a + b;
byte d = (byte) (a + b);
}
}
终于写完了,零点52分,加油我的理想!!