当前位置: 首页 > news >正文

Java-SE DAY3

JAVA 方法

Java 方法是语句的集合,它们在一起执行一个功能。

设计方法的原则:一个方法只完成1个功能,这样利于我们后期扩展

方法包含一个方法头和一个方法体

public static int add(int a,int b){			// static 声明类方法,int 指定方法返回类型return a+b;
}	
// return 除了在方法中代表返回的意思,还代表终止的函数的意思

修饰符:可选,定义了该方法的访问类型

返回值类型:字面意思,即返回值的类型,void 为无返回

方法重载:即一个方法名被定义两次( 如两次参数不同 | 类型不同 ),用于一个方法应对多种情况


命令行传参

args.length # 获取数组长度

在进行编译执行class 文件时,需注意package 的声明,需回到package 的根路径运行,否则会无法找到主类

main 方法也可传参,即定义main 方法的接受即可传参


可变参数

在方法声明时,在指定参数类型后加一个省略号(...)

一个方法只能指定一个可变参数,其必须是方法的最后一个参数

可变参数的本质就是数组

public void Hello(String ... a){			System.out.println(a)
}

递归

​ 递归的本质就是A方法调用A方法自己调用自己

递归头什么时候不调用自身方法,如果没有头,将陷入死循环。

递归体什么时候需要调用自身方法

递归尽量不使用,由于 JAVA 是栈开发,每调用一个方法,就会多一个栈堆叠起来,若调用方法过多,会导致占用大量内存空间


数组

int[] nums; # 定义数组

int nums[] # 定义数组,类C

nums = new int[10] # 初始化/创建 nums,最大元素为10个

nums.length # 获取数据的总元素个数


内存分析

: 存放new 的对象和数组

​ 可以被所有的线程共享,不会存放别的对象引用

: 存放基本变量类型(会包含这个基本类型的基本数据)

​ 引用对象的变量(会存放这个引用在堆里面的具体地址)

栈是存放变量/数组的内存地址,堆是存在变量/数组的真实值

// 静态初始化:创建 + 赋值
int[] a = {1,2,3,4,5,6,7,8,9};
System.out.println(a[0]);//动态初始化: 包含默认初始化
int[] b  = new int[10];
b[0] = 10;

image-20250924145212177


数组小结

长度是确定的,数组一旦被创建,其元素大小就无法改变

元素必须是相同的类型

数组中的元素可以是任何类型,包括基本类型和引用类型

数组对象本身是在堆中的

ArrayIndexOutOfBoundsException: 数组下标越界异常

// 数组是相同的数据类型(类型可以为任何类型)的有序集合
// 数组也是对象。数组元素相当于对象的成员变量
// 数组的长度是确定的、不可变的。

数组的使用

数组可作为传参,也可作为返回类型/值

// 加强型for 循环
for (int array : arrays){}			// 取出arrays 数组中每个元素循环// 定义返回类型为数组,且传入值为数组
public static int[] arrayFindMAX(int[] array){}

多维数组

多维数组:可以看成是数组的数组

二维数组: 一个特殊的数组,每个元素都是一个一维数组

int a[][] = new int[2][5]; // 初始化一个二维数组,可以看成一个2行5列的数组

int[][] array = {{1,2},{3,4},{5,6}}; // 定义一个二维数组并向其中赋值


Arrays类详解

数组的工具类 java.util.Arrays // util 为java 的工具类

Arrays.toString(arr)						// 打印数组
Arrays.sort(arr)							// 对于数据进行排序(默认正序)
Arrays.fill(arr,0)							// 将arr 中所有的数据替换为0   
冒泡排序

总共八大排序,冒泡排序为最出名的排序算法之一

冒泡排序:比较两个相邻的元素,如果第一个数比第二个数大,交换他们的位置,每次比较都会产生一个最大或最小数字,下一轮则可以少一次排序


稀疏数组

用于存在大量无效值的情况;对于无效值如0,不会对其进行表示,而是只对有效值进行输出(且说明有效值位置)

左为原始数组,右为稀疏数组

image-20250928095451596

稀疏数组为概念形式,属于算是算法(目的是节省数组空间),通过循环等手段,将原数组转换为稀疏数组


http://www.hskmm.com/?act=detail&tid=38692

相关文章:

  • 深入解析:C语言内存布局:虚拟地址空间详解
  • 奶奶都能看懂的 C++ —— vector 与迭代器
  • AI|AI优化公司智能GEO优化解决方案
  • Java-SE Day2
  • 2025 年无缝管厂家最新推荐榜,聚焦企业技术实力与市场口碑深度解析
  • 2025 年最新波形护栏厂家推荐排行榜:结合协会测评数据,精选行业优质品牌路侧波/乡村公路/县级公路波形护栏板公司推荐
  • 测试人请查收:金融级系统“三高”挑战下的AI测试工具栈与技术内幕
  • 年度 Demo Day!见证语音 AI 年度场景诞生!丨Convo AIRTE2025
  • 科学数据规模化迁移:Benchling从EAV模型转向JSONB的性能优化实践
  • 2025年10月杭州丝绸购买榜:万事利湖滨步行街店权威排行
  • 2025年10月加拿大海参产品推荐榜:谷得斯特领衔五强对比
  • 2025年10月宠物空气净化器产品推荐:性价比排行与选购攻略
  • Docker 部署 Debian 全流程教程
  • 2025年10月深圳离婚律师推荐榜:五强对比与选择指南
  • 2025 年花岗岩厂家最新推荐榜:覆盖路沿石、火烧板等全品类,结合行业协会测评数据精选优质厂家
  • 2025年10月房产继承律师推荐榜:五强对比与选择指南
  • 2025 年控制柜生产厂家最新推荐排行榜:聚焦换热机组 / 污水处理等领域品牌技术实力与服务能力测评
  • VS-和-CrystalReport-报告指南-全-
  • WebSocket-基础知识-全-
  • Paper: Accelerating Vision Transformers with Adaptive Patch Sizes
  • 字符串专题
  • 2025年包装机厂家权威推荐榜:自动包装机、半自动包装机源头企业综合测评与选购指南
  • 2025年清洗剂厂家权威推荐榜:水基型清洗剂专业解析,高效环保与行业应用深度评测
  • 古代的时辰,几更天与现在的时间对应关系是什么?
  • 2025年实用金属铝合金打包机厂家推荐榜单:多场景适配的优质之选
  • Unity-物理学习指南-全-
  • 2025 年高低温试验箱厂家最新推荐,技术实力与市场口碑深度解析恒温恒湿试验箱/高低温试验箱厂家推荐
  • 2025年自动除渣颗粒热风炉厂家权威推荐榜单:生物质热风炉/大棚供暖热风炉/颗粒热风炉源头厂家精选。
  • 2025 年清洗机厂家最新推荐榜:涵盖喷淋清洗机 / 通过式喷淋清洗机 / 喷丝板清洗机等多类型,结合行业协会测评数据精选优质企业
  • Three-js-游戏开发-全-