课程须知
A类知识:工作和面试常用,代码必须要手敲,需要掌握。 |
B类知识:面试会问道,工作不常用,代码不需要手敲,理解能正确表达即可。 |
C类知识:工作和面试不常用,代码不需要手敲,仅为了知识体系完整性,了解即可。 |
第二阶段 JAVA快速入门
本阶段是进入“程序员”的门槛,需要学习编程基本的知识:变量、数据类型、控制语句、面向对象。我们通过实际的案例,让大家一开始就通过游戏项目进入学习状态,寓教于乐,引起大家的兴趣。
同时,我们也深入内存底层,打扎实大家的基本功。本阶段内容学完,你就明白各个语言底层其实差异都不大。大家再去学其他编程语言也很容易入门。
第二单元 变量、数据类型、运算符
1 | 二进制-数字化语录-摩尔斯电码-脑机接口 | C |
2 | 二进制和十进制的转化 | C |
3 | 注释-单行和多行-注释和字节码文件的关系 | A |
4 | 标识符-关键字-驼峰原则 | A |
5 | 变量的本质-内存画图-变量声明和初始化 | A |
6 | 变量的分类和作用域(局部变量、成员变量、静态变量) | A |
7 | 常量和final | A |
8 | 基本数据类型介绍 | A |
9 | 整型变量和整型常量和各种进制 | A |
10 | 浮点型-float-double | A |
11 | char字符型-字符集历史-转义字符 | A |
12 | 布尔型boolean | A |
13 | 运算符总体介绍 | A |
14 | 算术运算符-自增自减 | A |
15 | 赋值和赋值扩展运算符 | A |
16 | 关系运算符详解 | A |
17 | 逻辑运算符-短路与和短路或问题 | A |
18 | 位运算-移位运算 | A |
19 | 字符串连接符 | A |
20 | 条件运算符详解 | A |
21 | 运算符优先级问题 | A |
22 | 自动类型转换详解 | A |
23 | 强制类型转换 | A |
24 | 类型转换常见错误-溢出问题 | A |
25 | 使用Scanner获得键盘的输入 | A |
五、变量的本质-内存画图-变量声明和初始化
(一)、变量(variable)
1、变量的本质
变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3; 表示a变量的空间大小为4个字节。
2、变量的声明
double salary;
long earthPopulation;
int age;
不同数据类型的常量会在内存中分配不同的空间,如图所示。
3、声明变量和变量的初始化
int age = 18;
double e = 2.718281828;
int i ,j; // 两个变量的数据类型都是int
i = 0;
j = 0;
int k = 0,m = 0;
(二)、实时效果反馈
1、关于变量的说法,错误的是:
A 变量本质上就是代表一个”可操作的存储空间”
B 可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值
C Java是一种强类型语言,每个变量都必须声明其数据类型。
D 变量对应的空间位置是不确定的,里面放置什么值也不确定
参考答案 1、 D
六、变量的分类和作用域(局部变量、成员变量、静态变量)
变量有三种类型:局部变量、成员变量(也称为实例变量)和静态变量。
(一)、局部变量、成员变量、静态变量的核心区别
类型 | 声明位置 | 从属于 | 生命周期(作用域) |
局部变量 | 方法或语句块内部 | 方法/语句块 | 从声明位置开始,直到方法或语句块执行完毕,局部变量消失 |
成员变量 (实例变量) | 类内部,方法外部 | 对象 | 对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失; |
静态变量 (类变量) | 类内部,static修饰 | 类 | 类被加载,静态变量就有效; 类被卸载,静态变量消失。 |
成员变量和静态变量不是目前重点,不要过多纠结理解与否。我们学习面向对象时,再重点讲解成员变量和静态变量。
1、局部变量(local variable)
方法或语句块内部定义的变量。生命周期是从声明位置开始到到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用。
【示例】局部变量的声明
public void test() {
int i;
i=10;
int j = i+5 ; // 编译正确
}
以上示例当中,i和j都是局部变量。
2、成员变量(也叫实例变量 member variable)
方法外部、类的内部定义的变量。从属于对象,生命周期伴随对象始终。如果不自行初始化,它会自动初始化成该类型的默认初始值。
数据类型 | 实始值 |
int | 0 |
double | 0.0 |
char | ‘\u0000’ |
boolean | false |
【示例】成员变量的声明
public class Test {
int i;
}
3、静态变量(类变量 static variable)
使用static定义。从属于类,生命周期伴随类始终,从类加载到卸载。(注:讲完内存分析后我们再深入!先放一放这个概念!)如果不自行初始化,与成员变量相同会自动初始化成该类型的默认初始值。
目前大家只需要了解基本的分类概念即可。不需要掌握,后面讲了方法、对象、类以后再深入学习。
【示例】静态变量的声明
public class Test {
static int i;
}
(二)、实时效果反馈
1、如下代码中,哪个变量是局部变量:
public class Test {
int a=1;
static int b=2;
public void test() {
int c=10;
}
}
A a
B b
C c
D a,b,c都是局部变量
参考答案 1、 C
七、常量和final
(一)、常量(Constant)
在Java语言中,用关键字final来定义一个常量。常量一旦被初始化后不能再更改。
声明格式:
final type varName = value;
【示例】常量的声明及使用
public class TestConstants {
public static void main(String[ ] args) {
final double PI = 3.14;
// PI = 3.15; //编译错误,不能再被赋值!
double r = 4;
double area = PI * r * r;
double circle = 2 * PI * r;
System.out.println("area = " + area);
System.out.println("circle = " + circle);
}
}
为了更好的区分和表述,一般将1、2、3、’a’、’b’、true、false、helloWorld等称为字符常量,而使用final修饰的PI等称为符号常量。
(二)、变量和常量命名规范
· 所有变量、方法、类名:见名知义
· 类成员变量:首字母小写和驼峰原则: monthSalary
· 局部变量:首字母小写和驼峰原则
· 常量:大写字母和下划线:MAX_VALUE
· 类名:首字母大写和驼峰原则: Man, GoodMan
· 方法名:首字母小写和驼峰原则: run(),runRun()
(三)、实时效果反馈
1、如下关于常量的说法,错误的是:
A 常量的命名规则:大写字母和下划线:MAX_VALUE
B 在Java语言中,用关键字final来定义一个常量。
C 常量被初始化后,能再修改。
D 常量被初始化后,不能再修改。
参考答案 1、 C
八、基本数据类型介绍
(一)、基本数据类型(primitive data type)
1、Java数据类型分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。
2、引用数据类型的大小统一为4个字节,记录的是其引用对象的地址!但是基本数据类型的大小不一致,byte占1个字节、short占2个字节、int占4个字节、long占8个字节、float占4个字节、double占8个字节……
本单元只学习基本数据类型。引用数据类型在后续数组和面向对象章节讲解。
(二)、实时效果反馈
1、如下关于java的数据类型,说法错误的是:
A Java数据类型分为两大类:基本数据类型、引用数据类型
B 基本数据类型有八种
C 引用数据类型的大小都是4个字节,纪录引用对象的地址
D 引用数据类型的大小是可变的,有时4个字节,有时8个字节
参考答案 1、 D