黑马程序员技术交流社区
标题: 【石家庄校区】基础学习六日总结 [打印本页]
作者: 逐野 时间: 2017-11-29 22:51
标题: 【石家庄校区】基础学习六日总结
本帖最后由 小石姐姐 于 2017-12-7 14:50 编辑
day 01常用DOS命令
打开控制台:
win + R,然后输入cmd回车
d: 回车 盘符切换
dir(directory):列出当前目录下的文件以及文件夹
cd (change directory)改变指定目录(进入指定目录)
进入 cd 目录;cd 多级目录
回退 cd.. ;cd\
cls : (clear screen)清屏
exit : 退出dos命令行
ava跨平台的原理:
mjrejdk的介绍 JVM:
JavaVirtualMachine,Java虚拟机.Java实现的虚拟的计算机,在不同的操作系统中模拟出相同的运行环境
JRE:
JavaRuntimeEnvironment,Java运行时环境.
包括JVM和Java核心类库
是运行Java程序的最小环境
JDK:
JavaDevelopmentKit,Java开发工具包
包括JRE和Java开发工具(javac等)
JVM,JRE,JDK的关系:
JVM<JRE<JDK
数据类型转换:
隐式转换:
byte,short,char-->int-->long-->float-->double
强制转换:
目标类型变量名=(目标类型)(被转换的变量);
inta=(int)1.3;
byte,short,char进行运算时,会转为int
day02
Eclipse是一个集成开发环境(IDE),集成了代码编写功能,分析功能,便宜,调试功能等一体化的开发软件。
特点: 纯Java语言编写、免安装、扩展性强
算术运算符的基本用法
运算符:是对于常量和变量进行操作的符号
表达式:用运算符连接起来的符合JAVA语法的式子。不同的运算符连接的表达式是不同类型的表达式
分类:
1.算术运算符
2.赋值运算符
3.关系运算符
4.逻辑运算符
5.三元运算符
算术运算符: +,-,*,/,%,++,--
% : 取余
%用于获取想个数据相除时候的余数
/ 用于两个数据相除时候的商
++: 自增1
-- : 自减1
字符参与运算,其实是拿字符在计算机中存取的数值来计算的。
关系运算符
逻辑运算符的基本使用
逻辑运算符:用于连接关系表达式
& (与), | (或), ^(异或)【相同为false,不同为true】 , !(非)【true为false,false为true】
&& 【双与】、 || 【双或】 -- &&和&结果一样,|和||结果一样
三元运算符:
关系表达式?表达式1:表达式2
执行流程:
计算关系表达式的值,看是true还是false
如果是true,表达式1就是结果
如果是false,表达式2就是结果
day03
If 语句:
if(){
}else if(表达式){语句1
}else if(){语句2
}.....
else{语句n+1
}
switch 语句
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
........
default:
语句体 n+1;
break;
}
格式解释:
表达式:byte short int char
case 后0面的值:就是用来和表达式的值进行匹配的内容 只能是常量
break:中断
default:所有值都不匹配 执行default
for循环语句
for(int i = 1;i<=1000;i++){
循环体语句System.out.println("我错了");
}
适用于 知道循环多少次的时候。
while 循环
int i = 1;
while(i<=100){
syso(循环体) sun += x
i++
}
do...while 循环
格式 初始化语句
do{
循环语句;
控制条件语句;
}while(判断条件语句);
int i = 1;
do {
syso(循环语句);
i++;
}while(i<=100);
区别:A: do...while 循环至少执行一次循环
B: for/while 循环必须判定条件成立才能执行循环
推荐使用循环顺序:for---- while------ do.... while
break:中断
continue:中断一次(跳过) 再执行
day04
Random类
作用: 生成一个随机数
步骤:
导包: `import java.util.Random;`
创建对象: `Random r = new Random();`
生成随机数: `int n = r.nextInt(10);`, 获取0到9的随机数(0到10, 包含0不包含10)
数组概念: 存储同一种数据类型的多个元素的容器
定义:
`数据类型[] 数组名;`, **推荐**
`数据类型 数组名[];`
初始化
动态初始化: 我们给定数组长度, 由系统给定元素的初始值
格式: `数据类型[] 数组名 = new 数据类型[数组长度];`
示例: `int[] arr = new int[3];`
静态初始化: 我们给定元素的初始值, 由系统给定数组长度
格式:
普通格式: `数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, ...};`
示例: `int[] arr = new int[]{1, 2, 3};`
简化格式: `数据类型[] 数组名 = {元素1, 元素2, ...};`
示例: `int[] arr = {1,2,3};`
数组的长度
什么是长度? 数组中元素的个数
数组名.length: length是属性, 获取数组的长度
数组中元素的默认值
int: `0`
float, double: `0.0`
char: `\u0000`
boolean: `false`
引用类型: `null`
数组元素的访问
格式: `数组名[索引]`
数组的索引: 元素的编号, 从0开始
数组的遍历
什么叫做遍历: 依次获取数组中的所有元素
如何遍历? for循环实现
二维数组
什么是二维数组: 元素为一维数组的数组
定义
`数据类型[][] 数组名;`, **推荐**
`数据类型[] 数组名[];`
`数据类型 数组名[][];`
初始化
动态初始化
格式: `数据类型[][] 数组名 = new 数据类型[二维数组的长度][一维数组的长度];`
示例: `int[][] arr = new int[2][3];`
静态初始化
普通格式: `数据类型[][] 数组名 = new 数据类型[][]{{元素1, 元素2,...}, {元素1, 元素2,...}, ...};`
示例: `int[][] arr = new int[][]{{1, 2}, {3, 4, 5}};`
简化格式: `数据类型[][] 数组名 = {{元素1, 元素2,...}, {元素1, 元素2,...}, ...};`
访问元素:
格式: `数组名[二维数组的索引][一维数组的索引]`
二维数组的遍历: 嵌套for循环
数组操作常见的2个异常:
`ArrayIndexOutOfBoundsException`: 数组索引越界异常
发生原因: 使用了不存在的索引
如何避免: 检查索引, 防止越界
`NullPointerException`: 空指针异常
发生原因: 引用类型的变量保存的值为null, 然后访问了数组元素或是调用了方法或属性
如何避免: `if (引用类型变量 != null) {操作}`
数组获取最值
两个数组变量指向同一个数组的操作
Java内存
内存分区
栈: 存放局部变量
垃圾会立即回收
堆: 存放new出来的对象
垃圾要在垃圾回收器空闲时回收
方法区
本地方法区
寄存器
数组的内存分配
`int[] arr`: 在栈中开辟内存空间
`new int[3];`: 在堆中开辟内存空间, 并初始化元素的默认值
`=`: 将堆内存中数组的地址值赋值给arr变量
```java
// 一维数组的遍历
int[] arr = {1, 2, 3};
for (int i = 0; i < arr.length; i++) {
syso(arr);
}
// 二维数组的遍历
int[][] arr2 = {{1, 2}, {3, 4, 5}};
for (int i = 0; i < arr2.length; i++) {
for (int j = 0; j < arr2.length; j++) {
syso(arr2[j]);
}
}
for (int i = 0; i < arr2.length; i++) {
int[] subArr = arr2;
for (int j = 0; j < subArr.length; j++) {
syso(subArr[j]);
}
}
day05
方法格式
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
函数体;
return 返回值;
}
有明确返回值的方法调用:
单独调用:没有意义 【方法名(参数列表)】
-- sum(10, 20);
输出调用:有意义,但是不够好,因为我可能需要把结果进行下一步操作。
-- System.out.println(sum(10, 20));
赋值调用:推荐方式
-- int result = sum(10, 20);
void:
当方法没有返回值时,返回值类型写void
注意:
返回值类为viod的方法只能单独调用
void作为返回值类型的方法,可以不写return语句,或使用return。结束方法,但是不能使用return;
方法重载的概述和基本使用
方法重载(Overload):在同一个类中,出现了方法名相同的现象,或者情况。
方法重载特点:
1.在同一个类中
2.方法名相同
2.参数列表不同(与返回值无关、与参数变量名无关、和方法体无关)
a.参数个数不同
b.参数类型不同(包括数据类型相同且参数列表顺序不同)
day06
断点调试的概念
断点调试的作用:
1.查看程序的执行流程
2.调试程序
断点: 其实就是一个标记
Eclipse断点调试常用操作:
如何设置断点: 你想看哪里的程序,你就在那个有效程序的左边双击即可。
在哪里设置断点:哪里不会点哪里。
常用断点:目前,我们经常在每个方法的第一条有效语句上都加。
如何运行设置断点后的程序: 右键 -- Debug as -- Java Application
看哪些地方:
Debug:断点测试的地方【在这个地方,记住F6,或者点击也可以。一次看一行的执行过程。】
Variables:查看程序的变量变化
ForDemo:被查看的源文件
Console:控制台
如何去断点: 再次双击即可
找到Debug视图,Variables界面,找到Breakpoints,并点击,然后看到所有的断点,最后点击那个双叉。
注意:断点必须加在有效的语句上;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |