【JavaSE02】Java基本语法-思维导图 柔情只为你懂 2022-06-18 03:17 202阅读 0赞 **思维导图看不清楚时:** 1)可以将图片另存为图片,保存在本地来查看 2)右击在新标签中打开放大查看 ![这里写图片描述][SouthEast] \#1.注释 定义:用于解释说明程序作用的文字 注释类别 ## 单行注释 ## 格式: //注释文字 ## 多行注释 ## 格式: /\* 注释文字 \*/ ## 文档注释 ## 格式:/\*\* 注释文字 */ 区别于多行注释:多一个* \#2.关键字 定义:被Java语言赋予特定含义的单词,又称保留字 goto和const作为保留字存在,目前并不使用 **关键字有哪些** ![这里写图片描述][SouthEast 1] ![这里写图片描述][SouthEast 2] \#3.标识符 定义:程序中需要我们自己来命名的,比如类名,方法名,变量名 # 标识符命名规则 # * 由字母、数字、下划线、$组成,但不能以数字开头 大小写敏感 不得使用java中的关键字和保留字 建议采用驼峰式写法,比如定义一个系统用户类 SystemUser \#4.常量与变量 \#\#常量 程序中,固定不变的值 ## 变量 ## 变量用来存储程序执行中用到的数据 变量存储的数据是可以改变的 **变量定义格式** 数据类型 变量名 = 初始化值; \#5.数据类型 Java语言是强类型语言,对于每一种数据都定义了明确的数据类型,在内存中为每种数据类型分配了不同的内存空间 **数据类型** ![这里写图片描述][SouthEast 3] 各种类型数据占用空间与范围 ![这里写图片描述][SouthEast 4] ![这里写图片描述][SouthEast 5] 注意:char是占2个字节 **其他** * 1字节 = 8位,即2^8 * 数据分类的目的:合理利用内存 * 开发中:整数一般采用int和 long, 小数:double **规则** 1. 变量必须先声明,并且初始化后才能使用; 2. 声明变量必须有数据类型 3. 同一作用域内变量不能重复定义 4. 变量名小写开头 5. 变量的赋值不能越界 # 6,数据类型的转换问题 # 赋值时的转换 默认转换(把小的赋值给大的) byte-short-int-long-float-double 强制转换(把大的赋值给小的) **目标类型 变量名=(目标类型)变量值;** **运算时的转换,掌握+号运算符(默认转换)** \*\*注意:\*\*float类型数据赋值时,必须进行数据转换,因为小数默认为double类型 **转换方式:** 1.float a=(float)1.01; 在数值前加(float) 2.float a=1.01f; 在数值后面加f 所有的小数均默认是double类型,要用float类型时必须进行类型转换 在运算中直接使用的整数均为int类型,所以int类型一下的类型与其运算时都会变为int类型,若赋值给int一下的类型,则会损失精度。 如short a=2 ; a=a+2;输出a是会损失精度,因为a+2的结果为int类型,会溢出。 但“+=”会自动做类型转换,a+=2时,此时不会损失精度 \#6.表达式的概念 表达式的概念:操作数+运算符+操作数,就组成一个表达式 \#7.运算符 ## 算术运算符 ## 算术运算符(+、-、\*、/、%、++、–、注意区分前置和后置的区别) /和%区别:前者为除号,后者为取模 %(取模)的正负号由被除数(分子)决定,如3%2,-3%2结果分别为1和-1 \+加法运算:运算中从前往后执行,+(加号)前后数据一个为字符时,则都会转换为字符后运算 System.out.println(1+1+“1”);//21 System.out.println(“1”+1+1);//111 \+(加号):在左右操作数均为数值时,+为加号;若有一个是字符,+为连接符。 字符串和任意类型的数据相加,结果均为字符串 /除法结果数据类型 分子和分母同类型时,结果类型还是该类型,如10/3 结果为3. 10.0/3.0 结果为3.33335 若均为整数时,结果不会四舍五入,不会3.9取为4,结果是取去除余数得到的整数 分子和分母类型不同时,取范围大的数据类型,如10/3.0 结果为3.3335 n++:会先把原先的结果输出,再加1 \++n:会先加1后,在输出 int a = 8; int b = (a++)+(++a)+(a\*10);//118 分析:a++先输出8,在加1使a变为9;++a先加1再输出,a变为10;最后加100,得到118 注意: a.运算中对变量进行操作,会改变变量 b.println中对变量进行操作,也会改变变量 \#\#赋值运算符 赋值运算符(= , +=, -=, \*=, /=, %=) short s=1; s = s+1; //丢失精确度 运算时,ss + 1会转换为int类型 short s=1; s+=1;//s 2 运算时, += 会自动做类型转换的处理 \#\#关系(比较)运算符 ==:相等 !=:不相等 > :大于 > <:小于 > =:大于等于 > <=:小于等于 关系运算符的结果都是boolean类型,true 或者 false **注意:=和==区别** int x = 10; int y = 10; boolean flag = (x == y); //boolean flag = (x = y);//error 分析:先给x赋值为y,再给flag赋值,x为数值,flag为布尔值,会报错。将flag类型改为int就不会报错了 System.out.println(flag);//true boolean b1 = true; boolean b2 = false; boolean b3 = (b1 == b2); System.out.println(b3);//false boolean b4 = (b1 = b2);//flase 此时不存在上题的类型冲突,不会报错 \#\#逻辑运算符 &(与) 、|(或) 、!(非)&&(短路与)、||(短路或)、^(异或) **语法规则** & 一个为假,则为假 逻辑与 | 一个为真,则为真 逻辑或 !非false则true,非true则false && 一个为假,则为假 短路与 || 一个为真,则为真 短路或 ^ 两个不同,则为true,相同则为false **短路与和逻辑与的区别(&& vs & || vs |)** 短路与,只要前面可以确定结果是false,那么后面就不管了 逻辑与,就算前面可以确定结果是false,它也要去计算后面的值 短路或,只要前面可以确定结果是true,那么后面就不管了 逻辑或,就算前面可以确定结果是true,它也要去计算后面的值 证明逻辑与或和短路与非的区别 方法一 public class Zy07{ public static void main(String[] args){ //设计一个实验证明&和&&的区别 /* 结论: 短路与&&,只要前面可以确定结果是false,那么后面就不管了 逻辑与&,就算前面可以确定结果是false,它也要去计算后面的值 短路或||,只要前面可以确定结果是true,那么后面就不管了 逻辑或|,就算前面可以确定结果是true,它也要去计算后面的值 设计个实验证明这个结论 */ boolean c1 = 1>2&&2>(3/0); //boolean c1 = 1>2&2>(3/0); /*使用&时会报错,说3的除数不能为0,说明运算了后面的部分 而使用&&时不会报错 */ System.out.println(c1);//false } } 该法利用分母不能取零来判断 方法二 public class Test2{ public static void main(String[] args){ int a=1; int b=1; System.out.println(a<0&b++>0);//false System.out.println(b);//2 System.out.println(a<0&&b++>0); System.out.println(b);//2 } } 该法利用a和b是否发生变化来判断 \#\#三目运算符 格式: (关系表达式)?表达式1:表达式2; 如果关系表达式结果为true,运算后的结果是表达式1; 如果关系表达式结果为false,运算后的结果是表达式2; 练习:取两个数中的最大值 \#8.转义字符 定义:通过“\\”来改变后面所跟字符的含义 ![这里写图片描述][SouthEast 6] [SouthEast]: /images/20220618/4c4894e916464ac78db66634389384dd.png [SouthEast 1]: /images/20220618/0ba40d5a0a2245b4919f65de42a08db7.png [SouthEast 2]: /images/20220618/9f7f85b1117e4d23806d429017222807.png [SouthEast 3]: /images/20220618/8f532fb89f6f47f891475e0284af91ca.png [SouthEast 4]: /images/20220618/d8ad360f14f748ab9eebdc4baea04393.png [SouthEast 5]: /images/20220618/13fa478ec5184f36ac75c343024a62a5.png [SouthEast 6]: /images/20220618/dfc86014df474f41ba223bd10420dc6e.png
还没有评论,来说两句吧...