说实话,总结笔记挺花费时间的,正常一篇要两三个小时,因为我也要重新温习一遍知识,所以发表时间可能不稳定,看时间吧,宽裕的话,尽量坚持发。
前言
这一次,我们继续之前的,还是从基础开始讲起来。
一、变量
1.概念:变量相当于内存中一个数据存储空间的表示,通过变量名可以访问到变量(值)。
2.变量的三个不同要素:类型+名称+值
3.定义变量
①不同的变量,数据类型不同,占用空间的大小不同。
②变量必须:先声明,后使用,即有顺序。
③因为变量表示内存中的一个存储区域,(和该区域必须有自己的名称【变量名】类型【数据类型】),该区域的数据可以在同一类型范围内不断变化1(不同类型不能随意变化),同时,变量在同一个作用域内不能同名2。
解释:(1)比如说int num1 = 1;你将1赋值给了num1,其数据类型是整型,那么,你可以把其他的整型赋值给num1,比如说 num1=10;但是不能 num1 ="hello";这里hello是字符串类型的,而int 是整型的,两者不能随意相互转化(后面讲到数据类型时会详细讲解)。
(2)在同一个作用域中,如果两个变量同名的,系统将会报错,因为无法正确的辨别出,实际要输出的对象。比如:
int num1 = 10;
int num1 = 11;
System.out.println(num1);
结果会弹出:
二、程序中 + 号 的使用
1.当左右两边都是数值型时,则作加法运算。(char 型可以看作数值型,故char型的变量或着值可以参与运算)
eg:
System.out.println(10 + 10);
2.当两边有有一方为字符串(或者都是字符串String类型),则作拼接运算。数字与字符串的 “+”, 运算结果为字符串)
System.out.println("10" + 10);
3.运算顺序:从左到右
System.out.println(100 + 3);
System.out.println("100" + 3);
System.out.println(100 + 3 + "Hello");
System.out.println("Hello" + 100 + 3);
(很有意思,数字与字符串 相加+ 时,做拼接运算,此时整体都是字符串,在加一个数字,还是字符串。)
三、数据类型*
1.概述
关于基本数据类型可以看我之前C语言中总结的,大致内容一样。昨天先大概学了C语言,这是笔记,可能有不对的地方,请前辈们指出-CSDN博客
2.整数类型
不一样的:
①Java各整数类型有固定的范围和字段长度,不受具体操作系统的的影响
保证java程序的可移植性。
②Java的整型常量(具体值)默认为int型,声明long型常量须后加T或L
③java程序中变量常声明为int型,除非不足以表示大数,才使用long
bit:计算机中的最小存储单位,比特位。byte:计算机中基本存储单元,字节.1byte=8bit
3.浮点(小数)类型
1.浮点数 = 符号位 + 指数位 + 尾数位
2.浮点型有两种表示形式
①十进制数形式:(必须有小数)。
②科学计数法形式:5.12e2【5.12*10的二次方】。
3.浮点数使用陷阱:
2.7 和 8.1/3 是否相等
输出结果发现:double num2 = 8.1/3;
(输出2.666666667接近2.7)
因此:当我们对运算结果是小数的进行相等判断时,要小心应该是以两个数的差值的绝对值,在某个精度范围内判断。
注意:如果做选择题时:遇到double num1 = .512是否正确,判断为正确,整数为零,可以省略。
4.字符类型
解释:双引号“ ”中引的内容会被系统默认为字符串类型,而非字符。因此,在字符的赋值时要用单引号而非双引号。
1.举例说明:
char n1 ='\n';
char n2 = '\t';
char n3 = '\r';
char n4 = '\\';
char n5 = 97;
char n6 = 48;
char n7 = '3';
System.out.println(n1);
System.out.println(n2);
System.out.println(n3);
System.out.println(n4);
System.out.println(n5);
System.out.println(n6);
System.out.println(n7);
注意:有些人可能开始疑问了,为什么n5,n6定义的时97,48,输出时结果为什么是 a和0
char型输出时,是要以其对应的字符(编码表unicode码)的形式输出的。那如果我非要输出时为数值型,怎么办,强制类型转换。
System.out.println((int)n1);
2.char类型是可以运算的,相当于一个整数。因为他都对应有UNIcode码。
char n1 = 'a'+1;
System.out.println(n1);
3.字符类型的本质
4.ASCII码表一个字符由一个字节表示,一共128个字节,但实际上一个字节可以表示256个字符,但是只用了128个字节。(无法满足其他国家的应用,应此设计除了UNIcode编码表)码表。(但是,由于unicode使用时,有些浪费空间,所以就有了utf-8)。
ASCIl(ASC编码表一个字节表示一个128个字符,实际上一个字节可以表示256个字符,只用128个)
Unicode (Unicode编码表固定大小的编码使用两个字节来表示字符,字母和汉字统一都是占用两个字节, 这样浪费空间)
utf-8(编码表,大小可变的编码字母使用1个字节,汉字使用3个字节)
gbk (可以表示汉字,而且范围广,字母使用1个字节,汉字2个字节)
gb2312(可以表示汉字,gb2312<gbk)
big5码(繁体中文,台湾,香港)
5.字符和码值对应关系是通过字符编码表决定的(是规定好的),不同的编码对文件的大小有影响,对字符也有一定的影响。
5.boolean 布尔型
1.布尔类型数据只允许取值true 和false。没有null
注意:在Java中不可以用0或非0的整数代替false和true,这与c语言不一样。
eg:
2.boolean类型值占一个字节
3.boolean类型适用于逻辑运算,一般用于程序流程控制:
①while循环控制语句
②do-while循环控制语句
③for循环控制语句
总结
本次我主要总结了变量,程序中 + 号的使用,数据类型三个方面,关于数据类型的转换会再下一次笔记中提及,本篇中知识点介绍的截图是哔站上老师的课上的。