JAVA基础学习
2017.01.20
1) 计算机基础知识(键盘功能键和快捷键)
- A:键盘功能键
- a:Tab
- b:Shift
- c:Ctrl
- d:Alt
- e:空格
- f:Enter
- g:Window
- h:上下左右键
- i:PrtSc(PrintScreen)屏幕截图
- B:键盘快捷键
- a:Ctrl+A 全选
- b:Ctrl+C 复制
- c:Ctrl+V 粘贴
- d:Ctrl+X 剪切
- e:Ctrl+Z 撤销
- f:Ctrl+S 保存
2) 计算机基础知识(常见的DOS命令)
- A:d: 回车 盘符切换
- B:dir(directory):列出当前目录下的文件以及文件夹
- C:cd (change directory)改变指定目录(进入指定目录)
- D:cd.. : 退回到上一级目录
- E:cd: 退回到根目录
- F:cls : (clear screen)清屏
- G:exit : 退出dos命令行(分割线上的需要掌握,下的了解)
- /=========================================================
- md (make directory) : 创建目录
- rd (remove directory): 删除目录
- del (delete): 删除文件,删除一堆后缀名一样的文件*.txt
- notepad 创建文件
- 删除带内容的文件夹
- rd + /s 文件夹名称(询问是否删除)
- rd + /q + /s 文件夹名称(直接删除)
3) Java语言基础(HelloWorld案例的编写和运行)
- A:定义类
- B:写main方法
- C:写输出语句
- D:Java程序开发运行与工作原理
E:编译和运行程序
class HelloWorld { public static void main(String[] args) { System.out.println("HelloWorld"); } }
4) Java语言基础(Java语言的书写格式(约定俗成))
- 1,大括号要对齐,并且成对写
- 2,左大括号前面有空格
- 3,遇到左大括号要缩进,Tab
- 4,方法和程序块之间加空行让程序看起来清晰
- 5,并排语句之间加空格,例如for语句
- 6,运算符两侧加空格
5) Java语言基础(关键字的概述和使用)
- A:什么是关键字
- 被Java语言赋予特定含义的单词
- B:关键字的特点
- 组成关键字的字母全部小写
- C:常见关键字
- public static void class等
- D:关键字的注意事项
- goto和const作为保留字存在,目前并不使用,类似Editplus这样的高级记事本,针对关键字有特殊的颜色标记,非常直观
6) Java语言基础(标识符的概述和组成规则)
- A:什么是标识符
- 就是给类,接口,方法,变量等起名字时使用的字符序列
- B:标识符的组成规则
- 英文大小写字母
- 数字字符
- $和_
- C:标识符注意事项
- 1,不能使用关键字
- 2,不能数字开头
7) Java语言基础(标识符中常见的命名规则)
- 见名知意
- A:包
- 最好是域名倒过来,要求所有的字母小写
- B:类或者接口
- 如果是一个单词首字母大写
- 如果是多个单词每个单词首字母大写(驼峰标识)
- C:方法或者变量
- 如果是一个单词全部小写
- 如果是多个单词,从第二个单词首字母大写
- D:常量
- 如果是一个单词,所有字母大写
- 如果是多个单词,所有的单词大写,用下划线区分每个单词
2017.01.22
1) Java语言基础(不同进制数据的表现形式)(掌握)
- A:二进制的数据表现形式
- 由0,1组成。以0b(b可以大写也可以小写)开头(JDK1.7版本可以表示二进制了)
- B:八进制的数据表现形式
- 由0,1,…7组成。以0开头
- C:十进制的数据表现形式
- 由0,1,…9组成。整数默认是十进制的
- D:十六进制的数据表现形式
- 由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头
2)Java语言基础(数据类型的概述和分类)(掌握)
- A:为什么有数据类型
- Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
- B:Java中数据类型的分类
- 基本数据类型
- 引用数据类型
- 面向对象部分讲解
- C:基本数据类型分类(4类8种)
- 整数型
- byte 占一个字节 -128到127
- short 占两个字 -2^15~2^15-1
- int 占四个字节 -2^31~2^31-1
- long 占八个字节 -2^63~2^63-1
- 浮点型
- float 占四个字节 -3.403E38~3.403E38 单精度
- double 占八个字节-1.798E308~1.798E308 双精度
- 字符型
- char 占两个字节 0~65535(注意区分和单片机编译系统的不同之处)
- 布尔型
- boolean
- boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
- boolean
- 整数型
3) Java语言基础(long与float的取值范围谁大谁小)(了解)
- 进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的
- byte,short,char – int – long – float – double
- long:2^63-1
- float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1
- byte,short,char – int – long – float – double
4)Java语言基础(算术运算符++和–的练习)(掌握)
- 面试题
- byte b = 10;
- b++;
- b = b + 1;
- 问哪句会报错,为什么
- 第三句代码会报错,因为1是int类型,b是byte类型,直接相加赋值给b可能会损失精度!!!
5) Java语言基础(赋值运算符的面试题)(掌握)
- 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
- short s=1;s = s+1;
- short s=1;s+=1;
- 第一句会报错,因为定义s是short类型,在s+1的时候,1是int类型,直接相加赋值给S可能会损失精度。而第二句中定义了s为short类型,自加1仍然是short类型,不会报错
2017.01.24
1) Java语言基础(逻辑运算符的基本用法)(掌握)
A:逻辑运算符有哪些
- & , | , ^ , !
- && , ||
注意事项:
- a:逻辑运算符一般用于连接boolean类型的表达式或者值。
- b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
- 算术表达式:a + b
- 比较表达式:a == b(条件表达式)
- B:结论:
- & 逻辑与:有false则false。
- | 逻辑或:有true则true。
- ^ 逻辑异或:相同为false,不同为true。
- ! 逻辑非:非false则true,非true则false。
- 特点:偶数个不改变本身。
2) Java语言基础(位运算符的基本用法1)(了解)
A:位运算符有哪些
- & , | , ^ , ~ , >> , >>> , <<
& , | , ^ , ~ 的用法
- &:有0则0
- |:有1则1
- ^:相同则0,不同则1
- ~:按位取反
4) Java语言基础(位异或运算符的特点及面试题)(掌握)
A:案例演示
位异或运算符的特点
^的特点:一个数据对另一个数据位异或两次,该数本身不变。
B:面试题:
- 请自己实现两个整数变量的交换
- 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。
5) Java语言基础(位运算符的基本用法2及面试题)(了解)
- A:案例演示 >>,>>>,<<的用法:
- << : 左移 左边最高位丢弃,右边补齐0
- >> : 右移 最高位是0,左边补齐0;最高为是1,左边补齐1
- >>> : 无符号右移 无论最高位是0还是1,左边补齐0
- 最有效率的算出2 * 8的结果
6) Java语言基础(三元运算符的基本用法)(掌握)
- A:三元运算符的格式
- (关系表达式) ? 表达式1 : 表达式2;
7) Java语言基础(键盘录入的基本格式讲解)(掌握)
- A:为什么要使用键盘录入数据
- a:为了让程序的数据更符合开发的数据
- b:让程序更灵活一下
- B:如何实现键盘录入呢?
- 先照格式来。
- a:导包
- 格式:
- import java.util.Scanner;
- 位置:
- 在class上面。
- 格式:
- b:创建键盘录入对象
- 格式:
- Scanner sc = new Scanner(System.in);
- 格式:
- c:通过对象获取数据
- 格式:
- int x = sc.nextInt();
- 格式:
8) Java语言基础(顺序结构语句)(了解)
- A:什么是流程控制语句
- 流程控制语句:可以控制程序的执行流程。
- B:流程控制语句的分类
- 顺序结构
- 选择结构
- 循环结构
- C:执行流程:
- 从上往下,依次执行。
9) Java语言基础(选择结构if语句格式3及其使用)(掌握)
- A:if语句的格式3:
-
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
…
else {
语句体n+1;
} B:执行流程:
- 首先计算比较表达式1看其返回值是true还是false,
- 如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,
如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,
如果都是false,就执行语句体n+1。
- C:注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示
10) Java语言基础(选择结构switch语句的格式及其解释)(掌握)
- A:switch语句的格式
-
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
} - B:执行流程
- 先计算表达式的值
- 然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句
2017.01.25
1) Java语言基础(循环结构概述和for语句的格式及其使用)
- A:循环结构的分类
- for,while,do…while
- B:循环结构for语句的格式:
-
for(初始化表达式;条件表达式;循环后的操作表达式) {
循环体;
} - C执行流程:
- a:执行初始化语句
- b:执行判断条件语句,看其返回值是true还是false
- 如果是true,就继续执行
- 如果是false,就结束循环
- c:执行循环体语句;
- d:执行循环后的操作表达式
- e:回到B继续。
2) Java语言基础(循环结构while语句的格式和基本使用)
- A:循环结构while语句的格式:
while循环的基本格式: while(判断条件语句) { 循环体语句; } 完整格式: 初始化语句; while(判断条件语句) { 循环体语句; 控制条件语句; }
- B:执行流程:
- a:执行初始化语句
- b:执行判断条件语句,看其返回值是true还是false
- 如果是true,就继续执行
- 如果是false,就结束循环
- c:执行循环体语句;
- d:执行控制条件语句
- e:回到B继续。
3) Java语言基础(循环结构do…while语句的格式和基本使用)
- A:循环结构do…while语句的格式:
do { 循环体语句; }while(判断条件语句); 完整格式; 初始化语句; do { 循环体语句; 控制条件语句; }while(判断条件语句);
- B:执行流程:
- a:执行初始化语句
- b:执行循环体语句;
- c:执行控制条件语句
- d:执行判断条件语句,看其返回值是true还是false
- 如果是true,就继续执行
- 如果是false,就结束循环
- e:回到b继续。
4) Java语言基础(循环结构三种循环语句的区别)
- A:案例演示
- 三种循环语句的区别:
- do…while循环至少执行一次循环体。
- 而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
B:案例演示
- for循环和while循环的区别:
- A:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用谁就用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
注意: '\x' x表示任意,\是转义符号,这种做法叫转移字符。
'\t' tab键的位置 '\r' 回车 '\n' 换行 '\"' '\''
- for循环和while循环的区别:
5) Java语言基础(控制跳转语句return语句)
- A:return的作用
- 返回
- 其实它的作用不是结束循环的,而是结束方法的。
6) Java语言基础(方法概述和格式说明)
- A:为什么要有方法
- 提高代码的复用性
- B:什么是方法
- 完成特定功能的代码块。
- C:方法的格式
-
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
方法体语句;
return 返回值;
} - D:方法的格式说明
- 修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
- 返回值类型:就是功能结果的数据类型。
- 方法名:符合命名规则即可。方便我们的调用。
- 参数:
- 实际参数:就是实际参与运算的。
- 形式参数;就是方法定义上的,用于接收实际参数的。
- 参数类型:就是参数的数据类型
- 参数名:就是变量名
- 方法体语句:就是完成功能的代码。
- return:结束方法的。
- 返回值:就是功能的结果,由return带给调用者。
7) Java语言基础(方法的注意事项)
- A:方法调用(有具体返回值)
- a:单独调用,一般来说没有意义,所以不推荐。
- b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
- c:赋值调用,推荐方案。
8) Java语言基础(方法重载概述和基本使用)
- A:方法重载概述 (很重要)
- 求和案例
- 2个整数
- 3个整数
- 4个整数
- 求和案例
B:方法重载:
在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
参数列表不同:
- A:参数个数不同
- B:参数类型不同
- C:参数的顺序不同(算重载,但是在开发中不用)
2017.01.28
1) Java语言基础(数组概述和定义格式说明)(了解)
- A:为什么要有数组(容器)
- 为了存储同种数据类型的多个值
B:数组概念
- 数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
- 数组既可以存储基本数据类型,也可以存储引用数据类型。
C:数组定义格式
数据类型[] 数组名 = new 数据类型[数组的长度];
2) Java语言基础(数组的初始化动态初始化)(掌握)
- A:什么是数组的初始化
- 就是为数组开辟连续的内存空间,并为每个数组元素赋予值
- B:如何对数组进行初始化
- a:动态初始化 只指定长度,由系统给出初始化值
- int[] arr = new int[5];
- b:静态初始化 给出初始化值,由系统决定长度
- a:动态初始化 只指定长度,由系统给出初始化值
- C:动态初始化的格式:
- 数据类型[] 数组名 = new 数据类型[数组长度];
3) Java语言基础(Java中的内存分配以及栈和堆的区别)
- A:栈(掌握)
- 存储局部变量
- B:堆(掌握)
- 存储new出来的数组或对象
- C:方法区
- 面向对象部分讲解
- D:本地方法区
- 和系统相关
- E:寄存器
- 给CPU使用
4) Java语言基础(数组操作的两个常见小问题越界和空指针)(掌握)
- a:ArrayIndexOutOfBoundsException:数组索引越界异常
- 原因:你访问了不存在的索引。
- b:NullPointerException:空指针异常
- 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
- int[] arr = {1,2,3};
- arr = null;
- System.out.println(arr[0]);
5) Java语言基础(数组的操作1遍历)(掌握)
A:案例演示
- 数组遍历:就是依次输出数组中的每一个元素。
- 数组的属性:arr.length数组的长度
数组的最大索引:arr.length - 1;
public static void print(int[] arr) { for (int i = 0;i < arr.length ;i++ ) { System.out.print(arr[i] + " "); } }
6) Java语言基础(二维数组概述和格式1的讲解)(了解)
- A:二维数组概述
- B:二维数组格式1
- int[][] arr = new int[3][2];
- C:二维数组格式1的解释
D:注意事项
- a:以下格式也可以表示二维数组
- 1:数据类型 数组名[][] = new 数据类型[m][n];
- 2:数据类型[] 数组名[] = new 数据类型[m][n];
- B:注意下面定义的区别
int x; int y; int x,y; int[] x; int[] y[]; int[] x,y[]; x是一维数组,y是二维数组
- a:以下格式也可以表示二维数组
7) Java语言基础(二维数组格式2的讲解及其内存图解)(了解)
- A:二维数组格式2
- int[][] arr = new int[3][];
8) Java语言基础(二维数组格式3的讲解及其内存图解)(了解)
- A:二维数组格式3
- int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
- 讲解格式,输出数据,并画内存图
9) Java语言基础(注意事项)
- Java和C语言有相似之处,也有不同之处:
- JAVA的变量值是值,地址值也是值
- JAVA在方法里调用方法外变量可以直接修改变脸地址所对应的值,而C语言必须使用指针,这是两者的异同,必须注意