Java -- System类和冒泡排序

System

java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。System类私有修饰构造方法,不能创建对象,直接类名调用。

exit

// 终止当前运行的 Java 虚拟机,非零表示异常终止
public static void exit(int status)

currentTimeMillis

// 返回当前时间(以毫秒为单位)
public static long currentTimeMillis()

在控制台输出1-10000,计算这段代码执行了多少毫秒

public static void main(String[] args) {
    //获取当前时间毫秒值
    System.out.println(System.currentTimeMillis()); 
    //计算程序运行时间
    long start = System.currentTimeMillis();
        for (int i = 1; i <= 10000; i++) {
        System.out.println(i);
        }
    long end = System.currentTimeMillis();
    System.out.println("共耗时毫秒:" + (end - start));
    }

arrayCopy

// 从指定源数组中复制一个数组
public static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length)
// Object src:要复制的数据源数组
// int srcPost:数据源数组的开始索引
// Object dest:复制后的目的数组
// int destPos:目的数组开始索引
// int length:要复制的数组元素的个数

将源数组中从1索引开始,复制3个元素到目的数组中

public static void main(String[] args){
    int[] src = {1,2,3,4,5};
    int[] dest = {6,7,8,9,0};
    //将源数组中从1索引开始,复制3个元素到目的数组中
    System.arraycopy(src,1,dest,0,3);
    for(int i = 0 ; i < dest.length;i++){
    System.out.println(dest[i]);
}

已知数组长度为10,存储5个元素,其余元素为null值,在指定索引为2的位置处添加一个元素"张三" 其余元素依次后移

public class Test {
    public static void main(String[] args) {
        String[] arr = {"小一","大二","李四","王五","刘六",null,null,null,null,null};
        // 首先计算数组中要移动元素的个数  移动个数 = 真实存储元素个数-指定索引
        int index = 2;
        int moveNum =5-index;
        // 如果需要移动的个数大于0则进行数组复制
        if(moveNum>0){
            System.arraycopy(arr,index,arr,index+1,moveNum);
        }
        System.out.println("打印移动后的数组");
        System.out.println(Arrays.toString(arr));
        // 将指定索引出的元素设置为张三
        arr[index] = "张三";
        System.out.println("打印修改后的数组");
        System.out.println(Arrays.toString(arr));
    }
}

数组中存储n个元素,将指定索引处的元素删除,并将后面的元素依次进1,将最后的一个元素置为null值

public class Test {
    public static void main(String[] args) {
        String[] arr = {"小一","大二","张三","李四","王五","刘六",};

        //将2索引元素删除 后面元素依次进1 将最后的元素的值 设置为null
        int index = 2;
        //计算移动的元素的个数
        int moveNum = arr.length - index -1;
        //如果计算的结果大于0则复制数组
        if(moveNum>0){
            System.arraycopy(arr,index+1,arr,index,moveNum);

        }
        //打印复制后的数组  Arrays.toString(数组) 将传入的数组转换为字符串
        System.out.println(Arrays.toString(arr));

        //将最后一个元素的值 置为null;
        arr[arr.length-1] = null;
        //打印将最后一个元素设置为null的数组
        System.out.println(Arrays.toString(arr));
    }
}

gc

// 运行垃圾回收器
public static void gc()
// JVM将从堆内存中清理对象,清理对象的同时会调用对象的finalize()方法
// JVM的垃圾回收器是通过另一个线程开启的,因此程序中的效果并不明显
public class Person {
    protected void finalize() throws Throwable {
        System.out.println("对象被回收");
}
public static void main(String[] args){
	new Person();
	new Person();
	new Person();
	new Person();
	new Person();
	new Person();
	System.gc();
}

冒泡排序

数组的排序,是将数组中的元素按照大小进行排序,默认都是以升序的形式进行排序,数组排序的方法有很多

排序,都要进行数组 元素大小的比较,再进行位置的交换
冒泡排序法是采用数组中相邻元素进行比较换位

public static void main(String[] args) {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr = {7, 6, 5, 4, 3};
        System.out.println("排序前:" + arrayToString(arr));
        // 这里减1,是控制每轮比较的次数
        for (int x = 0; x < arr.length - 1; x++) {
            // -1是为了避免索引越界,-x是为了调高比较效率
            for (int i = 0; i < arr.length - 1 - x; i++) {
                if (arr[i] > arr[i + 1]) {
                    int temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                }
            }
        }
        System.out.println("排序后:" + arrayToString(arr));
    }
        //把数组中的元素按照指定的规则组成一个字符串:[元素1, 元素2, ...]
    public static String arrayToString(int[] arr) {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                sb.append(arr[i]);
            } else {
                sb.append(arr[i]).append(", ");
            }
        }
        sb.append("]");
        String s = sb.toString();
        return s;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot集成ChatGPT实现AI聊天

前言 ChatGPT已经组件放开了&#xff0c;现在都可以基于它写插件了。但是说实话我还真没想到可以用它干嘛&#xff0c;也许可以用它结合文字语音开发一个老人小孩需要的智能的说话陪伴啥的。 今天我就先分享下SpringBoot结合ChatGPT&#xff0c;先看看对话效果。 一、依…

护眼灯真的可以保护眼睛吗?推荐五款达到护眼级别的灯

护眼灯是可以起到一定的保护视力的作用。 普通的台灯的出现是为了照明&#xff0c;它的功能只要照明。像眩光、频闪、蓝光等是普通台灯所存在的问题&#xff0c;而这些问题会造成我们的眼睛近视&#xff0c;所以在我国近年来青少年近视率越来越高的重要原因之一。 护眼灯就优化…

C/C++每日一练(20230412)

目录 1. 二维数组找最值 &#x1f31f;&#x1f31f; 2. 排序 &#x1f31f; 3. 二叉树展开为链表 &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 二维…

AI助手帮你轻松做好Imagenet数据集重命名与复制

AI助手帮你轻松做好Imagenet数据集重命名与复制 任务需求 我们对Imagenet数据集进行了水下的退化处理&#xff0c;保存的数据集所有图片的深度图&#xff0c;格式为.npy。但是命名存在一些问题&#xff0c;现有格式为&#xff1a;n02009912_1916.JPEG.npy&#xff0c;需要更改…

KNN、SVM、MLP、K-means分类实验

来源&#xff1a;投稿 作者&#xff1a;摩卡 编辑&#xff1a;学姐 数据集简介 实验使用了两个数据集&#xff0c;一个是经典的鸢尾花数据集(iris)另一个是树叶数据集(leaf) 鸢尾花数据集(iris)&#xff1a; 鸢尾花数据集发布于1988年7月1日&#xff0c;该数据集共有150条数…

chapter-4-数据库语句

以下课程来源于MOOC学习—原课程请见&#xff1a;数据库原理与应用 考研复习 概述 SQL发展 注&#xff1a;关键词是哪些功能&#xff0c;尤其第一个create alter drop是定义功能 1.SQL功能强大&#xff0c;实现了数据定义、数据操纵、数据控制等功能 2.SQL语言简洁&#xff…

一般形式的S曲线公式推导

文章目录一、背景二、目标三、计算3.1 S曲线基本形式3.2 S曲线变换3.3 参数计算3.4 S曲线中心对称条件四、总结五、附件一、背景 S曲线因具备良好可控的平滑性、单调性、连续可导性等优点&#xff0c;常作为各类电机升降速曲线。当前多数S曲线的介绍文章未给出推导过程&#x…

项目的总结

逻辑处理 首先对于版项目来说,工作多是一定的但是又可以看到自己的知识被应用和自己学的不是一无所用。 对于一个项目而言,逻辑是很重要的。理解一个项目的逻辑,我们才能去实施工作画流程图、用例图、原型图、e-r图等等模型 一开始对于一个项目、逻辑是十分混乱的,就需要解耦,把…

OpenCV基础之边缘检测与轮廓描绘

文章目录OpenCv基础之边缘检测与轮廓描绘Canny边缘检测图像轮廓绘制轮廓OpenCv基础之边缘检测与轮廓描绘 边缘检测&#xff1a;主要是通过一些手段检测数字图像中明暗变化剧烈&#xff08;即梯度变化比较大&#xff09;像素点&#xff0c;偏向于图像中像素点的变化。 轮廓检测…

VScode 自动格式化配置

按照自定义 c/c 格式配置自动格式化保存 1. 设置 快捷键&#xff1a;ctrl, 2. format 3.设置C/C格式化格式 参数 &#xff1a; { BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Linux, AllowShortIfStatementsOnASingleLine: fals…

【启动图片与控制器大小的关系 Objective-C语言】

一、启动图片与控制器大小的关系 1.我首先呢,新建一个项目,把控制器的View设置成多大呢,设置成4.7英寸,这是按照我们iPhone6的大小来设置的吧, 2.控制器是4.7英寸,控制器里面这个View,占满整个屏幕,所以它也是4.7英寸大小吧,375667, 3.我在viewDidLoad里,输出一下…

Vite构建Vue3项目

目录1. 初始化2. 输入项目名称3. 选择vue4. 选择typescript5. 进入新建的项目6. 安装依赖7. 运行8. 安装路由9. 安装element-plus10. 安装自动导入组件插件11. 安装自动导入api插件12. 将./src变为13. 安装pinia1. 初始化 npm init vite2. 输入项目名称 vue3-ts 3. 选择vue 4…

存量市场之下,电商之战深入腹地且逻辑未变

纵然是在流量依然见顶的大背景下&#xff0c;电商行业的竞争并未结束。无论是以百亿补贴为代表的烧钱策略&#xff0c;还是以跨境出海为代表的规模策略&#xff0c;几乎都是这样一种现象的直接体现。种种迹象表明&#xff0c;未来的电商行业&#xff0c;依然会有新的战役发生。…

针对近日ChatGPT账号大批量封禁的理性分析

文 / 高扬 这两天不太平。 3月31号&#xff0c;不少技术圈的朋友和我闲聊说&#xff0c;ChatGPT账号不能注册了。 我不以为然&#xff0c;自己有一个号足够了&#xff0c;并不关注账号注册的事情。 后面又有不少朋友和我说ChatGPT账号全部不能注册了&#xff0c;因为老美要封锁…

软件测试今天你被内卷了吗?

认识一个人&#xff0c;大专学历非计算机专业的&#xff0c;是前几年环境好的时候入的行&#xff0c;那时候软件测试的要求真的很低&#xff0c;他那时好像是报了个班&#xff0c;然后入门的&#xff0c;但学的都是些基础&#xff0c;当时的他想的也简单&#xff0c;反正也能拿…

【LeetCode每日一题: 516. 最长回文子序列 | 暴力递归=>记忆化搜索=>动态规划 | 区间dp 】

&#x1f34e;作者简介&#xff1a;硕风和炜&#xff0c;CSDN-Java领域新星创作者&#x1f3c6;&#xff0c;保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享&#x1f48e;&#x1f48e;&#x1f48e; &#x1f34e;座右…

【华为OD机试】1035 - 判断两个IP是否属于同一子网

文章目录一、题目&#x1f538;题目描述&#x1f538;输入输出&#x1f538;样例1二、思路解析三、代码参考作者&#xff1a;KJ.JK&#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f…

MySQL库的操作

文章目录一、创建数据库1.语法2.使用案例二、字符集和校验规则1.查看系统默认字符集以及校验规则2.查看数据库支持的字符集3.查看数据库支持的字符集校验规则4.校验规则对数据库的影响三、操纵数据库1.查看数据库2.显示创建语句3.修改数据库4.删除数据库5.查看连接情况一、创建…

Linux进程间通信

“休息过长就会发霉。”--沃尔特司各特 在讲述完毕Linux中的基础IO之后&#xff0c;我们要来到Linux中很重要的一个模块&#xff0c;即进程间通信。 目录 1.引入 2.管道 2.1内容 2.2原理 2.3操作 2.3.1匿名管道的创建 2.3.2命名管道的创建 1.引入 进程间通信&#x…

计讯物联小型水库雨水情测报与大坝安全监测一体化解决方案,确保水库安全运行

方案背景 防洪治理工程是一项重大的民生工程&#xff0c;也是重大的生态工程。基于我国水灾频发的大背景下&#xff0c;小型水库作为防汛抗洪的重要基础设施&#xff0c;其雨水情测报与大坝安全监测是十分有必要的&#xff0c;不仅可为预防水灾、防汛决策提供大量可靠的数据和资…
最新文章