黑马程序员技术交流社区

标题: 【石家庄校区】基础学习六日总结 [打印本页]

作者: 逐野    时间: 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