0224学习笔记

news/2025/2/25 7:54:20/文章来源:https://www.cnblogs.com/kynoyinu/p/18735303

0224学习笔记

递归

边界条件:停止的条件,没有的话将陷入死循环

数组

int[] nums = new int[10]; //声明并用new关键字来创建,动态初始化,使用默认值
int[][] arrays = new int[2][5];double[] numbers = {0.5, 0.6, 0.7}; //或用{}来初始化,静态初始化,创建时赋值
int[] arrays = {{1,2},3,6,7};nums.length //获取数组长度
注意
  1. 一个数组中的元素必须是相同类型。可以是任何数据类型,包括基本类型和引用类型。

  2. Java数组的大小一旦确定,就不能更改。如果下标越界,则报:ArrayIndexOutifBounds

  3. 数组中的元素会自动初始化:

  • int 类型 → 默认值 0 (行内代码用``)
  • double 类型 → 默认值 0.0
  • boolean 类型 → 默认值 false
  • String 和对象类型 → 默认值 null
  1. 在 Java 中,数组是 引用类型,本质上是一个对象,对象存储在 堆内存 中。数组的每个元素相当于该对象的 成员变量

数组使用

Arrays类

Arrays工具类下有许多方法可供调用,如:

Arrays.toString(a); //打印出数组a,形如[1, 4, 2, 6, 3, 5, 9, 0]
Arrays.sort(a); //对数组进行升序排序
Arrays.fill(a,0); //将指定值分配给每个元素

冒泡排序

//冒泡排序,时间复杂度O(n^2)//1 在数组中,比较两个相邻的元素,如果第一个比第二个大,就交换位置//2 每一次比较,都会产生一个最大或者最小的数字//3 下一轮则可以少一次排序//4 依次循环,直到结束public static int[] sort(int[] array) {int temp = 0;//外层循环,判断要走多少次for (int i = 0; i < array.length - 1; i++) {boolean flag=false;//内层循环,如果第一个比第二个大,交换位置for (int j = 0; j < array.length - 1 - i; j++) {if (array[j + 1] > array[j]) {temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;flag=true;}}if(!flag){ //如果某一轮一次交换都没发生,说明已经有序,直接结束排序break;}}return array;}

稀疏数组

public static void main(String[] args) {//1 创建一个二维数组  11*11    0:没有棋子,  1:黑棋, 2:白棋int[][] array1 = new int[11][11];array1[1][2]=1;array1[2][3]=2;//输出原始数组System.out.println("输出原始数组:");for (int[] ints : array1) {for (int anInt : ints) {System.out.print(anInt+"\t");}System.out.println();}System.out.println("=============================");//转换为稀疏数组保存//获取有效值的个数int sum =0;for (int i = 0; i < 11; i++) {for (int j = 0; j < 11; j++) {if(array1[i][j]!=0){sum++;}}}System.out.println("有效值的个数:"+sum);//2 创建一个稀疏数组的数组int[][] sparse=new int[sum+1][3];sparse[0][0]=11;sparse[0][1]=11;sparse[0][2]=sum;//遍历二维数组,将非零的值,存放在稀疏数组中int count=0;for (int i = 0; i < array1.length; i++) {for (int j = 0; j < array1[i].length; j++) {if(array1[i][j]!=0){count++;sparse[count][0]=i; //第count行的第一个元素存放纵坐标sparse[count][1]=j; //第count行的第二个元素存放横坐标sparse[count][2]=array1[i][j];}}}//输出稀疏数组System.out.println("稀疏数组:");for (int i = 0; i < sparse.length; i++) {System.out.println(sparse[i][0]+"\t"+sparse[i][1]+"\t"+sparse[i][2]+"\t");}System.out.println("=================================");System.out.println("还原:");//1 读取稀疏数组int[][] array2=new int[sparse[0][0]][sparse[0][1]];//2 给其中的元素还原它的值for (int i = 1; i < sparse.length; i++) {array2[sparse[i][0]][sparse[i][1]]=sparse[i][2];}//3 打印System.out.println("输出还原的数组:");for (int[] ints : array2) {for (int anInt : ints) {System.out.print(anInt+"\t");}System.out.println();}}

面向对象 Object-Oriented Programming, OOP

本质:以类的方式组织代码,以对象的形式封装数据。

抽象

三大特性:

  • 封装
  • 继承
  • 多态

从认识论角度,是先有对象后有类,对象是具体的事物(比如一个个具体的人),类是抽象的概念(比如Person类)。

从代码运行角度是,先有类后有对象,类是对象的模板。

方法

void的返回行可以这么写return;

breakreturn的区别:break结束循环,return表示方法结束。

构造器(Constructor)

使用new关键字创建对象的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中的构造器的调用。

类中的构造器也称为构造方法,是在创建对象的时候必须调用的。

并且构造器有以下两个特点

  1. 与类名相同(方法名必须与类名一致)。

  2. 没有返回值不能void 或其他返回类型)。

构造器的作用

  1. new 关键字的本质是调用构造方法 来创建对象。

  2. 初始化对象的属性值(可以是默认值,也可以是通过参数传递的值)。

构造器是特殊的方法,但 不能手动调用,它只能在 new 对象时自动执行。

如果一个类没有显式定义构造方法,Java 会提供一个默认的无参构造方法

构造方法可以重载(多个构造方法),允许不同的参数传递方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/889382.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读DAMA数据管理知识体系指南04数据治理(上)

读DAMA数据管理知识体系指南04数据治理(上)1. 数据治理 1.1. Data Governance, DG1.1.1. 定义是在管理数据资产过程中行使权力和管控,包括计划、监控和实施1.1.2. 数据治理职能是指导所有其他数据管理领域的活1.1.3. 目的是确保根据数据管理制度和最佳实践正确地管理数据1.1…

Virtual Box设置桥接模式

一、硬件 1.查看宿主机ip cmd命令:ipconfig 无线局域网适配器 WLAN:连接特定的 DNS 后缀 . . . . . . . :IPv6 地址 . . . . . . . . . . . . : 保密本地链接 IPv6 地址. . . . . . . . : fe80::f087:44c8:88bc:b041%11IPv4 地址 . . . . . . . . . . . . : 192.168.43.149子网…

【NuGet攻略】C#开发者必备技能:构建发布开发工具包

来源 https://mp.weixin.qq.com/s/YqKTdyLXuODBLxnhar52Xg 2025年02月22日 17:44 广东前言 在 C# 开发领域里,构建代码库,分享与使用可复用代码的机制是十分必要的,它可以提高开发效率。通常,我们把可复用代码打包后的文件称为包(Package)。 在 .NET 中,通过使用 NuGet…

【2025穿越时空 怀旧经典】VMware Workstation Pro助你重返WindowsXP,让怀旧不再是空谈!

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注使用VMware Workstation Pro 虚拟机安装XP系统 让你瞬间回到黄金年代准备WindowsXP ISO镜像文件 大家…

【2025最新】VMware Workstation Pro 虚拟机配置与安装VMware Tools 感受它的强大~

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注安装VMware Tools VMware Tools是什么 VMware Tools是VMware虚拟机中自带的一种增强工具,它提供了一…

【2025最新】 神奇!VMware Workstation Pro虚拟机还原与删除功能,让你轻松应对各种场景!

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注删除虚拟机 删除虚拟机其实很简单,首先选择你要删除的虚拟机, 然后鼠标右键, 选择移除即可! 如图但这…

VMware Workstation Pro 虚拟机基础配置教程,方便你的神操作!

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注VMware Workstation Pro 基本配置与操作 在我们安装好VMware之后,接下来我们可以对VMware做一个基本的…

web开发 辅助学习管理系统开发日记 day1

现在时间:2025/2/25/2:52 在这个寒假与很多人交流之后我决心从算法竞赛转开发了,比预计的时间要早一点不过也无伤大雅。可能会在博客上分享一些自己开发中遇到的一些问题和知识。 本来一直在着手的苍穹外卖的开发,但由于知识上存在各种漏洞,以及自己的能力问题,决心先从简单…

2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤

在1 使用ollama完成DeepSeek本地部署中使用ollama完成deepSeek的本地部署和运行,此时我可以在PowerShell中通过对话的方式与DeepSeek交流,但此时本地模型不具备联网搜索能力,无法根据网上信息来回答我的问题,同时我也无法将我自己的知识给他参考,这样本地模型相比直接使用…

【毕业设计】【河蟹识别微信小程序】项目总结

一、项目需求与背景 1. 项目背景与需求近年来,相关水产公司以及水产研究所等,利用类似水池生态育种等群体育种方法, 共培育了“长江 1 号”、“长江 2 号”、 “光合 1 号”、“诺亚 1 号”、“江海 21 号”以及“长荡湖 1 号”总计 6 类优良品种。这些新培育的河蟹品种,不仅…

日志(logging)

【一】函数式简单配置 import logging logging.debug(debug message) logging.info(info message) logging.warning(warning message) logging.error(error message) logging.critical(critical message)默认情况下Python的logging模块将日志打印到了标准输出中,且只…

解决Docker连接XQuartz报错

背景 打开XQuartz,在桌面右上角菜单栏中的XQuartz偏好设置中的安全性中启用 "允许从网络客户端连接",并重启XQuartz生效,后续操作中要保持XQuartz为打开状态,不要退出XQuartz报错内容: root@9b90039a4d17:~# ros2 run turtlesim turtlesim_node Authorization r…