Loading...

文章背景图

Day 04-知识点汇总

2026-01-30
3
-
- 分钟

1.Debug调试工具的使用步骤

-05.png

2.数组是什么,有什么作用?

数组是一种程序中存储数据的数据结构,本质是一个容器;核心作用是批量存储一批同类型的数据

3.静态初始化数组的写法是什么样的?有什么注意点?

  • 标准写法:数据类型[] 数组名 = new 数据类型[] {元素1, 元素2, ...};

  • 简化写法 1(常用):数据类型[] 数组名 = {元素1, 元素2, ...};

  • 简化写法 2(语法支持):数据类型 数组名[] = {元素1, 元素2, ...};

    注意点:定义什么类型的数组,就只能存放对应类型的数据,不支持混合类型。

4.数组是什么类型数据?直接打印数组名,输出结果是什么?为什么是xxx呢?

2-45.png
Pix09.png

5. 如何访问数组中的单个元素?

通过数组名 + 索引访问,语法:数组名[索引]

6.如何获取数组的元素总个数(长度)?

使用数组自带的length属性,语法:数组名.length

7.数组的最大有效索引如何计算?

计算公式:数组的最大索引 = 数组长度 - 1(因数组索引从 0 开始)

8.什么时候会产生数组索引越界异常?该异常的名称是什么?

异常名称:ArrayIndexOutOfBoundsException

产生原因:访问的数组下标,超出了0 ~ 最大有效索引的合法范围。

9.如何快速打印数组的所有元素?

使用Arrays.toString(数组)工具方法,配合打印语句即可,示例:System.out.println(Arrays.toString(数组名));,输出结果会将元素用[]包裹、,分隔,示例:[666.66, 999.99, 534.0]

10.数组元素的下标(索引)遵循什么规则?

数组下标从 0 开始依次递增,第 1 个元素对应下标 0,第 2 个对应下标 1,以此类推。

11.如何使用字符串占位符进行格式化输出?printf 有什么特点?如何实现换行?

  • 格式化输出方法:System.out.printf("格式化模板", 变量1, 变量2, ...);

  • printf 特点:默认输出无换行,需手动指定换行符;

  • 常用占位符:

    • %d整数(byte/short/int/long)

    • %f浮点型(float/double)

    • %s字符串(String)

    • %c字符(char)

    • %b布尔型(boolean)

  • 换行方式:在格式化模板内添加\n(通用)或%n(Java 推荐,适配不同系统)。

12.什么是动态初始化数组?有什么特点?写法是什么?

  • 定义:先声明数组的数据类型元素个数(长度),后续再通过程序逻辑给元素赋值;

  • 特点:初始化时只指定长度,不指定具体元素,数组会为每个元素赋默认值(整型 0、浮点型 0.0、布尔型 false 等);

  • 写法:数据类型[] 数组名 = new 数据类型[数组长度];

13.动态初始化数组后元素的默认值是什么样的?

  • byte、short、int 、long类型数组的元素默认值都是0.

  • char类型数组的元素默认值是\u0000,转成整数就是0.

  • float、double类型数组元素的默认值都是0.0

  • boolean类型数组的元素默认值是false、String类型数组的元素的默认值是null

14.遍历数组:什么是遍历?语法格式是什么?

通过循环获取每一个元素

int[] arr = {20, 30, 40, 50};
for (int i = 0; i < arr.length; i++) {
   System.out.println(arr[i]);
}

快捷键:数组名.fori 或者 数组名.forr

15.面向对象编程的整体流程分为哪两大核心步骤?

分为两步:① 定义类(代表一类事物);② 创建对象(代表具体事物)

16.面向对象编程第一步 “定义类” 的目的是什么?需要定义哪些内容?

  • 目的:描述一类事物共有的特征和功能,此时还未产生具体对象。

  • 定义内容

    1. 属性:也叫成员变量,写在类中方法外,用于说明对象能保存什么数据(如 Star 类的 name、age);

    2. 行为:也叫成员方法,描述对象有什么功能,即对数据的处理逻辑(如 Star 类的 say () 方法)。

17.面向对象编程定义类的语法示例(以 Star 类为例)是怎样的?

public class Star {
    // 定义属性(成员变量)
    String name;
    int age;
    double height;
    double weight;
    
    // 定义行为(成员方法)
    public void say() {
        System.out.println("大家好");
    }
}

18.面向对象编程第二步 “创建对象” 的核心是什么?使用的自定义类类型属于什么数据类型?

  • 核心:通过new关键字生成具体的对象,每个对象拥有独立的内存空间,可访问类中定义的属性和行为。

  • 数据类型:自定义类类型是引用数据类型,拥有单独的内存地址;基础数据类型(如 int、double)无独立内存地址。

19.面向对象编程new Star(); 这句话的具体含义是什么?

在堆内存中创建一个 Star 类的实例对象,执行类的构造方法完成对象初始化,最后返回该对象的内存地址。

20.面向对象编程创建对象并访问属性 / 行为的语法示例是怎样的?

public static void main(String[] args) {
    // 1. 创建Star对象(s1是引用变量,指向堆中对象)
    Star s1 = new Star();
    // 2. 访问并赋值属性
    s1.name = "赵丽颖";
    s1.age = 36;
    s1.height = 165.0;
    s1.weight = 44.6;
    
    // 3. 创建第二个Star对象(每new一次得到新对象)
    Star s2 = new Star();
    s2.name = "杨幂";
    s2.age = 37;
    s2.height = 166.5;
    s2.weight = 45.0;
}

21.什么是类,什么是对象,什么是面向对象编程?

类:用来表述事物具有哪些属性和行为。

对象:通过类创建(new)出来的实体对象。

面向对象编程:在一个类中,通过对象来访问另一个类的属性和行为的过程就叫做面向对象编程。

22.打印对象名得到的是什么?

直接打印对象名,输出的是该对象在堆内存中的地址值(格式如com.itheima._03面向对象.Star@1b6d3586),而非对象的属性内容。

23.如果对象的String、double、int类型属性不赋值,默认值分别是什么?

String的默认值是null,double的默认值是0.0,int的默认值是0;

24.通过同一个类创建多个对象,它们的属性值有什么特点?

多个对象的属性值相互独立、互不影响。因为每new一次就会在堆内存中开辟独立的空间,每个对象拥有自己的属性副本,修改一个对象的属性不会改变其他对象的属性值。

25.类中必须同时包含成员属性和成员方法吗?

不需要。类中可根据实际需求定义内容:

  • 可只含成员属性(如仅存储数据的实体类);

  • 可只含成员方法(如工具类);

  • 也可同时包含两者,完全取决于业务场景。

26.定义成员属性时如果不手动赋值,会有什么影响?

不会报错。创建对象时,JVM 会自动为对象的成员属性赋默认值,默认值规则与数组一致:

  • 整型(byte/short/int/long):0;

  • 浮点型(float/double):0.0;

  • 布尔型(boolean):false;

  • 引用类型(String / 数组 / 自定义类):null。

27.%.2f是什么意思?

%.2f %f代表小数 .2格式化小数2位

28.JVM内存分配分为几部分?分别包含什么?

方法区(元空间):存放类(字节码文件)信息、常量,静态变量。

:存放正在执行的方法以及方法中定义的变量(基本的存变量,引用的存地址),先进后出。

:存储new出来的内容,放引用类型的数据,并产生地址,例如:对象、数组。

本地方法区:存放native本地方法,和C语言对接

程序计数器:记录程序执行的位置(地址)。

Pi5.png

29.连续定义两个整型数组max,min

int max = arr[0],min = arr[0];

30.多对象在计算机中执行原理

4-01.png

栈间接指向方法区方便取方法

使用同一个类创建多个对象字节码只需要加载一次

加载字节码-》main方法-》初始化初值(指向字节码文件)

31.多对象指向同一对象特点

两个对象拥有共同的地址引用,对象之间赋值是地址引用赋值

32.垃圾回收机制

7-20.png

33.new出来的对象保存在内存的哪一块区域?

堆内存

34.new出来的多个对象,对象的属性值是否共享?

不共享。

35.多个变量指向同一个对象,对象的属性值是否共享?

共享。

36.当一个对象没有任何变量可以引用它时,会发生什么?

Java存在自动垃圾回收机制,会自动清除掉垃圾对象。

评论交流

文章目录