JavaSE_第2章【Java基础语法】
学习目标
- 会使用单行注释和多行注释
- 能够辨识关键字
- 理解标识符的含义
- 理解Java中的基本数据类型分类
- 能够理解常量的概念
- 能够定义8种基本数据类型的变量
- 能够分清楚两种输出语句的区别
- 了解进制
- 理解基本数据类型的自动类型转换
- 理解基本数据类型的强制类型转换
- 了解ASCII编码表和Unicode编码表
- 理解int类型和char类型的运算原理
- 理解运算符++ --的运算方式
- 理解+符号在字符串中的作用
- 掌握算术运算符
- 掌握赋值运算符
- 掌握比较运算符
- 理解逻辑运算符
- 掌握三元运算符的格式和计算结果
- 了解位运算符
2.1 注释(Comment)
- 注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。
- Java中有、和
- 单行注释以 开头,以结束,格式如下:
- 多行注释以 开头,以结束,格式如下:
- 文档注释以开头,以结束
文档注释可以被JDK提供的javadoc工具解析生成一套网页形式的说明文档,操作入下:
2.2 关键字(Keyword)
- 什么是关键字:被java语言赋予了特殊含义的字符串(单词)。
例如HelloWorld案例中,出现的关键字有 、 、 、 等,这些单词已经被Java定义,具有明确的含义。 - 关键字的特点:全部都是。
- Java有哪些关键字:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1J4px4iX-99)(imgs/关键字表.png)]
关键字一共50个,其中const和goto是保留字。
true,false,null看起来像关键字,但从技术角度,它们是特殊的布尔值和空值。
建议:关键字比较多,不需要死记硬背,学到哪里记到哪里即可。
2.3 标识符( Identifier)
- 标识符概念:即给类、变量、方法、包等命名的字符序列,称为标识符。
简单的说,凡是程序员自己命名的部分都可以称为标识符。 - 标识符的命名规则(必须遵守)
(1)组成:英文大小写字母,数字,下划线_,美元符号$
(2)数字不能开头
(3)严格区分大小写
(4)不能使用Java的关键字(包含保留字)和特殊值 - 标识符的命名规范(遭受鄙视)
(1)见名知意
(2)类名、接口名等:每个单词的首字母都大写(大驼峰法则),形式:XxxYyyZzz,
例如:HelloWorld,String,System等
(3)变量、方法名等:从第二个单词开始首字母大写(小驼峰法则),其余字母小写,形式:xxxYyyZzz,
例如:age,name,bookName,main
(4)包名等:每一个单词都小写,单词之间使用点.分割,形式:xxx.yyy.zzz,
例如:java.lang
(5)常量名等:每一个单词都大写,单词之间使用下划线_分割,形式:XXX_YYY_ZZZ,
例如:MAX_VALUE,PI
练习:以下合法的标识符是?
2.4 常量(Constant)
- 常量概念:在程序执行的过程中,其值不可以发生改变的量。
- 常量的分类:
- 自定义常量:通过final关键字定义(后面在面向对象部分讲解)
- 字面值、字面量(literal):
blockquote style="margin-top: 5px; margin-bottom: 5px; padding-left: 1em; margin-left: 0px; border-left: 3px solid rgb(238, 238, 238); opacity: 0.6;">
注意事项:
字符字面量,单引号里面有且仅有一个字符。
字符串字面量,使用双引号表示,可以包含多个字符。
空值字面量,是一种特殊值,不可以在输出语句中直接打印
/blockquote>
- 换行输出语句:输出内容,完毕后进行换行,格式如下:
- 直接输出语句:输出内容,完毕后不做任何处理,格式如下
blockquote style="margin-top: 5px; margin-bottom: 5px; padding-left: 1em; margin-left: 0px; border-left: 3px solid rgb(238, 238, 238); opacity: 0.6;">
注意事项:
换行输出语句,括号内可以什么都不写,只做换行处理
直接输出语句,括号内什么都不写的话,编译报错
只能输出一个数据,不能同时输出多个数据,如果要输出多个数据可以使用 + 把多个数据连接起来,变成为一个数据进行输出。
/blockquote>
Variable
)
- 变量的概念:
在程序执行的过程中,其值可以发生改变的量
- 变量的作用:
用来存储数据,代表内存的一块存储区域,这块内存中的值是可以改变的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fDhTPsA4-01)(imgs变量内存.png)] - 定义格式:
ol data-indent="1">
数据类型 变量名=初始化值;
ol data-indent="1">
数据类型 变量名;
变量名=初始值;
ol data-indent="1">
数据类型 变量名1=初始值,变量名2=初始值;
- 变量的使用注意事项
ul data-indent="1">
如果没有声明,会报“找不到符号”错误
如果没有初始化,会报“未初始化”错误
作用域为变量直接所属的{}范围内,如果超过作用域,也会报“找不到符号”错误
同一个{},不能同时声明两个同名变量
计算机世界中只有二进制。那么在计算机中存储和运算的所有数据都要转为二进制。包括数字、字符、图片、声音、视频等。
- 进制分类与表示方式
(1)十进制:
数字组成:0-9
进位规则:逢十进一
(2)二进制:
数字组成:0-1
进位规则:逢二进一
表示方式:以0b或0B开头
十进制的256,二进制:,为了缩短二进制的表示,又要贴近二进制,在程序中引入八进制和十六进制
(3)八进制:很少使用
数字组成:0-7
进位规则:逢八进一
表示方式:以0开头
与二进制换算规则:每三位二进制是一位八进制值
(4)十六进制
数字组成:0-9,a-f或A-F
进位规则:逢十六进一
表示方式:以0x或0X开头
与二进制换算规则:每四位二进制是一位十六进制值
- 进制的转换
十进制的本质:123=1*10
2+2*101+3*10^0
系数:就是每一个位上的数值。上例中的1,2,3
基数:x进制的基数就是x。上例中的10
权:对每一个位上的数据,从右到左,并且从0开始编号,对应的编号就是该数据的权。上例中的0,1,2
任意进制转十进制:
系数*基数^权次幂之和。十进制数除以基数取余,直到商为0,余数反转。
十进制转二进制:十进制整数6除以基数2,倒序取余数,结果为二进制数110
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BLuIrpKR-02)(imgs/十进制转二进制.jpg)]
8421码:从右边开始依次是2的0次,2的1次,2的2次。。。。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mv394sbi-02)(imgs/二进制转十进制.jpg)]
从右边开始,3位二进制对应1位八进制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uAZIznxm-03)(imgs/2、二进制与八进制转换.png)]
从右边开始,4位二进制对应1位十六进制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-derZETsT-03)(imgs/3、二进制与十六进制转换.png)]
计算机底层存储整数并不是把整数转换为二进制直接存储,而是以二进制的补码形式进行存储。要了解补码还要知道原码和反码:
原码
:把十进制转为二进制,然后最高位设置为符号位,1表示负数,0表示正数。
正整数
的原码、反码和补码都一样,称为三码合一。
负整数
的反码和补码表示为:
反码
:负整数的反码在其原码的基础上,符号位不变,其余位取反(0变1,1变0)
补码
:负整数的补码为其反码基础上+1
一个字节可以存储的整数范围
①符号位②指数位③尾数位
详见《float型和double型数据的存储方式.docx》
在计算机的内部都是二进制的0、1数据,如何让计算机可以直接识别人类文字的问题呢?就产生出了编码表的概念。
就是将人类的文字和一个十进制数进行对应起来组成一张表格。例如:
col>
col>
col>
Java中字符常量的几种表示方式
br>(1)‘一个字符’
br> 例如:‘A’,‘0’,‘尚’
br>(2)转义字符
基本数据类型
:包括 、、、。
引用数据类型
:包括 、、等。
br>程序运行期间byte、short、char、boolean实际都是占用4个字节内存空间,
br> 但在逻辑上:
br> byte只有低8位有效空间。
br> short只有低16位有效空间。
br> 所以,可以直接把一个byte范围内的整数常量值直接赋给byte类型变量。short同理。byte b=10;
br> 赋值给int,只要在int范围即可。
br> 赋值给long,在int范围内的,可以加也可以不用加L,会自动升级为long,如果数字超过int范围,必须加L。
char类型:使用单引号’’
、、、、、、
、、、、、等
、、、、、
、`
、`
分类
运算符
例子
一元(单目)运算符
++、–、!
i++、–i
二元(双目)运算符
+、-、*、/、%、>、<=等
a+b、10>=9
三元(三目)运算符
表达式1?表达式2:表达式3
age>=18?“成年”:“未成年”
br>
br>
br>
br>
br>
br>
br>
br>
- 加、减、乘、除、模
- “+”号的两种用法
- 第一种:对于两边都是数值的话,就是加法的意思
- 第二种:对于两边至少有一边是字符串得话,就是拼接的意思
- 自加自减运算
理解: 运算,变量自己的值加1。反之, 运算,变量自己的值减少1,用法与 一致。
- 单独使用
- 变量在单独运算的时候,变量和变量,变量的是一样的;
- 变量 :例如 。
- 变量 :例如 。
- 复合使用
- 和或者和,和就产生了不同。
- 变量 :变量先自身加1,然后再取值。
- 变量 :变量先取值,然后再自身加1。
- 小结:
- ++在前,先自加,后使用;
- ++在后,先使用,后自加。
- 练习
- (1)获取一个四位数的个位,十位,百位,千位
- (2)自增自减练习
判断如下代码的运行结果
2.10.3 赋值运算符
注意:所有的赋值运算符的=左边一定是一个变量
将符号和进行相加操作,最后将结果
将符号和进行相减操作,最后将结果
将符号和进行相乘操作,最后将结果
将符号和进行相除操作,最后将结果
将符号和进行取余操作,最后将结果
- 基本赋值运算符课堂案例
- 扩展赋值运算符课堂案例
扩展赋值运算符在将最后的结果赋值给左边的变量前,都做了一步强制类型转换。
- 练习
交换两个变量的值
int m = 1;
int n = 2;
2.10.4 关系运算符/比较运算符
比较运算符,是两个数据之间进行比较的运算,运算结果一定是boolean值或者 。
- 课堂案例
- 练习:判断如下程序的运行结果
2.10.5 逻辑运算符
逻辑运算符,是用来连接两个布尔类型结果的运算符(除外),运算结果一定是boolean值或者
有则
相同为,不同为
非则,非则
- 课堂案例
- &&和&区别,||和|区别
短路与,短路或运算符左边表达式结果可以确定最终结果,则运算符右边表达式不再进行运算,效率高
- 和区别:
和结果一样,有短路效果,左边为false,右边不执行;左边无论是什么,右边都会执行。 - 和区别:
和结果一样,有短路效果,左边为true,右边不执行;左边无论是什么,右边都会执行。
- 面试题1
- 面试题2
2.10.6 条件运算符
- 条件运算符格式:
- 条件运算符计算方式:
- 条件判断的结果是true,条件运算符整体结果为结果1,赋值给变量。
- 判断条件的结果是false,条件运算符整体结果为结果2,赋值给变量。
练习
2.10.7 位运算符(了解)
- 位运算符的运算过程都是基于补码运算,但是看结果,我们得换成原码,再换成十进制看结果
- 从二进制到十进制都是基于原码
- byte,short,char在计算时按照int类型处理
- 位运算直接对二进制进行位移操作实现数值运算,所以运算效率高
如何区分&,|,^是逻辑运算符还是位运算符?
如果操作数是boolean类型,就是逻辑运算符,如果操作数是整数,那么就位运算符。
左移:<<
运算规则:左移几位就相当于乘以2的几次方
注意:当左移的位数n超过该数据类型的总位数时,相当于左移(n-总位数)位
byte,short,char在计算时按照int类型处理
右移:>>
快速运算:类似于除以2的n次幂,如果不能整除,向下取整
无符号右移:>>>
运算规则:往右移动后,左边空出来的位直接补0,不看符号位
正数:和右移一样
负数:右边移出去几位,左边补几个0,结果变为正数
按位与:&
运算规则:对应位都是1才为1
1 & 1 结果为1
1 & 0 结果为0
0 & 1 结果为0
0 & 0 结果为0
按位或:|
运算规则:对应位只要有1即为1
1 | 1 结果为1
1 | 0 结果为1
0 | 1 结果为1
0 & 0 结果为0
按位异或:^
运算规则:对应位一个为1一个为0,才为1
1 ^ 1 结果为0
0 ^ 1 结果为1
0 ^ 0 结果为0
按位取反
运算规则:
~0就是1
~1就是0
2.10.8 运算符优先级
提示说明:
(1)表达式不要太复杂
(2)先算的使用()
- 大体的排序:算术 > 位 > 比较 > 逻辑 > 三元 > 赋值
2.10.9 标点符号
在Java中一共有12个标点符号。(后面再一一学习)
- 小括号()用于强制类型转换、表示优先运算表达式、方法参数列表
- 大括号{}用于数组元素列表、类体、方法体、复合语句代码块边界符
- 中括号[]用于数组
- 分号;用于结束语句
- 逗号,用于多个赋值表达式的分隔符和方法参数列表分隔符
- 英文句号.用于成员访问和包目录结构分隔符
- 英文省略号…用于可变参数
- @用于注解
- 双冒号::用于方法引用
各个标点符号的使用在后续章节中一一揭晓。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/2343.html