A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 柳柳桑 黑马粉丝团   /  2015-12-24 17:27  /  12283 人查看  /  31 人回复  /   7 人收藏 转载请遵从CC协议 禁止商业使用本文


入学基础day05笔记

05.01_Java语言基础(数组概述和定义格式说明)(了解)
  • A:为什么要有数组(容器)
    • 为了存储同种数据类型的多个值
  • B:数组概念

    • 数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
    • 数组既可以存储基本数据类型,也可以存储引用数据类型。
  • C:数组定义格式 数据类型[] 数组名 = new 数据类型[数组的长度];

05.02_Java语言基础(数组的初始化动态初始化)(掌握)
  • A:什么是数组的初始化
    • 就是为数组开辟连续的内存空间,并为每个数组元素赋予值
  • B:如何对数组进行初始化
    • a:动态初始化 只指定长度,由系统给出初始化值
      • int[] arr = new int[5];
    • b:静态初始化 给出初始化值,由系统决定长度
  • C:动态初始化的格式:
    • 数据类型[] 数组名 = new 数据类型[数组长度];
  • D:案例演示
    • 输出数组名称和数组元素

05.03_Java语言基础(Java中的内存分配以及栈和堆的区别)
  • A:栈(掌握)
    • 存储局部变量
  • B:堆(掌握)
    • 存储new出来的数组或对象
  • C:方法区
    • 面向对象部分讲解
  • D:本地方法区
    • 和系统相关
  • E:寄存器
    • 给CPU使用

05.04_Java语言基础(数组的内存图解1一个数组)(掌握)
  • A:画图演示
    • 一个数组

05.05_Java语言基础(数组的内存图解2二个数组)(了解)
  • A:画图演示
    • 二个不同的数组

05.06_Java语言基础(数组的内存图解3三个引用两个数组)(了解)
  • A:画图演示
    • 三个引用,有两个数组的引用指向同一个地址

05.07_Java语言基础(数组的初始化静态初始化及内存图)(掌握)
  • A:静态初始化的格式:
    • 格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
    • 简化格式:
      • 数据类型[] 数组名 = {元素1,元素2,…};
  • B:案例演示
    • 对数组的解释
    • 输出数组名称和数组元素
  • C:画图演示
    • 一个数组

05.08_Java语言基础(数组操作的两个常见小问题越界和空指针)(掌握)
  • A:案例演示
    • a:ArrayIndexOutOfBoundsException:数组索引越界异常
      • 原因:你访问了不存在的索引。
    • b:NullPointerException:空指针异常
      • 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
      • int[] arr = {1,2,3};
      • arr = null;
      • System.out.println(arr[0]);

05.09_Java语言基础(数组的操作1遍历)(掌握)
  • A:案例演示

    • 数组遍历:就是依次输出数组中的每一个元素。
    • 数组的属性:arr.length数组的长度
    • 数组的最大索引:arr.length - 1;
      1. public static void print(int[] arr) {
      2.     for (int i = 0;i < arr.length ;i++ ) {
      3.         System.out.print(arr[i] + " ");
      4.     }
      5. }
      复制代码


05.10_Java语言基础(数组的操作2获取最值)(掌握)
  • A:案例演示

    • 数组获取最值(获取数组中的最大值最小值)
      1. public static int getMax(int[] arr) {
      2.     int max = arr[0];
      3.     for (int i = 1;i < arr.length ;i++ ) {          //从数组的第二个元素开始遍历
      4.         if (max < arr[i]) {                         //如果max记录的值小于的数组中的元素
      5.             max = arr[i];                           //max记录住较大的
      6.         }
      7.     }

      8.     return max;
      9. }
      复制代码


05.11_Java语言基础(数组的操作3反转)(掌握)
  • A:案例演示

    • 数组元素反转(就是把元素对调)
      1. public static void reverseArray(int[] arr) {
      2.     for (int i = 0;i < arr.length / 2 ; i++) {
      3.         //arr[0]和arr[arr.length-1-0]交换
      4.         //arr[1]和arr[arr.length-1-1]交换
      5.         //arr[2]和arr[arr.lentth-1-2]
      6.         //...

      7.         int temp = arr[i];
      8.         arr[i] = arr[arr.length-1-i];
      9.         arr[arr.length-1-i] = temp;
      10.     }
      11. }
      复制代码

05.12_Java语言基础(数组的操作4查表法)(掌握)
  • A:案例演示

    • 数组查表法(根据键盘录入索引,查找对应星期)
      1. public static char getWeek(int week) {
      2.     char[] arr = {' ','一','二','三','四','五','六','日'};     //定义了一张星期表
      3.     return arr[week];                                           //通过索引获取表中的元素
      4. }
      复制代码


05.13_Java语言基础(数组的操作5基本查找)(掌握)
  • A:案例演示

    • 数组元素查找(查找指定元素第一次在数组中出现的索引)
      1. public static int getIndex(int[] arr,int value) {
      2.     for (int i = 0;i < arr.length ;i++ ) {              //数组的遍历
      3.         if (arr[i] == value) {                          //如果数组中的元素与查找的元素匹配
      4.             return i;
      5.         }
      6.     }
      7.     return -1;
      8. }
      复制代码

05.14_Java语言基础(二维数组概述和格式1的讲解)(了解)
  • A:二维数组概述
  • B:二维数组格式1
    • int[][] arr = new int[3][2];
  • C:二维数组格式1的解释
  • D:注意事项

    • a:以下格式也可以表示二维数组
      • 1:数据类型 数组名[][] = new 数据类型[m][n];
      • 2:数据类型[] 数组名[] = new 数据类型[m][n];
    • b:注意下面定义的区别
      1. int x;
      2. int y;
      3. int x,y;

      4. int[] x;
      5. int[] y[];

      6. int[] x,y[];    x是一维数组,y是二维数组
      复制代码

  • E:案例演示
    • 定义二维数组,输出二维数组名称,一维数组名称,一个元素

05.15_Java语言基础(二维数组格式1的内存图解)(了解)
  • A:画图演示
    • 画图讲解上面的二维数组名称,一维数组名称,一个元素的值的问题

05.16_Java语言基础(二维数组格式2的讲解及其内存图解)(了解)
  • A:二维数组格式2
    • int[][] arr = new int[3][];
  • B:二维数组格式2的解释
  • C:案例演示
    • 讲解格式,输出数据,并画内存图

05.17_Java语言基础(二维数组格式3的讲解及其内存图解)(了解)
  • A:二维数组格式3
    • int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
  • B:二维数组格式3的解释
  • C:案例演示
    • 讲解格式,输出数据,并画内存图

05.18_Java语言基础(二维数组练习1遍历)(掌握)
  • A:案例演示

    • 需求:二维数组遍历
    • 外循环控制的是二维数组的长度,其实就是一维数组的个数。
    • 内循环控制的是一维数组的长度。
      1. int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};

      2. for (int i = 0;i < arr.length ;i++ ) {          //获取到每个二维数组中的一维数组
      3.     for (int j = 0;j < arr[i].length ;j++ ) {   //获取每个一维数组中的元素
      4.         System.out.print(arr[i][j] + " ");
      5.     }

      6.     System.out.println();
      7. }
      复制代码


05.19_Java语言基础(二维数组练习2求和)(掌握)
  • A:案例演示
    1. 需求:公司年销售额求和
    2. 某公司按照季度和月份统计的数据如下:单位(万元)
    3. 第一季度:22,66,44
    4. 第二季度:77,33,88
    5. 第三季度:25,45,65
    6. 第四季度:11,66,99

    7. int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};

    8. int sum = 0;                                    //定义变量,记录每次相加的结果
    9. for (int i = 0;i < arr.length ;i++ ) {          //获取每一个一维数组
    10.     for (int j = 0;j < arr[i].length ;j++ ) {   //获取每一个一维数组中的元素
    11.         sum = sum + arr[i][j];                  //累加
    12.     }
    13. }

    14. System.out.println(sum);
    复制代码

05.20_Java语言基础(思考题Java中的参数传递问题及图解)(掌握)
  • A:案例演示
    1. 看程序写结果,并画内存图解释
    2. public static void main(String[] args) {
    3.     int a = 10;
    4.     int b = 20;
    5.     System.out.println("a:"+a+",b:"+b);
    6.     change(a,b);
    7.     System.out.println("a:"+a+",b:"+b);

    8.     int[] arr = {1,2,3,4,5};
    9.     change(arr);
    10.     System.out.println(arr[1]);
    11. }

    12. public static void change(int a,int b) {
    13.     System.out.println("a:"+a+",b:"+b);
    14.     a = b;
    15.     b = a + b;
    16.     System.out.println("a:"+a+",b:"+b);
    17. }

    18. public static void change(int[] arr) {
    19.     for(int x=0; x<arr.length; x++) {
    20.         if(arr[x]%2==0) {
    21.             arr[x]*=2;
    22.         }
    23.     }
    24. }
    复制代码

05.21_day05总结
  • 把今天的知识点总结一遍。

31 个回复

倒序浏览
很好的文章--有没有java基础的面向对象的练习题

点评

现在黑马入学流程的第一步就是自测环节,那里什么题目都有。  发表于 2015-12-25 09:30
回复 使用道具 举报
路过,标记一下,这是好东西
回复 使用道具 举报

数组获取最值(获取数组中的最大值最小值)
public static int getMax(int[] arr) {
    int max = arr[0];
    for (int i = 1;i < arr.length ;i++ ) {          //从数组的第二个元素开始遍历
        if (max < arr[i]) {                         //如果max记录的值小于的数组中的元素
            max = arr[i];                           //max记录住较大的
        }
    }

    return max;
}
我想问的是,这个是求的最大值还是最小值?最大值和最小值得代码就下面这句不一样,怎么更好的区分呢 if (max < arr[i]) {   max = arr[i];}
回复 使用道具 举报 1 0
黑色风衣 发表于 2016-1-1 14:34
数组获取最值(获取数组中的最大值最小值)
public static int getMax(int[] arr) {
    int max = arr[0];

我可以帮你问问我朋友
回复 使用道具 举报
很详细对小白很有作用
回复 使用道具 举报
这些只是有点难,还得研究研究
回复 使用道具 举报
get   感谢整理
回复 使用道具 举报
很好的东西啊
回复 使用道具 举报
复习一遍...
回复 使用道具 举报
记录的很详细,非常好
回复 使用道具 举报
黑色风衣 发表于 2016-1-1 14:34
数组获取最值(获取数组中的最大值最小值)
public static int getMax(int[] arr) {
    int max = arr[0];

看变量名字,一般我们定义变量的名字都会见名知义,例如最大定义max,最小定义为min,用英文的整个单词或取前三个字母
回复 使用道具 举报
冯佳老师 发表于 2016-2-16 17:40
看变量名字,一般我们定义变量的名字都会见名知义,例如最大定义max,最小定义为min,用英文的整个单词或 ...

谢谢回复.
回复 使用道具 举报
好好学习
回复 使用道具 举报
太好了 为什么第6天的不能下载呢
回复 使用道具 举报
总结的不错,就是例子少了点
回复 使用道具 举报
非常详细 谢谢
回复 使用道具 举报
东西好全面..
回复 使用道具 举报
学习.................
回复 使用道具 举报
正在看这个老师讲的课程,非常棒
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马