我们在实际开发当中,少不了对数据的处理,那我们需要怎么进行处理呢?不可能直接对数据进行处理,这样就会特别麻烦、也会导致数据不安全,所以我们就需要用到数据类型 ,变量(容器),下面我们就来了解数据类型和变量的作用以及用法。
1、数据类型概念就是用了保存数据的一个类型,一种数据类型,只能保存该类型的数据值。
1.1、作用只有了解数据类型,才能选择合适的类型存放数据,才能更好的利用计算机硬件资源(内存和硬盘等)。不同的数据类型存放的数据大小是不同的。数据类型的使用方式就是用来声明一个变量,装数据的。 1.2、数据类型分类
8种数据类型的范围和占用内存大小。
常用的整数类型是 int 、 long ,byte 和 short 基本不用,常用的小数类型是 double ,float 基本不用,因为 double 是不精确的,在实际开发中表示精确的小数。我们使用 BigDecimal 类(使用在金额,关于钱的地方)。
计算机存储数据:存储在硬盘【磁盘】,硬盘中的方式都是用【 二进制 】数据的方式进行存储 01010101010101010101010101010101
计算机底层本质存储的数据形式,就是二进制数据,例如:0101010101010101
2、基本数据类型 2.1、整数类型整数类型包含 byte 、short 、int 、long。
整数的默认类型为 int 。
为什么需要需要整数有四种类型?
因为不同的数据类型,占用的内存空间是不一样的,能够存储值的范围也就不一样。
注意事项:
- byte 的范围大小 [ -128 ~ 127 ]。long 赋值时,因为整数默认是 int 类型,需要转换为 long 类型的值,后面加上 l(L) 【建议写(大写L)】。超过了 long 的范围,用 BigInteger 的类来存放其值。同一个整数可以使用不同的进制表示。
浮点数类型包括:float、double 。
浮点数默认类型为:double 。
浮点数可以理解为表示的小数:
注意事项:
- 直接赋值给 float 类型,需要加上 F 或 f ,因为默认类型都为 double 。精度损失,如 double d = 1.0 表示的是无限接近于 1.0 的一个小数,而不是真正的 1.0 。如果需要精确的表示一个小数,可以使用 BigDecimal 。单精度与双精度的区别:
- 对于单精度浮点数,运行速度相比 double 更快,占内存更小,但是当数值非常大或非常小的时候就会变得不精确。双精度比单精度表示的位数大,精确的位数多,简单的说,float 表示的小数点位数少。
初学建议用 double 类型,而实际开发用 BigDecimal 类型表示小数。
2.3、字符类型
- 什么是字符:单引号引起来的一个符号就是字符数据。例如: ' a ' ;占用内存空间:16 位,占用 2 个字节;表示范围 [ 0,65535 ] 字符常量使用单引号 ' ' 引起来。使用方式:
- 特殊字符使用 ( 需要使用转义符号转义 )
- r 表示回车符;
- n 表示换行符;
- t 表示相当于Table键制表符,;
- b表示退格键,相当于Back Space键;
- ’表示单引号;
- ” 表示双引号;
- \ 表示一个斜杠。
-
注意:因为系统差异性,在不同的系统中 ,有时候r起作用,有时候n起作用。所以,一般建议:rn 连用,这样可以在任意系统中都可以换行。
- ' a ',' 1 ',' 好 ' 等最常用。使用一个数字表示字符,参考下图中 ASCII 码表[字符编码]。关于ASCII码表请百度了解。 例如:char c = 65; // 表示 ' A ' 这个字符。
16 进制表示一个字符。例如:char c = 'u0041'; // 十六进制的 0041,是十进制的 65,在字符集中对应的是 A 字符。
2.4、布尔类型
只有两个值:true、false,不能使用:0和1表示。
2.5、进制大家都可以看到上面的基本类型都有一个表示范围,那么这个表示范围是怎么算出来的呢?这就必须通过学习计算机保存数据的底层原理才能了解。
计算机的底层保存数据都是通过二进制来完成的,所以,我们需要学习一下进制。
二进制:逢二进一 ,只有0和1。二进制的10表示十进制的2
八进制:逢八进一 ,0 1 2 3 4 5 6 7。二进制的10表示十进制的8
十进制:逢十进一 ,默认进制
十六进制:逢十六进一,0 1 2 3 4 5 6 7 8 9 A B C D E F。二进制的10表示十进制的16。
2.6、引用数据类型除了基本类型以外,几乎所有的其他类型都是引用类型。 如:java自带的类、我们自定义的类、接口、枚举、数组等都属于引用数据类型。
类 class
接口 interface
枚举 enum
抽象类 abstract class
数组 数据类型[ ]
String 类是java中一种自带的引用数据类型,表示字符串数据。
语法:
// 使用双引号 包含字符内容。 String s = "你好"; System.out.println(s); // 你好3、常量 3.1、常量概念
常量就是一个固定不变值。例如 123,45,1.2,false等。
3.2、常量分类
整数常量,所有整数,如 1、2、3、100、200 等。
小数常量,所有小数,如 1.2、2.7、3.14 等。
字符常量,用单引号括起来的符号如,' A '、' a '、' 好 ' 等。
布尔常量,只有 true 和 false,分别表示对与错。
字符串常量,使用双引号括起来的内容如:" 早上好 "、" 贤叔同学 " 等。
3.3、代码案例
public class Constant {
public static void main(String[] args) {
System.out.println(1); // 整数常量 1
System.out.println(2); // 整数常量 2
System.out.println('a'); // 字符常量 a
System.out.println('b'); // 字符常量 b
System.out.println(3.14); // 小数常量 3.14
System.out.println(3.17); // 小数常量 3.17
System.out.println(true); // 布尔常量 true
System.out.println("adskljfalsdijfla sd rn fpor9 02 t 384r489423");// 字符串常量
long lon = 2147483647; // 2147483647 是int最大值
// long lon2 = 2147483648; // 2147483648 超过 int类型表示范围
long lon3 = 2147483648L; // 2147483648 int类型
}
}
4、变量
4.1、变量引入
4.2、变量概念
public class Constant {
public static void main(String[] args) {
System.out.println(1); // 整数常量 1
System.out.println(2); // 整数常量 2
System.out.println('a'); // 字符常量 a
System.out.println('b'); // 字符常量 b
System.out.println(3.14); // 小数常量 3.14
System.out.println(3.17); // 小数常量 3.17
System.out.println(true); // 布尔常量 true
System.out.println("adskljfalsdijfla sd rn fpor9 02 t 384r489423");// 字符串常量
long lon = 2147483647; // 2147483647 是int最大值
// long lon2 = 2147483648; // 2147483648 超过 int类型表示范围
long lon3 = 2147483648L; // 2147483648 int类型
}
}
4、变量 4.1、变量引入
变量:就是一个盒子(容器),用来装数据的。同一时间只能装一个数据。
4.3、变量作用变量作用:用来装好数据,进行运算处理的。
4.4、变量使用变量是内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),Java中每个变量必须先声明,后使用, 该区域的数据可以在同一类型范围内不断变化。
(变量可以理解为装某种类型数据的容器,容器可以重复使用)
声明变量:
语法:数据类型 变量名;
例如:int age; // 声明一个int类型的变量age(年龄)
注意:
声明变量可以同时声明多个变量【不建议】
语法:数据类型 变量名1, 变量名2, 变量名3...; // 值和变量的类型必须相同 或者
语法:数据类型 变量名1 = 值1, 变量名2 = 值2, 变量名3 = 值3...; // 值和变量的类型必须相同
例如: int age, age2, age3; 或者 例如: int age = 1, age2 = 2, age3 = 3;
变量赋值:
语法:变量名 = 值; // =右边的值,赋值给 =左边的变量。注意:必须保证值和变量的数据类型一致。
例如:age = 23; // 将23赋值给变量age。注意:必须保证值23和变量age的数据类型一致。
注意:
声明变量同时赋值 语法:
数据类型 变量名 = 值; // 值和变量的类型必须相同。
变量取值:
语法:变量名;
使用方式:
1. 直接打印输出。
2. 做运算(+,-,*,/....)。
3. 赋值给另外的变量。
4. 作为方法参数使用。
5、代码案例1:
public class Var {
public static void main(String[] args) {
// ================== int类型变量使用 =========================
// 1. 声明变量,语法:数据类型 变量名; 例如:int age;
int score;// 声明一个int类型变量score
// 2. 变量赋值,语法:变量名 = 值; 就是将 = 右边的值,赋值给 = 左边的变量。注意:必须保证值和变量的数据类型一致
score = 0; // 将 int 类型的值 0 通过 = 赋值给 = 左边的变量 score
// 1. 直接打印输出变量score
System.out.println(score); // 0
// 2. 做运算(+,-,*,/....) score + 1
score = score + 1; // 将变量score中的值0取出来,加上1后,重新赋值给 score 保存。这时,score 的值就是1
// 重新打印 score 的值
System.out.println(score); // 1
// 3. 赋值给另外的变量
int score2 = score; // 声明一个 int 类型的变量 score2,赋值为 变量 score 的值
// 打印变量 score2
System.out.println(score2); // 1
// 重新打印 score的值
System.out.println(score); // 1
}
}
6、代码案例2:
public class Var2 {
public static void main(String[] args) {
// =============================== byte类型 ====================================
// 1. 变量声明 语法: 数据类型 变量名;
byte byt; // 声明一个 byte 类型的变量 byt
// 2. 变量赋值:语法:变量名 = 值; 将=右边的值,赋值给 = 左边的变量。注意:必须保证值和变量的数据类型一致
// byt = 128; // byte表示范围[-128,127]超过表示范围了
byt = 127; // 将=右边的byte值127,赋值给 =左边的变量byt保存。 注意:必须保证值和变量的数据类型一致
// 3. 变量取值,语法:变量名;
// 使用方式1: 1. 直接打印输出
System.out.println(byt); // 127
// 1.5 声明变量同时赋值 【掌握】语法:数据类型 变量名 = 值; // 值和变量的类型必须相同
byte byt2 = -128; // 声明一个byte类型变量byt2直接赋值为-128
// 直接打印输出变量byt2
System.out.println(byt2); // -128
int a, b, c; // 同时声明int类型a/b/c三个变量
// 赋值方式相同 :变量名 = 值;
a = 1;
b = 2;
c = 3;
int e = 1, f = 2, g = 3; // 同时声明int类型e/f/g三个变量,同时给e赋值1,给f赋值2,给g赋值3
// =============================== short类型 自己写 ====================================
// 1 声明变量同时赋值,语法:数据类型 变量名 = 值; 例如:short s = 1;
// 声明一个short类型变量,直接赋值为1
// 2. 变量取值: 语法:变量名;
// 使用方式1: 1. 直接打印输出
//=============================== long类型 ====================================
// 1 声明变量同时赋值,语法:数据类型 变量名 = 值; 例如:long lon = 1L;
long lon = 1L; // 声明一个long类型变量,直接赋值为long类型值1L。【注意:long类型值必须加上大写L】
// 2. 变量取值: 语法:变量名;
System.out.println(lon); // 使用方式1: 1. 直接打印输出
//=============================== boolean类型 ====================================
// 1 声明变量同时赋值,语法:数据类型 变量名 = 值;
boolean boo = true; // 声明一个boolean类型变量,直接赋值为true。
// 2. 变量取值: 语法:变量名;
// 使用方式1: 1. 直接打印输出
System.out.println(boo);
// =============================== float 类型【单精度浮点型】 ====================================
// 1 声明变量同时赋值,语法:数据类型 变量名 = 值;
// float flo = 3.14; // 报错,因为3.14默认是double类型,类型比float更大
float flo = 3.14f; // 声明一个float类型变量,直接赋值为3.14F。【赋值的时候必须加上F/f,因为 浮点类型默认是double类型】
// 2. 变量取值: 语法:变量名;
System.out.println(flo); // 使用方式1: 1. 直接打印输出
// =============================== double 类型【双精度浮点型】 ====================================
// 1 声明变量同时赋值,语法:数据类型 变量名 = 值;
double doub = 3.14; // 声明一个double类型变量,直接赋值为3.14。
// 2. 变量取值: 语法:变量名;
// 使用方式1: 1. 直接打印输出
System.out.println(doub);
// 科学计数法
double doub2 = 3.14E2; // 表示 3.14 * 10^2
System.out.println(doub2);
double doub3 = 3.14E-2; // 表示 3.14 / 10^2
System.out.println(doub3);
// =============================== String 字符串类型(引用类型) 最常用【掌握】====================================
// 1 声明变量同时赋值,语法:数据类型 变量名 = 值;
String str = "abc"; // 声明一个String类型变量str,直接赋值为"abc"。
// 2. 变量取值: 语法:变量名;
System.out.println(str); // 使用方式1: 1. 直接打印输出
// +在字符串中表示连接符号,也就是拼接符号
str = str + "123"; // 将String变量str中值abc取出来,然后通过+号拼接 123,重新赋值给 str
// 重新打印str
System.out.println(str); // abc123
// +在字符串出现之前,表示加法运算,字符串之后表示拼接符号
System.out.println(1 + 2 + "ab" + 1 + 2); // 3ab12
// =============================== char 类型 最常用【掌握】====================================
// 1 声明变量同时赋值,语法:数据类型 变量名 = '值'; // 值必须是单个字符
char ch = 'a'; // 声明一个char类型变量ch,直接赋值为'a'。
// 2. 变量取值: 语法:变量名;
System.out.println(ch); // a 使用方式1: 1. 直接打印输出
// 1 声明变量同时赋值,语法:数据类型 变量名 = 值;
char ch2 = '好'; // 声明一个char类型变量ch2,直接赋值为'好'。
// 2. 变量取值: 语法:变量名;
System.out.println(ch2); // 使用方式1: 1. 直接打印输出
// 1 声明变量同时赋值,语法:数据类型 变量名 = 值;
char ch3 = '1'; // 声明一个char类型变量ch3,直接赋值为'1'。
// 2. 变量取值: 语法:变量名;
System.out.println(ch3); // 使用方式1: 1. 直接打印输出
// 希望打印变量的时候,格式如下:变量名 = 变量值;
System.out.println("ch3 = " + ch3); // ch3 = 1
// =============================== char 类型 以下4种使用作为了解 ============================
// 使用方式2: 声明char类型变量赋值为 int值 注意,不能超过char的表示范围:[0,65535]
char ch4 = 65; // 将65所对应的字符A赋值给ch4
System.out.println(ch4); // A
// char ch5 = 65536; // 65536超过char的表示范围:[0,65535]
// System.out.println(ch5); //
// 使用方式3: 声明int类型变量赋值为char值
int i = 'A'; // 这里是将字符A所对应的int值赋值给变量i
System.out.println(i); // 65
// 使用方式4:十六进制的表示[unicode]
char ch6 = 'u0041'; // 0041是十进制的65,在字符集中对应的是A字符
System.out.println(ch6); // A
// 使用方式5:特殊字符的使用。 '
System.out.println('''); // 表示转移符号,就是表示 'Java中的'
System.out.println('\'); //
System.out.println('r'); // 换行
System.out.println('n'); // 回车
System.out.println('t'); // tab键
System.out.println("=======rn====="); // 建议大家换行连用 rn
}
}
7、注意事项:
1. 此处的数据类型可以是Java中支持的所有的数据类型!
2. 数据类型限定了变量可以存值的类型。
3. 赋值使用的 = 号,从右往左赋值。
4. 规范写法:= 两边都加上一个空格。
5. 变量一旦定义好了,可以反复使用。
6. 变量只可以存一个值,下次存值会覆盖上一次的值。



