变量篇
-
为什么需要变量?
- 定义:变量是程序的基本组成单位。
- 变量的三个要素:类型、名称、值
-
变量的介绍
- 概念:变量相当于内存中一个数据存储空间的表示
- 变量使用步骤:
- 声明变量:int a;
- 赋值:a = 20;
- 结合:int a = 20;
-
注意事项
- 变量:表示内存中的一个区域【不同变量,类型不同,空间不同】
- 例如:int 4个字节、double 8个字节等
- 必须先声明,后使用
- 变量在同一作用域不能重名
- 变量 = 数据类型 + 变量名 + 值
- 如:int a = 3;
- 变量:表示内存中的一个区域【不同变量,类型不同,空间不同】
-
程序中的 +号
-
左右两边都是数值类型,表示加法运算
int a; a = 10 + 20; System.out.println(a); // 30
-
左右两边有一方为字符串,表示拼接运算
int a; a = 10 + "good"; System.out.println(a); // 10good
-
运算顺序,是从左到右
int a; a = 3 + 10 + "good"; System.out.println(a); // 13good
-
-
数据类型
- 分配不同大小的内存空间
- 如:一个人住店,单人床;两个人住店,双人床,按需选择
- 数据类型分为:
- 基本数据类型(后面数字表示字节数)
- 数值型:
- 整型:byte-1、short-2、int-4、long-8
- 浮点型:float-4、double-8
- 字符型:char-2
- 布尔型:boolean-1
- 数值型:
- 引用数据类型
- 类
- 接口
- 数组
- 基本数据类型(后面数字表示字节数)
- 分配不同大小的内存空间
-
整型细节
-
整型常量默认为int型,long型常量须后加 ‘l’ 和 ‘L’
-
bit是计算机的最小存储单位,byte是计算机基本存储单位 1 B = 8b
-
使用时,就高不就低,比如:房间大的能装下,房间小的东西,反之小的装不下大的。
int a = 20; // 对,默认类型为int int b = 20L;// 错,20L为long为8个字节,int为4个字节 byte c = 20; // 对,这种情况,只要变量值(20)在byte的范围内就可以 // 1个字节范围:-128~127 byte d = 128; // 错
-
-
浮点类型
-
所谓的小数,如:3.14、4.121等
-
分类:
- 单精度float-4
- 双精度double-8
-
浮点数结构:
- 浮点数 = 符号位 + 指数位 + 尾数位
- 尾数部分可能丢失,所得结果不准确(近似值)
-
细节:
-
浮点型常量默认为double型,声明float型常量,须后加‘f’ 或 ’F‘
-
两种表示方式:
- 十进制形式(平时用的较多):3.14、313.0f .512(必须有点)
- 科学计数法:5.12e2
- 注记:e前必须有数,e后必须为整数
-
double比float更精准
-
浮点数陷阱:2.1 和 6.3 / 3 比较
double num1 = 2.1; double num2 = 6.3 / 3; System.out.println(num1);// 2.1 System.out.println(num2); // 接近2.1,不是2.1
-
-
-
Java API 文档
- API:应用程序编程接口
- Java中的大量基础类,由Oracle公司为提供了API文档,告诉开发者咋用这些类和类中的方法
- 按照:包-》类-》方法
-
字符类型
-
介绍:可以表示单个字符,类型为char-2,可表示汉字
-
细节:
-
用 ’ ’ 引用
-
允许使用转义字符’ \ ’
-
char类型可进行运算,相当于一个整数
-
可直接数超出char的值,会有对应的unicode字符输出 a == 97; A == 65
char ch = 'a'; System.out.println(ch); // 97
-
-
-
布尔类型
- 介绍:boolean类型,只能取true或false
- boolean-1
- boolean使用程序的逻辑判断
- if、while、for等
-
基本数据类型转换
-
自动类型转换:
- char、byte、short --》int
- int -》long
- long -》float
- float -》double
- 箭头后面的,可自动转换为箭头前面的类型
-
细节:
-
多种类型进行运算,将所有类型转换为最高数据类型
-
byte、short、char之间不会进行转换,他们之间运算会转换为int
char a = 'a'; short s = 12; byte b = 2; Sytem.out.println(a + s + b); // 为int类型
-
boolean不参与运算
-
-
强制类型转换:
-
将容量大的转换为容量小的类型,需要加上(),可能造成错误
-
细节:
-
char类型可以保存int类型的常量,但不能保存int的变量值,需要转换
char c1 = 200; //ok int m = 200; //ok char c2 = m; // 错误 char c3 = (char)m; /ok
-
大数据类型–》小数据类型,需要强转
-
-
-
-
基本数据类型和String类型转换
-
介绍:常常进行 基本数据类型 和 String类型转换
-
基本数据类型转String类型:
-
需要在基本类型的值 + “ ”即可
int n1 = 100; float n2 = 1.1f; double n3 = 3.4; boolean b1 = true; String str1 = n1 + ""; String str2 = n2 + ""; String str3 = n3 + ""; String str4 = b1 + "";
-
-
String类型转基本数据类型:
-
需要通过基本类型的包装类调用parseXX方法即可
Integer.parseInt("123"); Double.parseDouble("123.1"); Float.parseFloat("123.45"); Short.parseShort("12"); Long.parseLong("12345"); Boolean.parseBoolean("true"); Byte.parseByte("12");
-
-
注意:
- String类型转换为基本数据类型时,要确保类型能够转成有效的数据,比如我们把“123”可以转为一个整数,但不能把“hello”转成一个整数
- 如果格式不对,会抛出异常,程序结束
-