java basic 02

112 阅读8分钟

01-关键字

  • 介绍 : 被 Java 赋予了特殊涵义的英文单词
ctrl + shift + K : 笔记中生成代码块
举例:
    
class : 定义一个类
public : 限制类名称和文件名保持一致
int : 定义整数类型的变量
...
  • 目标1 : 能够独立识别出一个单词, 是否是 Java 中的关键字

    • 关键字所有字母都是小写的
    • 在高级的代码编辑器中, 会有颜色变化
  • 目标2 : 知道关键字已经被 Java 赋予了特殊的涵义, 我们就不允许使用

    int class = 10;   // 编译错误, class是关键字, 不能使用
    

02-字面量 (常量)

  • 目标 : 能够知道 Java 中有哪些数据, 我们可以使用
分类:
    
        1. 字符串 : 被双引号所包裹的内容
        2. 整数 : 所有整数
        3. 小数 : 所有小数
        4. 字符 : 被单引号所包裹的数据, 内部能存放单个字符 (多一个少一个都不行)
        5. 布尔 : true, false
                    - 这两个数据, 只做打印没有意义
                    - 意义: 需要结合day03要讲解的运算符和if语句一起使用
                    
                    System.out.println(10 > 20);    // false
        6. 空 : null
                    - 不允许直接打印
                    - 意思: 在day05的时候, 接触到引用数据类型, 再聊
public class ConstantTest1 {
    /*
        需求: 请在控制台打印出自己的个人信息 (姓名, 年龄, 身高, 性别, 婚姻状况)
​
        分析:
                姓名: 字符串
                年龄: 整数
                身高: 小数
                性别: 字符
                婚姻状况: 布尔
     */
    public static void main(String[] args) {
        System.out.println("郝以绅");
        System.out.println(18);
        System.out.println(185.1);
        System.out.println('男');
        System.out.println(false);
    }
}

03-变量

  • 介绍 : 变量就是内存中的存储空间, 空间中记录着经常发生改变的数据

    • 使用场景 : 如果发现一个数据, 是经常发生改变的, 就应该使用变量进行维护.
    工资, 年龄 
    ​
    double salary = 12000.0;
    int age = 18;
    
  • 变量的定义格式 :

    • 数据类型 变量名 = 数据值;
  • 变量的使用思路

    • 使用变量, 都是根据变量名进行使用的
    int age = 18;
    // 修改变量
    age = 20;
    // 打印变量
    System.out.println(age);
    // 拿着变量做运算
    System.out.println(age + 100);
    

04-Debug工具

  • 要求 : 将自己的代码 (任意代码), 使用Debug工具跑一边

    • 细节 : 如果debug的过程中, 遇到了Scanner键盘录入, 需要输入数据后, 才可以继续操作
  • Debug的操作流程 :

Debug调试工具: 将其理解为程序的另外一种运行模式
                在这种运行模式下, 程序的每一步执行, 都是听我们指挥的
                - 可以清晰的看到程序的每一步, 到底干了那些事情

操作步骤:
        1. 加断点 : 哪里不会点哪里
        2. 运行加断点的程序
        3. 点哪里 : Step Over
        4. 看哪里 :
                    Debugger :
                        Frames : 可以看到程序中, 有哪些方法正在执行.
                        Variables : 看到程序中, 有哪些变量存在, 以及变量的变化过程
                    Console :
                        控制台, 一些打印的内容, 在这里看
        5. 取消断点

05-变量的注意事项

  • 目标 : 概念不需要死记硬背, 今后定义变量, 如果出现错误, 知道错误原因, 并可以解决.
  • 变量名不允许重复定义
int a = 10;
int a = 20;     // 编译错误
  • 一条语句可以定义出多个变量, 中间需要使用逗号分隔
int a = 10, b = 20, c = 30;
  • 变量在使用之前, 必须完成赋值
int num;
System.out.println(num); // 编译错误

06-数据类型

  • 目标1 : 能够定义出不同数据类型的变量
  • 目标2 : 能够说出基本数据类型的 4类8种
基本数据类型 :
            
                整数:
                        byte        1个字节     -128~127
                        short       2个字节
                        int         4个字节
                        long        8个字节
                小数:
                        float       4个字节
                        double      8个字节
                字符:
                        char        2个字节
                布尔:     
                        boolean     1个字节
                            
使用思路:
            1. 今后定义整数类型变量, 首选int, 当你发现int装不下的时候, 将类型换成long (数值后面加入L的标识)
            2. 今后定义小数类型变量, 首选double, 非要定义float类型变量, 需要加入F的标识
                
细节:
            1. 所有整数默认都是 int 类型
                                    System.out.println(10);
                                    10, 单独拿出来也是一份数据, 是数据, 就会有自己的数据类型, 默认是int
            2. 所有小数默认都是 double 类型
                                    System.out.println(12.3);
                                    12.3, 单独拿出来也是一份数据, 是数据, 就会有自己的数据类型, 默认是double
            3. char类型的取值范围是 0 ~ 65535
                                    原因: 取值范围是数值, 原因是每一个字符, 底层都有一份数值的表示形式
                                            'a'  ---> 97
                                            'b'  ---> 98
                                             
                                             今后要使用, 百度搜索 ASCII
引用数据类型 :
                String : 定义字符串类型变量
                
                String name = "张三";
  • 必掌握代码 :
package com.itheima.test;
​
public class DataTypeTest1 {
    /*
        需求: 请将自己的个人信息, 定义出变量, 随后打印在控制台
                (姓名, 年龄, 身高, 性别, 婚姻状况)
​
                姓名 : 字符串 : String
                年龄 : 整数 : int
                身高 : 小数 : double
                性别 : 字符 : char
                婚姻状况 : 布尔 : boolean
     */
    public static void main(String[] args) {
​
        // 数据类型 变量名 = 数据值;
        String name = "张三";
        int age = 23;
        double height = 185.1;
        char gender = '男';
        boolean flag = false;
​
        System.out.println(name);
        System.out.println(age);
        System.out.println(height);
        System.out.println(gender);
        System.out.println(flag);
    }
}

07-标识符

  • 目标 : 能够定义出正确, 并且符合规范的名字

  • 介绍 : 自己起的名字, 专业来讲都叫做标识符

    • 变量名
    • 类名
  • 规则 :

    • 数字 0 ~ 9
    • 字母 az AZ
    • _ $
    • 数字不能开头
    • 不能是 Java 中的关键字
    • 严格区分大小写
    没必要死记硬背这些规则, 心里清楚, 将来起名报错了, 知道错误在哪儿, 知道怎么改即可
    
  • 规范 (江湖规矩) :

    • 小驼峰命名法 : 变量

      • 如果是一个单词, 所有字母小写 age salary
      • 如果是多个单词, 从第二个单词开始, 首字母大写 maxAge minSalary
    • 大驼峰命名法 : 类

      • 如果是一个单词, 首字母大写 Student Demo Test
      • 如果是多个单词, 每个单词首字母大写 OperatorDemo ScannerDemo
    如果今天起名不顺畅, 最起码要做到见明知意
    ​
    int a = 18;  错误的
    int nianLing = 18;  正确的
    

08-键盘录入

  • 目标 : 能够使用 Scanner 从键盘录入整数和字符串
Scanner键盘录入的效果: 可以让程序中使用的数据, 来自于用户自己去指定的.
​
------------------------------------------------------------
​
步骤:
1. 找符咒
            位置: class的上面
            代码: import java.util.Scanner;
            涵义: 让自己的类, 能够从代码仓库中, 找到Scanner这张符咒.
2. 召唤精灵
            位置: main方法内部
            代码: Scanner sc = new Scanner(System.in);
            涵义: 将符咒中的精灵召唤出来, 被给它起名字叫做 sc
3. 指挥精灵干活
            位置: main方法内部
            代码: (思路: 指挥精灵干活, 拿着精灵的名字去指挥)
​
                    涵义: 指挥精灵从键盘录入一个整数, 并将接收到的数据, 交给了 age 变量
                    int age = sc.nextInt();
​
                    涵义: 指挥精灵从键盘录入一个字符串, 并将接收到的数据, 交给了 name 变量
                    String name = sc.next();
​
            结论: Scanner键盘录入只在学习期间有用, 在实际开发中, 肯定不用这个 !
package com.itheima.scanner;
​
import java.util.Scanner;
​
public class ScannerDemo {
    public static void main(String[] args) {
        // 召唤可以做键盘录入的精灵, 精灵的名字叫做 sc
        Scanner sc = new Scanner(System.in);
​
        System.out.println("请输入您的年龄: ");
        int age = sc.nextInt();     // 指挥精灵干活, 从键盘录入一个整数
        System.out.println("请输入您的姓名:");
        String name = sc.next();    // 指挥精灵干活, 从键盘录入一个字符串
​
        // 一起展示接收到的数据
        System.out.println(age);
        System.out.println(name);
    }
}
  • 这个代码, 不写个5遍以上, 肯定是不扎实的.

    • 前两遍 : 完全不熟悉, 照着写
    • 后三遍 : 尝试着自己写

09-算数运算符

  • 分类 :
+
-
*
----------------------------------
/ : 整数相除, 结果只能得到整数, 如果想要得到小数的结果, 需要有小数参与运算
% : 取模, 得到除法之后, 剩下的余数
package com.itheima.test;
​
import java.util.Scanner;
​
public class OperatorTest {
    /*
        需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
​
        数值拆分的公式:
​
                个位: 数值 % 10;
                十位: 数值 / 10 % 10;
                百位: 数值 / 10 / 10 % 10;
                千位: 数值 / 10 / 10 / 10 % 10;
                万位: 数值 / 10 / 10 / 10 / 10 % 10;
                ...
​
                最高位(数值最左侧的位)的简化计算:
                        1234 --> 最高位: 千位
                        45678 --> 最高位: 万位
​
                        百位: 数值 / 100            123 / 100 --> 1
                        千位: 数值 / 1000           4567 / 1000 --> 4
                        万位: 数值 / 10000           56789 / 10000 --> 5
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数:");
        int num = sc.nextInt();
​
        // 数值拆分
        int ge = num % 10;
        int shi = num / 10 % 10;
        int bai = num / 100;
​
        // 打印拆分之后的结果
        System.out.println("整数" + num + "的个位为:" + ge);
        System.out.println("整数" + num + "的十位为:" + shi);
        System.out.println("整数" + num + "的百位为:" + bai);
    }
}

10-字符串的拼接操作

  • 介绍 :

    • 当 + 号操作过程中, 如果遇到了双引号字符串, + 号就是字符串链接符, 不再是算数运算符
System.out.println("5+5="+5+5);	     // "5+5=" +  5  ---> "5+5=5" + 5 ----> "5+5=55"
System.out.println("5+5="+(5+5));    // "5+5=10"
-------------------------------------------------
System.out.println("5*5=" + 5 * 5);  // 5*5=25