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

2.数组是什么,有什么作用?
数组是一种程序中存储数据的数据结构,本质是一个容器;核心作用是批量存储一批同类型的数据。
3.静态初始化数组的写法是什么样的?有什么注意点?
标准写法:
数据类型[] 数组名 = new 数据类型[] {元素1, 元素2, ...};简化写法 1(常用):
数据类型[] 数组名 = {元素1, 元素2, ...};简化写法 2(语法支持):
数据类型 数组名[] = {元素1, 元素2, ...};注意点:定义什么类型的数组,就只能存放对应类型的数据,不支持混合类型。
4.数组是什么类型数据?直接打印数组名,输出结果是什么?为什么是xxx呢?


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.面向对象编程第一步 “定义类” 的目的是什么?需要定义哪些内容?
目的:描述一类事物共有的特征和功能,此时还未产生具体对象。
定义内容:
属性:也叫成员变量,写在类中方法外,用于说明对象能保存什么数据(如 Star 类的 name、age);
行为:也叫成员方法,描述对象有什么功能,即对数据的处理逻辑(如 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语言对接
程序计数器:记录程序执行的位置(地址)。

29.连续定义两个整型数组max,min
int max = arr[0],min = arr[0];
30.多对象在计算机中执行原理

栈间接指向方法区方便取方法
使用同一个类创建多个对象字节码只需要加载一次
加载字节码-》main方法-》初始化初值(指向字节码文件)
31.多对象指向同一对象特点
两个对象拥有共同的地址引用,对象之间赋值是地址引用赋值
32.垃圾回收机制

33.new出来的对象保存在内存的哪一块区域?
堆内存
34.new出来的多个对象,对象的属性值是否共享?
不共享。
35.多个变量指向同一个对象,对象的属性值是否共享?
共享。
36.当一个对象没有任何变量可以引用它时,会发生什么?
Java存在自动垃圾回收机制,会自动清除掉垃圾对象。