本周是我加入未来软件学习小组的第一周,正式开启了为期18天的Java基础学习计划。在这一周的学习中,我主要学习Java语言概述、数据类型与运算符等相关知识。在学习理论的同时,我也在尝试动手敲写代码。一、本周学习内容总结1. Java语言概述1、最先了解的是java语言概述中的JDK、JRE、JVM这三个基础概念。JVM是Java虚拟机,负责运行编译后的class字节码文件,也是Java程序运行的地方;JRE是Java运行环境,里面包含JVM、核心类库和运行工具;JDK是开发工具包,包含JVM、核心类库和开发工具,在写代码开发程序是就必须安装JDK。与此同时,JDK包含了JRE,JRE又包含JVM。2、注释:对代码进行解释说明的文字。注释的分类:单行注释、多行注释和文档注释。3、关键词:被java赋予了特定含义的英文单词。例如:class是用于创建或定义一个类。注:关键字的字母全部小写。4、字面量:数据在程序中的书写格式。类型:整数、小数、字符串、字符、布尔、空。5、Java的运行机制:java源文件,通过javac编译成跨平台的class字节码文件,运行时启动JVM,加载字节码,再翻译成系统能识别的机器码执行,最后实现编译。6、java环境变量的配置:配置Java环境变量,核心是新建 JAVA_HOME 指向JDK安装目录;再编辑Path变量,添加 %JAVA_HOME%\bin 。配置完成后,打开cmd输入 java -version 和 javac ,能正常输出版本信息即代表配置成功。2. 数据类型与运算符1、Java有8种基本数据类型:byte、short、int、long、float、double、char、boolean。2、变量:定义格式:数据类型 变量名 = 数据值;使用变量:输出打印、参与计算、修改记录的值;注意:变量只能存一个值、变量名不能重复、一条语句可以定义多个变量、使用前一定要赋值。3、常量:作用:用于记录程序中不可更改的数据C++定义常量两种方式:(1)#define 宏常量: #define 常量名 常量值 通常在文件上方定义,表示一个常量(2)const修饰的变量: const 数据类型 常量名 = 常量值通常在变量定义前加关键字const,修饰该变量为常量,不可修改。4、标识符:给类、方法、变量等起的名字。命名规则:(1) 只能由字母、数字、下划线 _ 、美元符 $ 组成(2)不能以数字开头。(3) 不能使用Java关键字(4) 区分大小写。5、运算符:对字面量或者变量进行操作的符号。表达式:用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。6、算术运算符、自增自减运算符、赋值运算符、关系运算符、逻辑运算符。算数:隐式转换。(1)取值范围:byte < short < int < long < float < double(2)数据类型不一样,不能进行计算,需要转成一样的才可以进行计算。转换规则1:取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算 转换规则2:byte short char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算字符串的“+”操作:(1)当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。会将前后的数据进行拼接,并产生一个新的字符串。 例: “123” + 123 ,结果: “123123”(2)连续进行"+"操作时,从左到右逐个执行。 例: 1 + 99 + “年黑马” 先算1+99=100,再拼接字符串,最终结果: "100年黑马”自增自减:++ 加 变量的值加1– 减 变量的值减1赋值运算符:符号: = 、 += 、 -= 、 *= 、 /= 、 %== :把右边的值赋给左边变量。注意不是相等判断。扩展赋值运算符( += 这类),运算时自带强制类型转换。例: int a = 10; a += 5; 等价 a = a + 5关系运算符(比较运算符):符号: > 、 < 、 >= 、 <= 、 == 、 !=运算结果只有两种: true (真)、 false (假)2. == 判断是否相等; != 判断是否不相等⚠️ 注意:不要把 == 写成 = , = 是赋值。逻辑运算符:符号: & (逻辑与)、 | (逻辑或)、 ! (逻辑非)、 && (短路与)、 || (短路或)&& 短路与:两边都true才true。左边为false,右边代码不执行(短路)。|| 短路或:一边true就true。左边为true,右边代码不执行(短路)。! 逻辑非:取反, !true 就是false。开发优先用 && 、 || ,有短路效果,效率更高。顺序结构和分支结构顺序:代码从上往下依次执行。分支: if、if-else、if-else if、switch ,根据条件选择执行代码。循环: for、while、do-while ,重复执行一段代码。-跳转: break 跳出整个循环; continue 跳过本次循环,直接进入下一轮。Java 流程控制:分支与循环笔记一、if语句第一种格式if (关系表达式) { 语句体;}举例if (酒量 > 2) { System.out.println(“小伙子,不错!”);}执行流程: 1. 首先计算关系表达式的值 2. 如果关系表达式的值为true就执行语句体 3. 如果关系表达式的值为false就不执行语句体 4. 继续执行后面的其他语句二、switch语句 格式switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; … default: 语句体n+1; break;}表达式:将要匹配的值,取值为byte、short、int、char。JDK5以后可以是枚举,JDK7以后可以是String。case:后面跟的是要和表达式进行比较的值(被匹配的值)。break:表示中断,结束的意思,用来结束switch语句。default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。case后面的值只能是字面量,不能是变量case给出的值不允许重复三、while循环 格式初始化语句 ;while(条件判断语句){ 循环体语句; 条件控制语句;}1、 初始化语句只执行一次2. 判断语句为true,循环继续3. 执行循环体、条件控制语句,回到条件判断4、 判断语句为false,循环结束5. 循环结束,执行循环下面的其他语句四、for循环 和 while循环对比相同点: 运行规则都是一样的 for 和 while 的区别 : for循环:知道循环次数或者循环的范围while循环:不知道循环的次数和范围,只知道循环的结束条件 。二、学习遇到的问题与反思对运算符优先级记忆不牢,写表达式的时候容易因为优先级出错,导致程序运行结果和预期不一样。敲代码习惯不好,经常漏写分号、括号,出现编译报错,需要花大量时间查找简单语法错误。理论看得懂,但是独立写代码的时候思路卡顿,缺少动手练习。三、下周学习规划下周学习任务:流程控制与数组。学习do-while,break和continue跳转语句。学习一维数组、二维数组的定义、遍历,动手写数组相关练习题。每天多多的Java代码练习,不再只看视频不敲代码。整理错题,把编译报错、理解错误的知识点单独记录,定期复盘。小结Java入门阶段基础非常重要,基础不牢后面学习会越来越吃力。这一周让我明白,编程不是看懂就行,必须亲手敲代码、调试bug。后续我会保持每周总结博客的习惯,持续记录学习过程,稳步完成工作室18天的学习任务。
本周是我加入未来软件学习小组的第一周,正式开启了为期18天的Java基础学习计划。在这一周的学习中,我主要学习Java语言概述、数据类型与运算符等相关知识。在学习理论的同时,我也在尝试动手敲写代码。一、本周学习内容总结1. Java语言概述1、最先了解的是java语言概述中的JDK、JRE、JVM这三个基础概念。JVM是Java虚拟机,负责运行编译后的class字节码文件,也是Java程序运行的地方;JRE是Java运行环境,里面包含JVM、核心类库和运行工具;JDK是开发工具包,包含JVM、核心类库和开发工具,在写代码开发程序是就必须安装JDK。与此同时,JDK包含了JRE,JRE又包含JVM。2、注释:对代码进行解释说明的文字。注释的分类:单行注释、多行注释和文档注释。3、关键词:被java赋予了特定含义的英文单词。例如:class是用于创建或定义一个类。注:关键字的字母全部小写。4、字面量:数据在程序中的书写格式。类型:整数、小数、字符串、字符、布尔、空。5、Java的运行机制:java源文件,通过javac编译成跨平台的class字节码文件,运行时启动JVM,加载字节码,再翻译成系统能识别的机器码执行,最后实现编译。6、java环境变量的配置:配置Java环境变量,核心是新建 JAVA_HOME 指向JDK安装目录;再编辑Path变量,添加 %JAVA_HOME%\bin 。配置完成后,打开cmd输入 java -version 和 javac ,能正常输出版本信息即代表配置成功。2. 数据类型与运算符1、Java有8种基本数据类型:byte、short、int、long、float、double、char、boolean。2、变量:定义格式:数据类型 变量名 = 数据值;使用变量:输出打印、参与计算、修改记录的值;注意:变量只能存一个值、变量名不能重复、一条语句可以定义多个变量、使用前一定要赋值。3、常量:作用:用于记录程序中不可更改的数据C++定义常量两种方式:(1)#define 宏常量: #define 常量名 常量值 通常在文件上方定义,表示一个常量(2)const修饰的变量: const 数据类型 常量名 = 常量值通常在变量定义前加关键字const,修饰该变量为常量,不可修改。4、标识符:给类、方法、变量等起的名字。命名规则:(1) 只能由字母、数字、下划线 _ 、美元符 $ 组成(2)不能以数字开头。(3) 不能使用Java关键字(4) 区分大小写。5、运算符:对字面量或者变量进行操作的符号。表达式:用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。6、算术运算符、自增自减运算符、赋值运算符、关系运算符、逻辑运算符。算数:隐式转换。(1)取值范围:byte < short < int < long < float < double(2)数据类型不一样,不能进行计算,需要转成一样的才可以进行计算。转换规则1:取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算 转换规则2:byte short char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算字符串的“+”操作:(1)当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。会将前后的数据进行拼接,并产生一个新的字符串。 例: “123” + 123 ,结果: “123123”(2)连续进行"+"操作时,从左到右逐个执行。 例: 1 + 99 + “年黑马” 先算1+99=100,再拼接字符串,最终结果: "100年黑马”自增自减:++ 加 变量的值加1– 减 变量的值减1赋值运算符:符号: = 、 += 、 -= 、 *= 、 /= 、 %== :把右边的值赋给左边变量。注意不是相等判断。扩展赋值运算符( += 这类),运算时自带强制类型转换。例: int a = 10; a += 5; 等价 a = a + 5关系运算符(比较运算符):符号: > 、 < 、 >= 、 <= 、 == 、 !=运算结果只有两种: true (真)、 false (假)2. == 判断是否相等; != 判断是否不相等⚠️ 注意:不要把 == 写成 = , = 是赋值。逻辑运算符:符号: & (逻辑与)、 | (逻辑或)、 ! (逻辑非)、 && (短路与)、 || (短路或)&& 短路与:两边都true才true。左边为false,右边代码不执行(短路)。|| 短路或:一边true就true。左边为true,右边代码不执行(短路)。! 逻辑非:取反, !true 就是false。开发优先用 && 、 || ,有短路效果,效率更高。顺序结构和分支结构顺序:代码从上往下依次执行。分支: if、if-else、if-else if、switch ,根据条件选择执行代码。循环: for、while、do-while ,重复执行一段代码。-跳转: break 跳出整个循环; continue 跳过本次循环,直接进入下一轮。Java 流程控制:分支与循环笔记一、if语句第一种格式if (关系表达式) { 语句体;}举例if (酒量 > 2) { System.out.println(“小伙子,不错!”);}执行流程: 1. 首先计算关系表达式的值 2. 如果关系表达式的值为true就执行语句体 3. 如果关系表达式的值为false就不执行语句体 4. 继续执行后面的其他语句二、switch语句 格式switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; … default: 语句体n+1; break;}表达式:将要匹配的值,取值为byte、short、int、char。JDK5以后可以是枚举,JDK7以后可以是String。case:后面跟的是要和表达式进行比较的值(被匹配的值)。break:表示中断,结束的意思,用来结束switch语句。default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。case后面的值只能是字面量,不能是变量case给出的值不允许重复三、while循环 格式初始化语句 ;while(条件判断语句){ 循环体语句; 条件控制语句;}1、 初始化语句只执行一次2. 判断语句为true,循环继续3. 执行循环体、条件控制语句,回到条件判断4、 判断语句为false,循环结束5. 循环结束,执行循环下面的其他语句四、for循环 和 while循环对比相同点: 运行规则都是一样的 for 和 while 的区别 : for循环:知道循环次数或者循环的范围while循环:不知道循环的次数和范围,只知道循环的结束条件 。二、学习遇到的问题与反思对运算符优先级记忆不牢,写表达式的时候容易因为优先级出错,导致程序运行结果和预期不一样。敲代码习惯不好,经常漏写分号、括号,出现编译报错,需要花大量时间查找简单语法错误。理论看得懂,但是独立写代码的时候思路卡顿,缺少动手练习。三、下周学习规划下周学习任务:流程控制与数组。学习do-while,break和continue跳转语句。学习一维数组、二维数组的定义、遍历,动手写数组相关练习题。每天多多的Java代码练习,不再只看视频不敲代码。整理错题,把编译报错、理解错误的知识点单独记录,定期复盘。小结Java入门阶段基础非常重要,基础不牢后面学习会越来越吃力。这一周让我明白,编程不是看懂就行,必须亲手敲代码、调试bug。后续我会保持每周总结博客的习惯,持续记录学习过程,稳步完成工作室18天的学习任务。