一、Java概述
1. Java语言跨平台原理
在需要运行Java应用程序的操作系统上,安装一个与操作系统对应的Java虚拟机(JVM),所以Java程序可以在任意操作系统(windows、mac、Linux)上运行
2. JRE和JDK
JRE是Java程序的运行时环境,包含 JVM 和运行时所需要的核心类库。我们想要运行一个已有的Java程序,那么只需安装 JRE 即可。JDK是Java程序开发工具包,包含 JRE 和开发人员使用的工具。 其中的开发工具:编译工具(javac.exe)和运行工具(java.exe)。我们想要开发一个全新的Java程序,那么必须安装 JDK 。
JDK、JRE和JVM的关系图
3. 基础语法
3.1 注释
注释是在程序指定位置添加的说明性信息,注释不参与程序运行,仅起到说明作用。单行注释:// 注释信息;多行注释:/* 注释信息 */;文档注释:/** 注释信息 */。
3.2 关键字
关键字就是被Java语言赋予了特定含义的单词。关键字的字母全部小写。常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。
3.3 常量
常量在程序运行过程中,其值不可以发生改变的量。
常量类型 | 说明 | 举例 |
字符串常量 | 用双引号括起来的内容 | “HelloWorld”,“中国” |
整数常量 | 不带小数的数字 | 666,-88 |
小数常量 | 带小数的数字 | 13.14,-5.21 |
字符常量 | 用单引号括起来的内容 | ‘A’,‘0’, ‘我’ |
布尔常量 | 布尔值,表示真假 | 只有两个值:true,false |
空常量 | 一个特殊的值,空值 | 值是:null |
3.4 数据类型
我们知道计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母”b”表示。而计算机中最小的存储单元叫“字节(byte)”, 通常用大写字母”B”表示,字节是由连续的8个位组成。Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以它们表示的数据大小也是不一样的。
数据类型 | 关键字 | 内存占用 | 取值范围 |
整数 | byte | 1 | -128~127 |
short | 2 | -32768~32767 | |
int(默认) | 4 | -2的31次方到2的31次方-1 | |
long | 8 | -2的63次方到2的63次方-1 | |
浮点数 | float | 4 | 负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到3.402823E+38 |
double(默认) | 8 | 负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308 | |
字符 | char | 2 | 0-65535 |
布尔 | boolean | 1 | true,false |
3.5 变量
变量在程序运行过程中,其值可以发生改变的量。从本质上讲,变量是内存中一小块区域。格式:数据类型 变量名 = 变量值。
注意事项:变量名不能重复;变量未赋值,不能使用;long类型的变量定义的时候,为了防止整数过大,后面要加L;float类型的变量定义的时候,为了防止类型不兼容,后面要加F。
3.6 标识符
标识符就是给类,方法,变量等起名字的符号。由数字、字母、下划线(_)和美元符($)组成,不能以数字开头,不能是关键字,区分大小写。
3.7 类型转换
自动类型转换:把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。
强制类型转换:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。格式:目标数据类型 变量名 = (目标数据类型)值或者变量。
二、运算符
1. 算术运算符
1.1 运算符和表达式
运算符:对常量或者变量进行操作的符号。
表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。
符号 | 作用 | 说明 |
+ | 加 | |
- | 减 | |
* | 乘 | 与“×”相同 |
/ | 除 | 与“÷”相同 |
% | 取余 | 获取的是两个数据做除法的余数 |
注意事项: /和%的区别:两个数据做除法,/取结果的商,%取结果的余数。 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
字符的 "+" 操作:拿字符在计算机底层对应的数值来进行计算的,算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:byte类型,short类型和char类型将被提升到int类型,整个表达式的类型自动提升到表达式中最高等级操作数同样的类型。
等级顺序:byte,short,char→int→long→float→double
当"+"操作中出现字符串时,这个"+"是字符串连接符,而不是算术运算。在"+"操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行"+"操作时,从左到右逐个执行。
2. 赋值运算符
符号 | 作用 | 说明 |
= | 赋值 | a=10,将10赋值给变量a |
+= | 加后赋值 | a+=b,将a+b的值给a |
-= | 减后赋值 | a-=b,将a-b的值给a |
*= | 乘后赋值 | a*=b,将a×b的值给a |
/= | 除后赋值 | a/=b,将a÷b的商给a |
%= | 取余后赋值 | a%=b,将a÷b的余数给a |
注意事项: 扩展的赋值运算符隐含了强制类型转换
3. 自增自减运算符
符号 | 作用 | 说明 |
++ | 自增 | 变量的值加1 |
-- | 自减 | 变量的值减1 |
注意事项:++和-- 既可以放在变量的后边,也可以放在变量的前边。单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
4. 关系运算符
符号 | 说明 |
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a<b,判断a是否小于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
注意事项: 关系运算符的结果都是boolean类型,要么是true,要么是false。 千万不要把“==”误写成“=”。
5. 逻辑运算符
符号 | 作用 | 说明 |
& | 逻辑与 | a&b,a和b都是true,结果为true,否则为false |
| | 逻辑或 | a|b,a和b都是false,结果为false,否则为true |
^ | 逻辑异或 | a^b,a和b结果不同为true,相同为false |
! | 逻辑非 | !a,结果和a的结果正好相反 |
符号 | 作用 | 说明 |
&& | 短路与 | 作用和&相同,但是有短路效果 |
|| | 短路或 | 作用和|相同,但是有短路效果 |
注意事项:逻辑与&,无论左边真假,右边都要执行。短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。逻辑或|,无论左边真假,右边都要执行。短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
6. 三元运算符
格式:关系表达式 ? 表达式1 : 表达式2;
计算规则:首先计算关系表达式的值,如果值为true,表达式1的值就是运算结果,如果值为false,表达式2的值就是运算结果。
三、数据输入
1. Scanner使用基本步骤
四、分支语句
1. 顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行, 程序中大多数的代码都是这样执行的。
2. if语句
2.1 if语句格式1
2.2 if语句格式2
2.3 if语句格式3
3. switch语句
五、循环语句
1. for循环语句
循环结构的组成:
初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去。
循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情。
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去。
2. while循环语句
3. do...while循环语句
三种循环的区别:
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行) do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)。
for和while的区别:条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。
4. 跳转控制语句
continue:用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行。
break:用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环。
5. 循环嵌套
任何语句对外都可以看成是一句话,一句代码。分支语句中包含分支语句称为分支嵌套,循环语句中包含循环语句称为循环嵌套。
6. Random随机数
作用:用于产生一个随机数