Java6.26
文章目录
- Java核心概念整理笔记
- 一、循环高级应用
- 1. 平方根计算
- 2. 质数判断
- 二、数组详解
- 1. 数组基本概念
- 2. 数组初始化
- 3. 数组地址值解析
- 4. 数组遍历与处理
- 5. 数组内存模型
- 三、方法详解
- 1. 方法基本概念
- 2. 方法定义与调用
- 3. 形参与实参
- 4. 方法重载
- 四、Java内存分配
- 内存区域概览
- 关键区别
- 五、核心概念总结
- 1. 循环优化要点
- 2. 数组最佳实践
- 3. 方法设计原则
- 4. 内存管理技巧
- 5. 调试技巧
Java核心概念整理笔记
一、循环高级应用
1. 平方根计算
import java.util.Scanner;public class SquareRootCalculator {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入一个正整数: ");int n = sc.nextInt();int root = 1;// 使用循环找到最大整数root,满足root² ≤ nwhile (root * root <= n) {root++;}System.out.println(n + "的平方根整数部分是: " + (root - 1));}
}
2. 质数判断
import java.util.Scanner;public class PrimeChecker {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入一个整数: ");int number = sc.nextInt();boolean isPrime = true;// 优化:只需检查到平方根for (int i = 2; i <= Math.sqrt(number); i++) {if (number % i == 0) {isPrime = false;break; // 发现因子立即退出循环}}System.out.println(number + (isPrime ? " 是质数" : " 不是质数"));}
}
二、数组详解
1. 数组基本概念
- 定义:存储同种数据类型元素的容器
- 特点:固定长度、索引访问、连续内存空间
2. 数组初始化
// 静态初始化
int[] staticArr = {1, 2, 3, 4, 5}; // 动态初始化
int[] dynamicArr = new int[5]; // 默认值:0
String[] strArr = new String[3]; // 默认值:null
3. 数组地址值解析
[I@4c873330
含义:
[
:表示数组I
:表示int类型@
:分隔符4c873330
:十六进制内存地址
4. 数组遍历与处理
public class ArrayProcessor {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};// 增强for循环遍历for (int num : numbers) {// 三元运算符处理奇偶数int result = (num % 2 == 0) ? num / 2 : num * 2;System.out.print(result + " ");}}
}
5. 数组内存模型
public class ArrayMemoryDemo {public static void main(String[] args) {int[] arr1 = {10, 20};int[] arr2 = arr1; // 共享内存空间arr2[0] = 99; // 修改会影响arr1System.out.println(arr1[0]); // 输出99}
}
三、方法详解
1. 方法基本概念
- 作用:封装重复代码,提高复用性和可维护性
- 特点:程序最小执行单元
2. 方法定义与调用
public class MethodDemo {public static void main(String[] args) {// 调用无参方法greet();// 调用带参方法printSum(5, 8);// 调用带返回值方法int result = multiply(4, 6);System.out.println("乘积: " + result);}// 无参方法static void greet() {System.out.println("Hello, Java!");}// 带参方法static void printSum(int a, int b) {System.out.println("和: " + (a + b));}// 带返回值方法static int multiply(int x, int y) {return x * y;}
}
3. 形参与实参
- 形参:方法定义中的参数(形式参数)
- 实参:方法调用时传入的参数(实际参数)
4. 方法重载
public class Calculator {// 整数加法static int add(int a, int b) {return a + b;}// 重载1:双精度加法static double add(double a, double b) {return a + b;}// 重载2:三数相加static int add(int a, int b, int c) {return a + b + c;}
}
重载规则:
- 方法名相同
- 参数列表不同(类型/数量/顺序)
- 与返回值类型无关
四、Java内存分配
内存区域概览
内存区域 | 存储内容 | 生命周期 |
---|---|---|
栈(Stack) | 局部变量、方法调用 | 方法执行期间 |
堆(Heap) | 对象实例、数组 | 直到被GC回收 |
方法区 | 类信息、常量、静态变量 | JVM运行期间 |
寄存器 | CPU指令和操作数 | 指令执行期间 |
本地方法栈 | Native方法执行信息 | Native方法期间 |
关键区别
特性 | 基本数据类型 | 引用数据类型 |
---|---|---|
存储位置 | 栈内存 | 堆内存 |
存储内容 | 实际值 | 对象地址 |
内存管理 | 自动回收 | 通过垃圾回收(GC) |
示例 | int, double, char | 数组, String, 自定义对象 |
五、核心概念总结
1. 循环优化要点
- 减少循环内重复计算
- 合理使用break/continue
- 选择最优循环边界
- 避免嵌套过深
2. 数组最佳实践
- 使用增强for循环遍历
- 注意数组边界(避免越界)
- 大数组考虑内存占用
- 多维数组谨慎使用
3. 方法设计原则
- 单一职责(一个方法只做一件事)
- 合理命名(动词+名词,如calculateSum)
- 适度参数(不超过5个)
- 明确返回值
4. 内存管理技巧
- 基本类型优先使用局部变量
- 及时解除无用对象引用
- 避免创建不必要的大对象
- 理解对象生命周期
5. 调试技巧
// 打印数组内容
System.out.println(Arrays.toString(arr));// 查看对象哈希码(近似地址)
System.out.println(System.identityHashCode(obj));
学习建议:通过实际编码练习巩固概念,使用调试工具观察内存变化,尝试重构代码提高可读性。