ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

#java学习周记

#java学习周记

本周是我加入未来软件学习小组的第一周,正式开启了为期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

赋值运算符:
符号: = 、 += 、 -= 、 *= 、 /= 、 %=

  1. = :把右边的值赋给左边变量。注意不是相等判断。
    ​
  2. 扩展赋值运算符( += 这类),运算时自带强制类型转换。
    例: int a = 10; a += 5; 等价 a = a + 5

关系运算符(比较运算符):
符号: > 、 < 、 >= 、 <= 、 == 、 !=

  1. 运算结果只有两种: true (真)、 false (假)
    ​2. == 判断是否相等; != 判断是否不相等
    ⚠️ 注意:不要把 == 写成 = , = 是赋值。

逻辑运算符:
符号: & (逻辑与)、 | (逻辑或)、 ! (逻辑非)、 && (短路与)、 || (短路或)

  1. && 短路与:两边都true才true。左边为false,右边代码不执行(短路)。
    ​
  2. || 短路或:一边true就true。左边为true,右边代码不执行(短路)。
    ​
  3. ! 逻辑非:取反, !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;}

  1. 表达式:将要匹配的值,取值为byte、short、int、char。JDK5以后可以是枚举,JDK7以后可以是String。
  2. case:后面跟的是要和表达式进行比较的值(被匹配的值)。
  3. break:表示中断,结束的意思,用来结束switch语句。
  4. default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
  5. case后面的值只能是字面量,不能是变量
  6. case给出的值不允许重复

三、while循环 格式
初始化语句 ;while(条件判断语句){ 循环体语句; 条件控制语句;}
1、 初始化语句只执行一次
2. 判断语句为true,循环继续
3. 执行循环体、条件控制语句,回到条件判断
4、 判断语句为false,循环结束
5. 循环结束,执行循环下面的其他语句

四、for循环 和 while循环对比
相同点: 运行规则都是一样的 for 和 while 的
区别 : for循环:知道循环次数或者循环的范围
while循环:不知道循环的次数和范围,只知道循环的结束条件 。

二、学习遇到的问题与反思

  1. 对运算符优先级记忆不牢,写表达式的时候容易因为优先级出错,导致程序运行结果和预期不一样。
  2. 敲代码习惯不好,经常漏写分号、括号,出现编译报错,需要花大量时间查找简单语法错误。
  3. 理论看得懂,但是独立写代码的时候思路卡顿,缺少动手练习。

三、下周学习规划

下周学习任务:流程控制与数组。

  1. 学习do-while,break和continue跳转语句。
  2. 学习一维数组、二维数组的定义、遍历,动手写数组相关练习题。
  3. 每天多多的Java代码练习,不再只看视频不敲代码。
  4. 整理错题,把编译报错、理解错误的知识点单独记录,定期复盘。

小结

Java入门阶段基础非常重要,基础不牢后面学习会越来越吃力。这一周让我明白,编程不是看懂就行,必须亲手敲代码、调试bug。后续我会保持每周总结博客的习惯,持续记录学习过程,稳步完成工作室18天的学习任务。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进