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

25.1.3

java数组:
dataType[] arrayRefVar  //推荐写法
//int[]  mylist
//或
dataType arrayRefVar[]
//int mylist[]

创建数组对象:

arrayRefVar = new dataType[arraySize];
dataType[] arrayRefVar = new dataType[arraySize];

for-each循环:

java for-each循环,会类比于python for i in range array:这里的i不是指数组的下表,而是“数组”内的内容。如:hello,world!我们的循环i第一个表示的是h。

Java的for each循环就是如此。

for(type element: array)
{
    System.out.println(element);
}

double[] array={1.0,5.3,6.7}
for (double i :array){System.out.println(i);
}
//输出1.0 5.3  6.7
数组在函数的应用:
  • 作为存入参数
  • 作为返回参数
//假设我们要做对数组里的数字都加一。
public static int[] ArrayAddOne(int[] array) {for (int i :array){i=i+1;}return array 
}//其中第一个int[]是我们返回数值的类型,是一个int数组。
//第二个int[],表示传入一个int数组。这个数组被我们命名为array。
//ArrayAddOne是我们要调用的方法名。

多维数组:

type[][] typeName = new type[typeLength1][typeLength2];

//String[][] str = new String[3][4];

数组小测试:

class TestIt
{public static void main ( String[] args ){int[] myArray = {1, 2, 3, 4, 5};  //定义数组ChangeIt.doIt( myArray );  //调用class类中的doIt方法,for(int j=0; j<myArray.length; j++)   //遍历数组输出System.out.print( myArray[j] + " " );}
}
class ChangeIt
{static void doIt( int[] z ) {z = null ; //将z指向null。}
}

结果输出:

  •  1 2 3 4 5   
class LowHighSwap
{static void doIt( int[] z )   //这里对数组的修改,直接影响数组对象的结果{int temp = z[z.length-1];//第一个位置和最后一个位置互换数值z[z.length-1] = z[0];z[0] = temp;}
}class TestIt
{public static void main( String[] args )   //效果和上题差不多{int[] myArray = {1, 2, 3, 4, 5};LowHighSwap.doIt(myArray);for (int i = 0; i < myArray.length; i++){System.out.print(myArray[i] + " ");}}
}

 5 2 3 4 1

int [] ar = {1,2,3,4,5};  

ar[4]值为多少   //第一个位置下表为0

  •  5
int [] ar = {1,2,3,4,5,6};

数组ar的大小是 :   //算数组内的数据个数即可

  •  6
class ChangeIt
{static void doIt( int[] z ){int[] A = z;   //这里对A进行赋值,其实两个指向的对象都是最开始的对象myArrayA[0] = 99;    //这里赋值就是对myArray进行修改。}
}class TestIt
{public static void main( String[] args )  //和第一题差不多的思路{int[] myArray = {1, 2, 3, 4, 5};ChangeIt.doIt(myArray);for (int i = 0; i < myArray.length; i++){System.out.print(myArray[i] + " ");}}
}

结果:

 99 2 3 4 5

float [] nums = {1.1f,2.2f,3.3f};

以下哪个循环将在一个单独的行中显示此数组中的所有数字 :

for (int i =0; i < 3; i++) System.out.print( nums[i]);     

//nums数组长度为3,下标分别为0,1,2,故到<3,刚好结束循环

void blur(char[] z, String st)
{if(z.length < st.length()) return;  //比较两个的长度如何,希望st的长度小于或者等于zfor (int i = 0; i < st.length(); i++) {       //赋值z[i] = st.charAt(i);}
}

下面这个方法实现什么功能 ?

如果数组中有足够的空间,则会将字符串中的字符逐个复制到数组中。

哪一个选项可以在索引处找到名为 ar 的数组中的最后一个值?

ar.length - 1     //数组起始是0

数组是一个?

相同的数据类型,值可相同,也可不同  //数组内数据类型一样,其他可不一样

double[] rats = {1.2, 3.4, 5.6};
routine( rats );

Java 使用按值调用。 以下方法调用传递给程序的值是多少 ?

  •  rats 数组的引用
int[] arr = new int[9];
System.out.println(arr[9]);

以下代码的输出是什么 ?

  •  错误,因为索引超出范围   //数组末尾应该是length-1
byte[] values = new byte[x];

以下数组最高索引值是多少 ?

  •  x-1  //上题同理

以下程序段的输出是什么 ?

int[] num7 = {1, 3, 5, 2, 8, 9, 5, 0};
int x7 = num7[0];
for (int i = 0; i <= num7.length-1; i++)   
//循环比较数组内的大小,最小的会被赋值到x7上
{if(num7[i] < x7){x7 = num7[i];}
}
System.out.println(x7); 
  •  0

以下数组的长度是?

int[] grades = new int[4];
  •  4 

以下代码打印到控制台的数字是多少 ?

int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int i = 0; i < 8; i++) {   //从下标0打印到下标7,则从1打印到8System.out.println(numbers[i]);
}
  •  1-8
日期时间:

Date类的包

//创建对象Date()此方法可以以当前的时间创建对象

//Date(long millisec)   该参数是从 1970 年 1 月 1 日起的毫秒数。

//参考自菜鸟教程https://www.runoob.com/java/java-date-time.html
import java.util.Date;public class DateDemo {public static void main(String[] args) {// 初始化 Date 对象Date date = new Date();// 使用 toString() 函数显示日期时间System.out.println(date.toString());}
}
日期的比较
  • 使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
  • 使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
  • 使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
使用 SimpleDateFormat 格式化日期

import  java.util.*;
import java.text.*;
 
public class DateDemo {
   public static void main(String[] args) {
 
      Date dNow = new Date( );  //创建当前时间的对象
      SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

        //想要输出的格式
 
      System.out.println("当前时间为: " + ft.format(dNow));
   }
}

方法

修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

方法可以使我们写的代码更简洁,也有利于我们维护

方法的调用

Java 支持两种调用方法的方式,根据方法是否返回值来选择。

当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。(这个跟汇编语言、计算机组成原理有关)可以不深究。

整体使用的简单例子

上例中我们在add中加入了两个int a,int b 我们要严格按照方法内需要传的参数进行书写。

方法的重载

拿上例来说就是我们的方法名字都叫add,但我们方法内的参数可以换,我们可以换成浮点数相加如:

public static double add(double a, double b) {return a + b;
}
可变参数

有时我们不知道我们具体有多少个数据,如果一个一个写方法太过麻烦,因此我们可以使用可变参数(注意:可变参数需要写在最后面),只需要在我们需要多个参数的参数类型后面加入...即可

以上例add为例

构造方法

本质上还是方法,不过他的作用是在我们创建对象时用来初始化对象的属性。

构造方法的类型

  • 无参构造方法(默认的方法)
  • 有参构造方法

无参构造方法:

不需要参数。

有参构造方法:

调用有参构造方法时,可以为对象的属性进行初始化。如:下面的人有name(名字)和age(年龄)等等的属性。

public class Person {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

构造方法的重载

本质上的目的:就是我们初始化对象的时候可以选择对哪些属性赋值,哪些可以等等再由我们操作赋值。

构造方法的this关键字:

public Person(String name, int age) {
    this.name = name; // this.name 表示类的属性
    this.age = age;
}

相关文章:

25.1.3

java数组&#xff1a; dataType[] arrayRefVar //推荐写法 //int[] mylist //或 dataType arrayRefVar[] //int mylist[]创建数组对象&#xff1a; arrayRefVar new dataType[arraySize]; dataType[] arrayRefVar new dataType[arraySize];for-each循环&#xff1a; jav…...

Leecode刷题C语言之我的日程安排表②

执行结果:通过 执行用时和内存消耗如下&#xff1a; typedef struct {int start;int end; }BOOKING;#define MAX_BOOK_NUM (1000) typedef struct MyCalendar_ {BOOKING book[MAX_BOOK_NUM];int bnum;BOOKING *sorted[MAX_BOOK_NUM];int num;int conflict[MAX_BOOK_NUM];int c…...

十二、Vue 路由

文章目录 一、简介二、安装与基本配置安装 Vue Router创建路由实例在应用中使用路由实例三、路由组件与视图路由组件的定义与使用四、动态路由动态路由参数的定义与获取动态路由的应用场景五、嵌套路由嵌套路由的概念与配置嵌套路由的应用场景六、路由导航<router - link>…...

smell---Paddle-DI

跨模态文档智能大模型–Ernie-Layout 目标&#xff1a;提取文档中无结构或半结构化的知识 github项目地址 Paddle NLP ERNIE-Layout基于Transformer Encode架构&#xff0c;并提出以下trick&#xff1a; 1、OCR工具提取信息 借助OCR工具提取图片中的文字及文字对应的坐标信息…...

PCL点云库入门——PCL库点云特征之点云法向量(NormalEstimation)及其可视化

1、PCL点云库中点云特征综述 1.1、点云特征综述 点云特征描述在三维数据处理领域扮演着至关重要的角色&#xff0c;它直接决定了后续的识别、分类以及重建等关键任务的执行效果。在众多的特征描述方法中&#xff0c;我们可以看到基于几何形状的特征、基于统计信息的特征以及…...

25.Java JUC 引入(进程与线程、线程的状态、并发与并行、管程、用户线程与守护线程)

一、JUC 简介 JUC 是 java.util.concurrent 工具包的简称&#xff0c;这是一个处理线程的工具包&#xff0c;从 JDK1.5 开始出现 二、进程与线程 1、基本介绍 &#xff08;1&#xff09;进程 进程是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源…...

Linux 异步 I/O 框架 io_uring:基本原理、程序示例与性能压测

大家觉得有意义和帮助记得关注和点赞&#xff01;&#xff01;&#xff01; io_uring 是 2019 年 Linux 5.1 内核首次引入的高性能 异步 I/O 框架&#xff0c;能显著加速 I/O 密集型应用的性能。 但如果你的应用已经在使用 传统 Linux AIO 了&#xff0c;并且使用方式恰当&…...

Uniapp中使用`wxml-to-canvas`开发DOM生成图片功能

Uniapp中使用wxml-to-canvas开发DOM生成图片功能 在移动端开发中&#xff0c;生成图片是一个常见需求&#xff0c;例如用于分享海报、生成动态二维码等。在Uniapp框架中&#xff0c;我们可以通过wxml-to-canvas插件轻松实现将DOM转化为图片的功能。本文将详细介绍如何在Uniapp…...

Linux之ARM(MX6U)裸机篇----5.仿stm32的LED驱动实验

一&#xff0c;启动文件 .global _start .global _bss_start /* 类似宏定义把__bss_start定义为_bss_start */ _bss_start:.word __bss_start.global _bss_end _bss_end:.word __bss_end_start:#设置处理器进入SVC模式mrs r0, cpsr /* 读取cpsr到r0 */bic r0, r0, …...

DVWA靶场Open HTTP Redirect (重定向) 漏洞所有级别通关教程及源码审计

目录标题 Open HTTP Redirectlow源码审计 medium源码审计 high源码审计 impossible源码审计 Open HTTP Redirect HTTP 重定向&#xff08;HTTP Redirect Attack&#xff09;是一种网络&#xff0c;利用 HTTP 协议中的重定向机制&#xff0c;将用户引导至恶意网站或非法页面&am…...

探索 JMeter While Controller:循环测试的奇妙世界

嘿&#xff0c;宝子们&#xff01;今天咱们就来聊聊 JMeter 里超级厉害的 While 控制器&#xff0c;它就像是一把神奇的钥匙&#xff0c;能帮我们打开循环测试的大门&#xff0c;模拟出各种各样复杂又有趣的场景哦&#xff01; 一、While 控制器初印象 想象一下&#xff0c;你…...

Flutter踩坑记-第三方SDK不兼容Gradle 8.0,需适配namespace

最近需要集成Flutter作为Module&#xff0c;Flutter依赖了第三方库&#xff0c;Gradle是8.0版本。 编译报错&#xff1a; 解决办法是在.android根目录下的build.gradle下新增一行代码&#xff1a; buildscript {ext.kotlin_version "1.8.22"repositories {google()…...

ubuntu支持ssh

Ubuntu 默认是支持 SSH 的&#xff0c;但通常并不会在安装时启用 SSH 服务。为了能够远程连接到 Ubuntu 系统&#xff0c;需要安装并启动 SSH 服务器&#xff08;即 OpenSSH&#xff09;。以下是如何在 Ubuntu 系统中启用和配置 SSH 服务的步骤&#xff1a; 检查 SSH 是否已安…...

浏览器书签智能分类

浏览器书签智能分类工具 最近发现浏览器的书签越来越乱了&#xff0c;主要是因为自己太懒&#xff0c;其次之前建的分类太多又乱&#xff0c;重新手动整理确实比较烦。因此有了这个小项目。借助智谱AI的力量对书签进行重新分类。 项目简介 本工具用于自动整理浏览器书签&…...

通俗易懂的讲一下Vue的双向绑定和React的单向绑定

1.Vue 的双向绑定&#xff1a; <template><!-- 输入框和数据自动绑定&#xff0c;就像连体婴儿&#xff0c;一个动另一个也动 --><input v-model"message"><p>{{ message }}</p><!-- 完整表单示例 --><form><!-- 所有…...

Redis 深度解析:从入门到精通

引言 Redis 是一个开源的、高性能的键值存储系统&#xff0c;它支持多种数据结构&#xff0c;并且提供了丰富的功能和接口。作为内存数据库&#xff0c;Redis 以其快速的数据访问速度、灵活的数据模型以及持久化选项而闻名。本文将详细介绍 Redis 的核心概念、工作原理及其应用…...

基于物联网的冻保鲜运输智能控制系统

基于物联网的冻保鲜运输智能控制系统设计文档 1. 项目开发背景 随着全球化贸易的发展&#xff0c;冷链物流在现代运输行业中扮演着日益重要的角色。尤其是冻品、食品、药品等对运输环境有着严格要求的货物&#xff0c;其运输过程中温度、湿度等环境参数必须严格控制&#xff…...

【深度学习基础之多尺度特征提取】多尺度卷积神经网络(MS-CNN)是如何在深度学习网络中提取多尺度特征的?附代码(二)

【深度学习基础之多尺度特征提取】多尺度卷积神经网络&#xff08;MS-CNN&#xff09;是如何在深度学习网络中提取多尺度特征的&#xff1f;附代码&#xff08;二&#xff09; 【深度学习基础之多尺度特征提取】多尺度卷积神经网络&#xff08;MS-CNN&#xff09;是如何在深度…...

论文解读之learning to summarize with human feedback

最近在看大模型训练相关的论文&#xff0c;预计会追溯经典的和最新的训练策略以及微调原理等 本次解读经典论文learning to summarize with human feedback 一、简介 部分生成任务需要对齐人类偏好&#xff0c;但是根据最大化可能性&#xff08;对数似然&#xff09;进行微调…...

STM32学习(六 )

串口初始化IO引脚 串口的引脚在哪里 串口可以利用GPIO_InitTypeDef结构体和GPIO_Init&#xff08;&#xff09;函数进行初始化 USART_InitTypeDef USART_InitStruct;//建立串口结构体USART_InitStruct.USART_BaudRate 115200;//波特率115200USART_InitStruct.USART_Mode US…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...