今日学习目标

  1. 掌握注释的作用与写法。
  2. 理解关键字的概念与特点。
  3. 掌握字面量、变量与数据类型的关系。
  4. 掌握标识符的命名规则与规范。
  5. 实现简单的控制台输入与输出。
  6. 认识Java中的常用运算符及其特性。

第一部分:注释—程序的“笔记”

作用:在代码中添加说明性文字,用于对程序代码的解释说明。注释不会被编译和执行,是写给程序员看的“笔记”。
两种常用格式

  • 单行注释:以 // 开始,行内其后内容均为注释。快捷键:Ctrl + /;
  • 多行注释:介于 /* 和 */ 之间的所有内容均为注释。快捷键:Ctrl + Shift + /。

最佳实践:对复杂逻辑、重要变量、核心方法进行简洁清晰的注释,是写出可维护代码的好习惯。


第二部分:关键字—编译器预留的特殊单词

概念:预先定义好的、具有特定含义的英文单词。
特点

  • 全部由小写字母组成。
  • 在编译软件中通常特有殊颜色高亮显示。
  • 不能用作标识符

常见示例:定义数据类型的int, double, boolean等;流程控制的 if, for等;访问控制的public, private等等。


第三部分:程序的基础—数据如何表示与存储

理解“数据类型 - 变量 - 字面量”这三者的关系,是编程入门的钥匙。一个典型的赋值语句将它们串联起来:数据类型 变量名 = 数据值;

  1. 字面量:数据的“书写格式”
    字面量是直接在代码中写出的、固定不变的数据值,即数据的书写格式。
类型 示例
整数 123
小数 1.23
字符 ‘a’
字符串 “abc”
布尔值 true、false
空值 null
public class DAY02 {
    public static void main(String[] args) {
    		 // 打印各种类型的字面量
        System.out.println(123);    // 整数
        System.out.println(1.23);   // 小数
        System.out.println('a');    // 字符
        System.out.println("abc");  // 字符串
        System.out.println(true);   // 布尔值
//        System.out.println(null); // 这行会编译错误!
    }
}

为什么 System.out.println(null); 会报错?
答:因为 println 方法有多个重载版本,null 可以匹配多个版本(如 println(String) 和 println(char[])),编译器无法确定调用哪一个,因此会报错。

  1. 变量:数据的“容器”
    变量是内存中存储单个数据的容器。可以把它理解成一个带标签的盒子,变量名就是盒子的标签,用于找到这个容器。
    注意:变量是容器,而非数据本身。操作变量(如 a = a + 1;)是在操作容器里的数据。

  2. 基本数据类型:容器的“规格”
    Java为最常见的数值定义了8种基本数据类型,它们限定了变量存储的数值类型和范围。

类别 类型 说明
整型 byte, short, int, long 存储整数,范围依次增大
浮点型 float, double 存储小数,double精度更高
字符型 char 存储单个字符(如 ‘A’)
布尔型 boolean 仅存储 true 或 false

对于多个字符的文本,我们使用 String 类表示,后续章节会详细学习

  1. 总结与理解:数据类型 变量名 = 数据值;
  • 变量:存储单个数据的“容器”。
  • 变量名:容器的“标签”,用于找到这个“容器”。
  • 数据类型:规定了这个“容器”能装什么类型和范围的数据。
  • 数据值:容器中实际存放的数据。

第四部分:标识符—为代码元素起名

概念:标识符就是给类,方法,变量起名字。

命名规则(必须遵守,否则编译错误)

  1. 组成:只能包含字母、数字、下划线(_)、美元符($)
  2. 开头:不能以数字开头。
  3. 关键字:不能是关键字(如 int, class)。
  4. 大小写:严格区分大小写(age 和 Age 是两个不同的变量)。

命名规范(约定俗成,提高可读性)

  • 见名知意:name 比 n 好,student 比 a 好。
  • 小驼峰法(变量/方法名):第一个单词全小写,后续单词首字母大写。如:userName。
  • 大驼峰法(类名):每个单词首字母都大写。如:StudentManager。

第五部分:输入与输出—与程序互动

  1. 输出:让程序“说话”
  • System.out.println(): 将内容打印到控制台,并换行。
  • System.out.print() :将内容打印到控制台,不换行。
    //输出:
    //123123
    //123
    System.out.print(123);
    System.out.println(123);
    System.out.print(123);
  1. 输入:让程序“聆听”
    Java使用 Scanner 类来接收键盘输入。
// 1. 导包(告诉程序我们要用Scanner工具)
import java.util.Scanner;

public class DAY02 {
    public static void main(String[] args) {
        // 2. 创建Scanner对象
        Scanner scanner = new Scanner(System.in);
        // 采用输出来进行输入提示
        System.out.println("请输入一个整数:");
        // 3. 使用Scanner对象接收数据
        int num = scanner.nextInt(); // 读取一个整数
        //输出读取数据
        System.out.println("您输入的是:" + num);
        // 释放资源
        scanner.close();
    }
}

注意:Scanner 直接支持基本数据类型:nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()、nextBoolean()以及字符串的两种读取方式next() 读取单词,读取到空格或换行符停止,nextLine() 读取整行,读取整行包括空格,直到换行符。但是不提供 nextChar() 。


第六部分:运算符—数据的“加工”

类别 符号
算术运算符 +, -, *, /, %
赋值运算符 =, +=, -=,*=,/=,%=
比较运算符 ==, !=, >,>=,<, <=
逻辑运算符 !, &, |, &&, ||
自增自减运算符 ++,–
三元运算符 关系表达式?表达式1:表达式2
  1. 算术运算符
  • 隐式类型转换:运算时,小范围类型自动提升为大范围类型
  • 自动类型提升:byte、short、char 参与运算时自动提升为 int。
  • 字符串连接:+ 与字符串相遇时,作为连接符,并将非字符串操作数转为字符串。
  • 运算顺序:从左到右,优先级遵循数学规则,可用 () 改变顺序。
  • %注意与C++不同,%两端不是只能用于整数类型,可以用于浮点数类型
public class DAY02 {
    public static void main(String[] args) {
        //1.隐式类型转换:运算时,小范围类型自动提升为大范围类型(如 int → double)
        int a = 10;
        double b = 3.14;
        System.out.println(a + b);//13.14
        //2.自动类型提升:byte、short、char 参与运算时自动提升为 int;
        //  若表达式中有更大范围类型(如 long、double),则继续向更高类型提升。
        byte c = 10;byte d = 1;
        System.out.println(c + d);//11
        char e = 'a'; char f = 'b';
        System.out.println(e + f);//195
        System.out.println(e + c);//107
        System.out.println(e + b);//100.14
        //3.字符串连接:+ 与字符串相遇时,作为连接符,并将非字符串操作数转为字符串。
        String g = "a";String h = "b";
        System.out.println(g + h);//"ab"
        //4.运算顺序:从左到右,优先级遵循数学规则,可用 () 改变顺序。
        System.out.println("a+b=" + a + b);//a+b=103.14 从左到右先被认定为是字符串连接"a+b=10"+b,同理还是字符串连接,最后结果是:a+b=103.14
        System.out.println("a+b=" +(a + b));//a+b=13.14 先计算小括号数值加法,结果是13.14,再把结果和字符串连接,结果是:a+b=13.14
    }
}
  1. 赋值运算符
赋值运算符 说明
= num=2 把 = 右边的值赋值给左边变量
+= num += 2 等效于 num = num + 2
-= num -= 2 等效于 num = num - 2
*= num *= 2 等效于 num = num * 2
/= num /= 2 等效于 num = num / 2
%= num %= 2 等效于 num = num % 2
  1. 比较运算符
    比较运算符也称关系运算符,返回一个布尔值作为结果。
比较运算符 说明
== a == b 判断 a是否等于b
注意!==和=是不同的运算符
!= a != b 判断 a是否不等于 b
> a > b 判断 a是否大于 b
>= a >= b 判断 a是否大于等于 b
< a < b 判断 a是否小于 b
<= a <= b 判断 a是否小于等于 b
  1. 逻辑运算符
    逻辑运算符用于连接多个关系表达式,并返回一个布尔值作为结果。
逻辑运算符 说明
逻辑非:取反操作,true变false,false变true
& 逻辑与:只有左右侧表达式都为真才为真
| 逻辑或:左右侧只有一侧表达式为真就是真
public class DAY02 {
    public static void main(String[] args) {
        int a=1;
        int b=2;
        System.out.println(a>3&b++<3);//false a>3为false但是b++仍会执行,b的值会加1
        System.out.println("a:"+a+" b:"+b);//"a:1 b:3"
        System.out.println(a>0|b++<3);//true a>0为true但是b++仍会执行,b的值会加1
        System.out.println("a:"+a+" b:"+b);//"a:1 b:4"
    }
}

我们可以注意到对于 & 和 | 两侧的表达式均执行判断然后得到最终结果,所以引入了短路逻辑运算符,若左侧能确定结果,右侧不执行:

短路逻辑运算符 说明
&& 只有左右侧表达式都为真才为真
所以当左侧表达式为false,右侧表达就不会执行,最后结果为false
|| 左右侧只有一侧表达式为真就是真
所以当左侧表达式为true,右侧表达就不会执行,最后结果为true
public class DAY02 {
    public static void main(String[] args) {
        int a=1;
        int b=2;
        System.out.println(a>3&&b++<3);//false a>3为false,b++不会执行,b的值不会加1
        System.out.println("a:"+a+" b:"+b);//"a:1 b:2"
        System.out.println(a>0||b++<3);//true a>0为true,b++不会执行,b的值不会加1
        System.out.println("a:"+a+" b:"+b);//"a:1 b:2"
    }
}
  1. 自增自减运算符
自增自减运算符 说明 示例(a=5)
a++ 后置自增:表达式结果是a的当前值,然后再将a加1 int b = a++; // b=5, a=6
++a 前置自增:先将a加1,然后表达式结果是a的新值 int b = ++a; // b=6, a=6
a– 后置自减:表达式结果是a的当前值,然后再将a减1 int b = a–; // b=5, a=4
–a 前置自减:先将a减1,然后表达式结果是a的新值 int b = --a; // b=4, a=4
  1. 三元运算符:
三元运算符 说明
关系表达式?表达式1:表达式2 如果关系表达式为true,则执行并返回表达式1的结果;
如果关系表达式为false,则执行并返回表达式2的结果;
重要特性:只有被选中的表达式才会执行!
public class DAY02 {
    public static void main(String[] args) {
        int a=1;
        int b=2;
        System.out.println(a<b?a++:b++);//1
        System.out.println("a:"+a+" b:"+b);//a:2 b:2
    }
}

以上为个人学习总结,旨在梳理个人理解。如有疏漏或不当之处,欢迎指正与交流。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐