随笔分类 - Java
摘要:Class Arrays 是 java 工具包自带的非常强大的数组工具类,今天手工实现了一部分功能,部分参考实现如下 public class MyArrays { //最大值 /** * 获取int数组最大值 * * @param arr:代遍历的数组 * @return 数组最大值 */ pub
阅读全文
摘要:程序设计的思路 面向对象,是软件开发中的一类编程风格、开发范式。除了面向对象,还有面向过程、指令式编程和函数式编程。在所有的编程范式中,我们接触最多的还是面向过程和面向对象两种。 类比:史书类型 纪传体:以人物传记为中心,“本纪”叙述帝王,“世家”记叙王侯封国和特殊人物,“列传”记叙民间人物。 编年
阅读全文
摘要:引入 人认识世界,其实就是面向对象的。比如,我们认识一下美人鱼(都没见过) 经过“仔细学习”,发现美人鱼通常具备一些特征: 女孩 有鱼尾 美丽 这个总结的过程,其实是抽象化的过程。抽象出来的美人鱼的特征,可以归纳为一个美人鱼类。而图片中的都是这个类呈现出来的具体的对象。 类和对象概述 类(Class
阅读全文
摘要:java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜索)的各种方法。 比如: 数组元素拼接: static String toString(int[] a) :字符串表示形式由数组的元素列表组成,括在方括号("[]")中。相邻元素用字符 ", "(逗号加空格)分隔
阅读全文
摘要:快速排序(Quick Sort)由图灵奖获得者Tony Hoare发明,被列为20世纪十大算法之一,是迄今为止所有内排序算法中速度最快的一种,快速排序的时间复杂度为O(nlog(n))。 快速排序通常明显比同为O(nlogn)的其他算法更快,因此常被采用,而且快排采用了分治法的思想,所以在很多笔试面
阅读全文
摘要:算法概述 定义 排序:假设含有n个记录的序列为{R1,R2,...,Rn},其相应的关键字序列为{K1,K2,...,Kn}。将这些记录重新排序为{Ri1,Ri2,...,Rin},使得相应的关键字值满足条Ki1<=Ki2<=...<=Kin,这样的一种操作称为排序。 通常来说,排序的目的是快速查找
阅读全文
摘要:顺序查找 顺序查找:挨个查看 要求:对数组元素的顺序没要求 public static void arraySearch(int value) { int[] arr = {4, 5, 6, 1, 9}; //int value = 1; int index = -1; for (int i = 0
阅读全文
摘要:数据反转 实现思想:数组对称位置的元素互换。 public static void arrayResever(int[] arr) { for (Object o : arr) { System.out.println(o); } System.out.println(" "); for (int
阅读全文
摘要:这里的特征值涉及到:平均值、最大值、最小值、总和等 举例1、求和、均值 public static void testArrayElemenSUmAvg(int arr[]) { //求和 int sum = 0; for (int i = 0; i < arr.length; i++) { sum
阅读全文
摘要:内存解析 二维数组本质上是元素类型是一维数组的一维数组。 int[][] arr = { {1}, {2,2}, {3,3,3}, {4,4,4,4}, {5,5,5,5,5} }; //1、声明二维数组,并确定行数和列数 int[][] arr = new int[4][5]; //2、确定元素的
阅读全文
摘要:动态初始化 如果二维数组的每一个数据,甚至是每一行的列数,需要后期单独确定,那么就只能使用动态初始化方式了。动态初始化方式分为两种格式: 格式1:规则二维表:每一行的列数是相同的 //(1)确定行数和列数 元素的数据类型[][] 二维数组名 = new 元素的数据类型[m][n]; //其中,m:表
阅读全文
摘要:多维数组概述 Java 语言里提供了支持多维数组的语法。 如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,像Excel中的表格、围棋棋盘一样。 应用举例1: 某公司2022年全年各个月份的销售额进行登记。按月份存储,可以使用一维数组。如下: int[] monthData
阅读全文
摘要:案例1 从键盘读入学生成绩,找出最高分,并输出学生成绩等级 成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’ 成绩>=最高分-30 等级为’C’ 其余 等级为’D’ 提示:先读入学生人数,根据人数创建int数组,存放学生成绩。 public static void ScoreT
阅读全文
摘要:Java虚拟机的内存划分 为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。 区域名称 作用 虚拟机栈 用于存储正在执行的每个Java方法的局部变量表等。局部变量表存放了编译期可知长度<br/>的各种基本数据类型、对象引用,方法执行完,自动释放。 堆
阅读全文
摘要:数组的长度 数组的元素总个数,即数组的长度。每个数组都有一个属性length指明它的长度,例如:arr.length 指明数组arr的长度(即元素个数);每个数组都具有长度,而且一旦初始化,其长度就是确定,且是不可变的。 数组元素的引用 如何表示数组中的一个元素? 每一个存储到数组的元素,都会自动的
阅读全文
摘要:一维数组的声明 格式: //推荐 元素的数据类型[] 一维数组的名称; //不推荐 元素的数据类型 一维数组名[]; 举例: int[] arr; int arr1[]; double[] arr2; String[] arr3; //引用类型变量数组 数组的声明,需要明确: (1)数组的维度:在J
阅读全文
摘要:为什么需要数组 需求分析1: 需要统计某公司50个员工的工资情况,例如计算平均工资、找到最高工资等。用之前知识,首先需要声明50个变量来分别记录每位员工的工资,这样会很麻烦。因此我们可以将所有的数据全部存储到一个容器中统一管理,并使用容器进行计算。 需求分析2: 容器的概念: 生活中的容器:水杯(装
阅读全文
摘要:break和continue的说明 break 循环结构,一旦执行,就结束(或跳出)当前循环结构,此关键字的后面,不能声明语句 continue 循环结构,一旦执行,就结束(或跳出)当次循环结构,此关键字的后面,不能声明语句 此外,很多语言都有goto语句,goto语句可以随意将控制转移到程序中的任
阅读全文
摘要:使用说明 所谓嵌套循环:是指一个循环结构A的循环体是另一个循环结构B。比如,for循环里面还有一个for循环,就是嵌套循环。其中,for ,while ,do-while均可以作为外层循环或内层循环。 外层循环:循环结构A 内层循环:循环结构B 实质上,嵌套循环就是把内层循环当成外层循环的循环体。只
阅读全文
摘要:对比三种循环结构 三种循环结构都具有四个要素: 循环变量的初始化条件 循环条件 循环体语句块 循环变量的修改的迭代表达式 从循环次数角度分析 do-while循环至少执行一次循环体语句。 for和while循环先判断循环条件语句是否成立,然后决定是否执行循环体。 如何选择 遍历有明显的循环次数(范围
阅读全文