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
- 字母 a
z 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