0. 变量说明
变量是组成程序的基本单位,它是内存中某个存储空间的表示
变量三要素: 类型+名称+值
变量使用步骤: 声明,赋值,使用
变量在同一个作用域内不能重名
如下图,java的数据类型大致分为:
其中八大基本类型,包括byte, short, int, long, float, double, char, boolean是前期学习的基础,要熟练掌握。
1. 整数型
Java整数类型有固定的范围和字段长度,不受操作系统影响,保证java程序的可移植性
声明long型常量需要后加L或l
byte a = 1;
short b = -2;
int c = 3 ;
long d = 4L;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
2. 浮点型
Java浮点类型有固定的范围和字段长度,不受操作系统影响,保证java程序的可移植性
Java浮点类型中,double可直接声明, float在声明时要后加f或F
浮点数在表示时有两种形式,一种是十进制形式例如 5.12 5.12f .512 另一种是科学计数法,例如5.12e2 5.12E-2
double e = 0.125;
floatt f = 1.99765f;
double g = 3.1415926E2;
floatt h = 31.415E-2f;
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
浮点数使用陷阱:由于java中小数在进行存放时是会先转成2进制做一个近似处理,所以在判断两个浮点数的相等时要格外注意,慎用!
double num1 = 2.7;
double num2 = 8.1/3;
System.out.println(num1);
System.out.println(num2);
System.out.println(Math.abs(num1 - num2));
3.字符型
字符型char只能存放单个字符,英文字符、转义字符、中文字符都可,用单引号括起来。
char型的存储过程为:字符–>unicode码值–>二进制值–>存储空间
char型的读取过程为:二进制值–> unicode码值–>字符显示
由于char型是以整数形式进行存储的,因此可以进行运算。
char char1 = 'a';
char char2 = '\t';
char char3 = '韩';
System.out.println((int)char3); //输出3889
System.out.println('a'+1); //输出98
常见的几种编码方式:ASCII码,固定1个字节表示,因此2^8= 256(如下图1),字符量较少;Unicode码,固定2个字节,内含2^16=65536个字符,引入了中文等各国语言字符对应编码,将世界上所有符号都纳入其中,不会乱码,缺点是浪费存储空间;UTF-8码,大小可变的编码,字母使用1个字节,汉字2个字节,互联网上使用最广Unicode的改进版本;gbk码,字母1个字节,汉字2个字节。
快速查询unicode码的网址: https://tool.chinaz.com/Tools/unicode.aspx
4. 布尔型
布尔型boolean只有true和false两种取值,无null;布尔型常用于逻辑运算
不可以用0代替false,或非0代表true,这与其他语言不同。
boolean pass = true;
if(pass){
System.out.println("通过!");
}else{
System.out.println("未通过");
}
5. 数组
知识点概述:
1. 数组相当于是一个集合,里面可以存放多个同一类型的数据
2. 数组的初始化。数组有两种初始化方式,分别如下:
数组初始化方式1: 静态初始化
静态初始化就是在定义数组时,直接指定数组元素,让编译器来计算数组长度。静态初始化有两种形式:一种是不带new关键字,一种带有new关键字,两种方法的语法格式具体为:
数组初始化方式2: 动态初始化
动态初始化就是在定义数组时,只指定数组的长度,而后在使用时逐个给数组赋初值, 其语法格式为:
// 1-1 静态初始化
double hens[] = {
1.1, 2, 3.45, 7.8, 6.20}; //不带new的静态初始化
int arr[] = new int[]{
1,2,3}; // 带new的静态初始化(注意new int[], []不能带数字)
// 1-2 动态初始化
// 例1-->通过语句动态赋值
int a[] = new int[7];
a[0] = 1; a[1] = 2; a[2] = 3; a[3] = 4; a[4] = 5; a[5] = 6; a[6] = 7;
// 例2-->通过键盘输入动态赋值
// 程序功能: 从键盘输入5个学生的成绩,保存到数组中并输出
double scores[] = new double[5];
Scanner myScanner = new Scanner(System.in);
for(int i = 0 ; i < 5 ; i++){
System.out.println("请输入第" + (i+1) + "个学生的成绩");
scores[i] = myScanner.nextDouble