IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 2021-09-28 -> 正文阅读

[数据结构与算法]2021-09-28

Java学习 day6

方法:将特定功能的代码块封装起来

语法规则

访问修饰符 static 返回值类型 方法名(参数列表){
…代码块…
}
public static void main(){
…代码块…
}
public static int add(){
…代码块…
}
public static int add(int a; int b){
…代码块…
}

上面的代码中分别是三种方法:
无返回值无参数
有返回值无参数
有返回值有参数
各种方法之间可以相互调用。
接下来介绍下方法的重载
方法重载是指在一个类中,多个方法有相同的名字,但是有不同的形参.
例如:

public static int getMax(int a, int b){
}
public static int getMax(int a, int b, int c){
}
public static int getMax(double a, double b){
}
public static int getMax(double a, double b, double c){
}
public static void method(int i,String str){
}
public static void method(String str,int i){
}

上述展现了几个重载方法,当调用getMax()方法时候,JVM会根据实参的数据类型与个数匹配到相应的方法。

递归算法

含义:方法调用它自身
当我们调用方法时,JVM会在栈内存中开辟一个空间,用于暂时存储方法的局部变量,当递归算法出现死循环时,栈内存会满载最终溢出导致程序崩溃。
递归算法的用法:当我们在解决某个问题,最后的结果与前一个或者前几个计算结果有关时我们会使用递归算法。
例如:
计算5!

5! = 5 * 4!;
4! = 4 * 3!;
3! = 3 * 2!;
2! = 2 * 1;
1! = 1;

类似上述的问题我们可以使用递归算法。

public static void main(String[] args){
	int sum = method(5);
	public static int method(int num){
		if(num != 1){
			return method(num - 1)*num
		}else{
				return 1;
			}
	}
}

类似的问题还有很多,比如不死神兔、汉诺塔问题

一维数组

数组是一组数据的容器,数组一旦初始化,长度不可改变(意味着数组不能添加或删除)
数组的声明与静态初始化

String[] names = {“11”, “djgf”, “合约”,“weee333”}

上述就是数组的声明与初始化。

遍历数组:

String[] names = new String[]{"1", "2", "3"};
for(String name : names){
	System.out.println(name);
}

数组的内存占用:

Java虚拟机存在几个内存区:栈、堆、方法区、常量池等等。
在上面的程序中,存在方法:String[].class、String.class;存在字面值常量"1", “2”, “3”。
JVM将字面值常量放在常量池中,将方法放在方法区中,在堆中放入new String[],并在堆内存中连续存储下常量池中字面值常量的内存地址,在栈内存中存储下String[] names,可以引用堆内存中new的数组。
看图:
在这里插入图片描述

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:33:19  更:2021-09-29 10:36:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 13:20:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码