JAVA入门笔记~基础知识day03

基础知识day03

1. 数组

1.1 数组的作用和特点

  • 作用:数组可用于存储同一类型的==多个数据==,是一个java的数据容器。
  • 特点:数组长度固定,所存数据类型一致。

1.2 数组的定义格式与初始化

  • 数据类型[] 数组名 = new 数据类型[]{元素}
    • 动态初始化: 数据类型[] 数组名 = new 数据类型[数组长度]
    • 静态初始化: 数据类型[] 数组名 = {元素}
  • 数据类型 数组名[] (不推荐这样使用)

1.3 数组元素访问

  • 数组变量存储的是什么

    • 数组在内存中的地址值
  • 什么是索引

    • 数组索引:数组元素的编号,从0开始,最大值为数组长度-1。
    • 可以通过索引操作数组元素。
  • 数组元素访问的格式

    • 数组名[索引]

      public class ArrayDemo {
          public static void main(String[] args) {
              //定义并初始化长度为3的int数组
              int[] arr = new int[3];
      
              //输出数组名,得到一个地址值
              System.out.println(arr);  //[I@880ec60
      
              //输出数组中的元素,动态初始化默认值0
              System.out.println(arr[0]); 
              System.out.println(arr[1]); 
              System.out.println(arr[2]); 
          }
      }
      

1.4 数组的遍历

1.4.1 如何获取数组长度?
  • 数组名.length
1.4.2 如何遍历数组?
//for循环进行数组遍历
public class ArrayDemo2 {
    public static void main(String[] args) {
        //定义数组
        int[] arr = {11, 22, 33, 44, 55};

        //使用for循环遍历并打印
        for(int i=0; i <arr.length; i++) {
            System.out.println(arr[x]);
        }
    }
}

1.5 数组操作的常见问题

1.5.1 数组索引越界异常:ArrayIndexOutOfBoundsException
  • 产生原因:访问到了数组中不存在的索引。
  • 如何避免:在索引范围内访问数组元素。
1.5.2 空指针异常:NullPointerException
  • 产生原因:数组地址为null,此时操作数组元素就会报空指针异常。
  • 注意:一旦出现空指针异常,要在代码中进行修改或进行非空判断,避免空指针异常产生。

2. 方法

2.1 方法的概述

  • 什么是方法?
    • 方法是将具有独立功能的代码组成一个整体,使其成为具有特殊功能的==代码块==。
  • 方法的两个注意
    • 方法必须先定义才能使用。(方法定义)
    • 方法定义后不会自动运行,需要手动调用才能执行方法的功能。(方法调用)

2.2 方法的定义和调用

  • 方法定义的两个明确

    • 明确返回值类型(是否有返回值,返回值的类型)
    • 明确参数列表(有没有参数,有几个,参数类型)
  • 定义格式: 修饰符 返回值类型 方法名( 有参或者无参 ){ 方法体代码 }

    public static void 方法名(){
        方法体代码; //需要在方法内完成的代码
    }
    
  • 注意: 不能嵌套定义

  • 调用格式: 方法名(有参或者无参);

    • 直接调用:方法名(实参),会丢失返回值

    • 输出调用:System.out.println( 方法名(实参) );//在控制台打印结

    • 赋值调用:数据类型 变量 = 方法名(实参);

2.3 方法重载

  • 什么是方法重载

    • 同一个类中,出现了多个同名的方法,叫做方法重载。
  • 构成方法重载的条件

    • 多个方法在同一个类中。
    • 多个方法名称相同。
    • 多个方法的参数列表不同(个数或者类型不同)。

    注意
    方法重载与返回值和参数名称无关。

  • 方法重载的作用

    • 方便程序员对参数不同,但是功能相同或相似的方法进行统一的命名和调用。
  • 调用重载的方法

    • 调用时,虚拟机会根据参数列表的不同来区分调用对应的重载方法。

2.4 方法参数传递

  • 基本数据类型
    • 值传递,形参的改变不影响实参
  • 引用数据类型
    • 地址传递,形参的改变会直接影响实参值

3. Debug模式

3.1 什么是Debug模式?

  • debug是供程序员使用的程序调试工具,可以用于查看程序的执行流程,也可以用于追踪程序执行过程。

  • 更多的时候是因为程序出问题了,所以使用Debug工具进行调试,找到程序出错的原因和位置。

3.2 Debug常用按钮介绍(IDEA版)

Debug01.png

3.3 Debug工具使用

  • 如何加断点

    • 选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可


      Debug02.png
    • 注意:不要在注释上打断点,因为注释是不会被程序执行的。

  • 如何运行加了断点的程序

    • 在代码区域右键Debug执行


      Debug03.png
  • 看哪里

    • 看Debugger窗口


      Debug04.png
  • 点哪里

    Debug05.png

    • Step Into:点击Step Into,或者按F7,表示步入代码,遇到当前行代码是方法调用时,直接进入方法内。
    • Step Over:点击Step Over,或者按F8,表示步过代码,代码一行一行走,遇到方法调用,直接一行过。
  • 如何删除断点

    • 选择要删除的断点,单击鼠标左键即可


      Debug06.png
    • 如果是多个断点,可以每一个再点击一次。也可以一次性全部删除


      Debug07.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,094评论 1 32
  • 一、课程总概 这门课程的学习难度属于入门级别,又由于有c++的基础,所以学习这门课程也是比较轻松的。可以简单地把这...
    没有故事的土鳖阅读 1,666评论 2 11
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,590评论 4 12
  • 整理来自互联网 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具...
    Ncompass阅读 1,537评论 0 6
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,373评论 0 4