Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >java-基本程序设计结构

java-基本程序设计结构

作者头像
卢衍飞
发布于 2023-02-16 06:59:56
发布于 2023-02-16 06:59:56
33900
代码可运行
举报
文章被收录于专栏:技术分享交流技术分享交流
运行总次数:0
代码可运行

基本数据类型 public class Main {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[]args) {
    // 2进制表示--10进制为3
    System.out.println(0b0011);
    // 16进制表示--10进制为14
    System.out.println(0xe);
    // 8进制表示--10进制为8
    System.out.println(010);
    // 可以在数字中加下划线便于阅读
    System.out.println(100_100_100);
    // 长整型可以加一个'L'作为后缀
    System.out.println(1000000000L);
    // float类型的浮点数后面使用后缀'F',double类型的浮点数后面使用后缀'D',
    System.out.println(0.01F);
    System.out.println(0.01D);

}

} 数组深拷贝和浅拷贝 Arrays.copyof(原始数组,新数组的长度)

如果数组元素是数值型,那么多余的元素将被赋值为0 ; 如果数组元素是布尔型, 则将赋值为false。相反, 如果长度小于原始数组的长度,则只拷贝最前面的数据元素。

import java.util.Arrays;

public class Main {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[]args) {
    int[] arr = {1,2,3,4,5};
    int[] cloneArr = arr;
    int[] p = Arrays.copyOf(arr,arr.length);
    arr[1] = 10;

    for (int num: arr) {
        System.out.printf(num + " ");
    }

    System.out.println();

    for (int num: cloneArr) {
        System.out.printf(num + " ");
    }

    System.out.println();

    for (int num: p) {
        System.out.printf(num + " ");
    }
}

} 输出:

1 10 3 4 5 1 10 3 4 5 1 2 3 4 5 数组排序 import java.util.Arrays; import java.util.Collections; import java.util.Comparator;

public class InterfaceTest {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {
    Integer[] arr = {19,67,55,9,20,35};
    // 升序排序
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));
    // 降序排序
    // 第一种方法:Collections.reverseOrder()
    Arrays.sort(arr, Collections.reverseOrder());
    System.out.println(Arrays.toString(arr));

    // 第二种方法:实现Comparator接口
    Arrays.sort(arr, new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            // o1.compare(o2)返回正数,说明o1比o2大
            // 正序排序: o1 - o2 > 0
            // 降序排序: o2 - o1 > 0
            // return Integer.compare(o2,o1);
            return o2 - o1;
        }
    });

    // 更简洁的写法: lambda表达式
    Arrays.sort(arr, (o1,o2) -> o2 - o1);
    System.out.println(Arrays.toString(arr));

}

} 多维数组 每一行的数据长度可以不相等,创建多维数组时必须指定行数

import java.util.Arrays;

public class Main {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[]args) {
    final int MAX = 10;
    // 指定行数
    int[][] arr = new int[MAX][];
    // 分配行的长度
    for (int i = 0; i < MAX; i++) {
        arr[i] = new int[i+1];
    }
    
    for (int i = 0; i < MAX; i++) {
        for (int j = 0; j <= i; j++) {
            arr[i][j] = j+1;
        }
    }
    for (int[] row : arr) {
        for (int val: row) {
            System.out.print(val + " ");
        }
        System.out.println();
    }
    
    // 快速打印二维数组的值
    System.out.println(Arrays.deepToString(arr));
}

} 交换数组的任意两行

import java.util.Arrays;

public class Main {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[]args) {
    int[][] arr = {{1,2,3},{4,5,6,7}};
    int[] tmp = arr[0];
    arr[0] = arr[1];
    arr[1] = tmp;
    System.out.println(Arrays.deepToString(arr));
}

} 二维数组复制

public class Main {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[]args) {
    int[][] arr = {{1,2,3},{4,5,6,7}};
    // 长度为行数
    int[][] arr_copy = Arrays.copyOf(arr,2);
    System.out.println(Arrays.deepToString(arr_copy));
}

} 不可变字符串 String ans = String.join(",","hello","are","you","ok"); // 使用逗号分隔字符串 System.out.println("hello".equalsIgnoreCase("HEllo")); // true 不区分大小写比较 控制台程序 import java.io.Console;

public class Main {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[]args) {
    Console console = System.console();
    String str = console.readLine("User name: ");
    char[] password = console.readPassword("password: ");
    System.out.println(str);
    for (int i = 0; i < password.length; i++) {
        System.out.println(password[i]);
    }
}

} 格式化输出 对第i个参数多次不同的格式化输出

import java.util.Date;

public class Main {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[]args) {
    String name = "Alice";
    int age = 18;
    String message = String.format("Hello %s,Next year you will be %d",name,age+1);
    System.out.println(message);
    System.out.printf("%.2f%%\n",20*100/100.0);
    System.out.printf("%1$s %2$tB %2$te, %2$tY\n", "Due date:", new Date());
    System.out.printf("%1$.2f,%1$.3f,%1$.4f",100/3.0);
}

} 带标签的break 标签必须放在希望跳出的最外层循环之前, 并且必须紧跟一个冒号:

可以将一个标签放在想要跳到的语句块之前,类似于goto的作用

import java.util.Scanner;

public class Main {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[]args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    label:
    for (int i = 0; i < n; i++) {
        if (i == 10) {
            System.out.println(i);
            break label;
        } else {
            System.out.println(i);
        }
    }
}

} 大整数 import java.math.BigInteger;

public class Main {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[]args) {
    // 使用字符串创建大整数
    BigInteger bigInteger = new BigInteger("11111111111111111111111111111111111111111111111111111111");
    // 最大只支持long
    BigInteger bigInteger1 = BigInteger.valueOf(111111111);
    // 四则运算+取模
    System.out.println(bigInteger.add(bigInteger1));
    System.out.println(bigInteger.subtract(bigInteger1));
    System.out.println(bigInteger.multiply(BigInteger.valueOf(1111111)));
    System.out.println(bigInteger.divide(new BigInteger("11111111")));
    System.out.println(bigInteger.mod(bigInteger1));
}

} java匹配一个或多个空格 // 匹配一个或多个空格 String [] words = sentence.split("\s+"); for (String s : words) {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
System.out.println(s);

} BufferedReader和BufferedWriter BufferedReader读入数据

BufferedWriter输出数据

IO数据大的时候替换Scanner输入和System.out输出

import java.io.*;

public class Main {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str = br.readLine(); // 一行一行读入
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    bw.write(str);
    bw.write("\n");
    bw.flush(); // 记得刷新缓存
}

} StringBuilder和StringBuffer 可变字符串,String是不可变字符串

public class Main {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {
    StringBuffer sb = new StringBuffer("hello ");
    sb.append("world!");
    System.out.println(sb);
    // 字符串反转,String没有这个方法
    System.out.println(sb.reverse());
    StringBuilder builder = new StringBuilder("AAA");
    builder.append(" BBB");
    System.out.println(builder);
}

}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023 年 01 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
集合框架3-Arrays 类
Arrays 和 Collections是分别操作数组和集合的两个工具类。今天就来对 Arrays 中的内容作个总结。
归思君
2023/10/16
2000
Java-常用类
哈喽!大家好,我是小简。今天开始学习《Java-常用类》,此系列是我做的一个 “Java 从 0 到 1 ” 实验,给自己一年左右时间,按照我自己总结的 Java-学习路线,从 0 开始学 Java 知识,并不定期更新所学笔记,期待一年后的蜕变吧!
小简
2023/01/04
3690
Java-常用类
【Java宝典】——二维数组的寻宝之旅
由上面的输出结果我们可以得出:其实二维数组的本质就是一个大的一维数组array,里面包含着两个小的一维数组。由此我们可以将上面的循环打印二维数组的语句修改为如下样式:
ImAileen
2024/09/20
660
【Java宝典】——二维数组的寻宝之旅
Java 常用类
String a="hello"+"abc";//==>优化等价 String a="helloabc";
用户9615083
2022/12/25
6110
Java 常用类
数组排序的实现
利用Collections.reverseOrder()方法:倒叙排列,数组倒置。
泰斗贤若如
2019/06/19
6480
Java 比较器 和 包装类
Java Comparable接口强行对实现它的每个类的对象进行整体排序 这种排序被称为:自然排序
Java_慈祥
2024/08/06
1410
Java 比较器 和 包装类
java中数组遍历的三种方式
通常遍历数组都是使用for循环来实现。遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。
全栈程序员站长
2022/09/05
1.4K0
Arrays:点燃你的数组操作技巧的隐秘武器
  数组在 Java 中是一种常用的数据结构,用于存储和操作大量数据。但是在处理数组中的数据,可能会变得复杂和繁琐。Arrays 是我们在处理数组时的一把利器。它提供了丰富的方法和功能,使得数组操作变得更加简单、高效和可靠。无论是排序、搜索、比较还是复制,Arrays 都能够满足我们的需求,来帮助我们充分发挥数组的潜力。接下来我们一起看看 Arrays 的各种功能和用法,以帮助我们更好地利用这个强大的工具。
不一样的科技宅
2023/09/01
1540
Arrays:点燃你的数组操作技巧的隐秘武器
java打印数组元素_java Arrays快速打印数组的数据元素列表案例
public static strictfp void main(String[] args) {
全栈程序员站长
2022/08/23
1.7K0
java打印数组元素_java Arrays快速打印数组的数据元素列表案例
Java常用类应用详解
可以通过图查询到其含有的字段和方法,jump to source 可以查看到源码。
timerring
2023/05/01
4800
Java常用类应用详解
Arrays类
  为了简化对数组的操作,JDK1.2在java.util包下增加了一个Arrays类(数组工具类),里面提供了一系列静态方法,用于对数组进行排序、查找等。Arrays类常见方法如表所示。
别团等shy哥发育
2023/02/25
3090
Arrays类
java-接口、lambda表达式
接口中所有方法必须为public 接口中不能定义成员变量,但是可以定义为一个常量(类型为public static final) 不能用new来实例化一个接口,但是允许定义一个接口变量 接口变量必须引用实现了该接口的类对象 同一个类可以同时实现多个接口 接口可以定义default方法,该方法提供了一个默认的实现,实现该接口时可以按需重写该方法 接口中的默认方法可以调用其他任意方法 java-SE8后允许接口定义静态方法 public class InterfaceTest implements Test{
卢衍飞
2023/02/16
5120
Java学习笔记4-数组操作
在笔记3中已经学习了for和for each相关操作,可以使用两者对数组进行变量,但要记住for是通过计数器来进行遍历,而for each则是直接访问数组中的元素值;
村雨遥
2020/03/23
3190
JAVA打印数组的四种方法
无聊看模块Integer.java源码时(IDEA中鼠标悬浮在Integer上按ctrl+alt 可以转到类源码),因为刚学java,想尝试着仿照python的方法打印数组:
全栈程序员站长
2022/08/11
1.4K0
JAVA打印数组的四种方法
挑战程序竞赛系列(19):3.1最小化第k大的值
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014688145/article/details/73743661
用户1147447
2019/05/26
3650
(31) 剖析Arrays / 计算机程序的思维逻辑
数组是存储多个同类型元素的基本数据结构,数组中的元素在内存连续存放,可以通过数组下标直接定位任意元素,相比我们在后续章节介绍的其他容器,效率非常高。 数组操作是计算机程序中的常见基本操作,Java中有一个类Arrays,包含一些对数组操作的静态方法,本节主要就来讨论这些方法,我们先来看怎么用,然后再来看它们的实现原理。学习Arrays的用法,我们就可以避免重新发明轮子,直接使用,学习它的实现原理,我们就可以在需要的时候,自己实现它不具备的功能。 用法 toString Arrays的toString方法可
swiftma
2018/01/31
1.4K0
【Java学习笔记之十二】Java8增强的工具类:Arrays的用法整理总结
本文将整理 java.util.Arrays 工具类比较常用的方法:  本文介绍的方法基于JDK 1.7 之上。  1.  asList方法  @SafeVarargs public static <T> List<T> asList(T... a) { return new ArrayList<>(a); }    使用该方法可以返回一个固定大小的List,如:  List<String> stringList = Arrays.asList("Welcome", "
Angel_Kitty
2018/04/09
6470
【Java学习笔记之十二】Java8增强的工具类:Arrays的用法整理总结
java多维数组
Java 是一种高级编程语言,广泛应用于各种软件开发和企业应用中。Java 语言支持多维数组,这是一个非常强大和有用的特性。多维数组可以帮助开发人员处理各种复杂的数据结构和算法,同时提高代码的可读性和可维护性。本文将详细介绍 Java 多维数组的概念、用法和示例。
堕落飞鸟
2023/04/03
1.8K0
Java –如何打印数组
这是打印数组的最简单方法– Arrays.toString (自JDK 1.5起)
全栈程序员站长
2022/09/01
9840
Java程序设计(基础)- 数组
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。 Java语言中提供的数组是用来存储固定大小的同类型元素。 你可以声明一个数组变量,如numbers[100]来代替直接声明100个独立变量number0,number1,…,number99。 Java数组的声明、创建和初始化,并给出其对应的代码。
全栈程序员站长
2022/06/30
5890
Java程序设计(基础)- 数组
相关推荐
集合框架3-Arrays 类
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验