Java_常用API

news2024/11/16 5:48:09

Java_常用API

​ API即Application Programming Interface,即应用程序接口。一般来说API就是软件组件之间信息交互的桥梁,通过它无需访问源码。API除了有应用程序接口的含义外,还特质API的说明文档,也称为帮助文档。

1.字符串的操作

​ Java中定义了String和StringBuffer/StringBuilder两个类来封装字符串,并提供了一些列操作字符串的方法,由于它们都位于java.lang包中,所以不需要导包就可以直接使用。

  • 字符串的初始化:
String 变量名 = "值";

String 变量名 = new String();
String 变量名 = new String(String value);
String 变量名 = new String(char[] value);
String s1 = "hello";
System.out.println(s1);

String s2 = new String();
System.out.println(s2);

char[] arr = {'你','好'};
String s3 = new String(arr);
System.out.println(s3);

byte[] arr2 = {97,98,99};
String s4 = new String(arr2);
System.out.println(s4); // abc

1.1.String类的常用方法

  • 判断功能:
    • boolean equals(String S):判断两个字符串是否相同,区分大小写
    • boolean equalsIgnoreCase(String s):判断两个字符串是否相同,忽略大小写
    • boolean startsWith(String s):判断当前字符串是否以s开头
    • boolean endsWith(String s):判断当前字符串是否以s结尾
    • boolean contains(String s):判断当前字符串是否包含s
    • boolean isEmpty():判断字符串是否为空
public static void method01() {
    String s1 = "HelloWorld";
    System.out.println(s1.equals("helloworld")); // false
    System.out.println(s1.equalsIgnoreCase("helloworld")); // true
    System.out.println(s1.startsWith("h")); // false
    System.out.println(s1.endsWith("ld")); // true
    System.out.println(s1.contains("llo")); // true
    System.out.println(s1.isEmpty()); // false
}
  • 获取功能:
    • int length():返回字符串的长度
    • char charAt(int index):返回对应索引的字符
    • int indexOf(String s):返回s的第一次索引位置
    • int lastIndexOf(String s):返回s最后一次索引位置
    • String concat(String s):拼接字符转
    • String substring(int index):从指定位置到结尾截取字符串
    • String substring(int start,int end):从start开始到end结束截取字符串,左开右闭
public static void method02() {
    String s1 = "HelloWorld";
    System.out.println(s1.length()); // 10
    System.out.println(s1.charAt(0)); // H
    System.out.println(s1.indexOf("l")); // 2
    System.out.println(s1.lastIndexOf("l")); // 8
    System.out.println(s1.concat("Java"));
    System.out.println(s1.substring(2)); // lloWorld
    System.out.println(s1.substring(2,8)); // lloWor
}
  • 转换功能:
    • char[] toCharArray():将字符串转为字符数组
    • byte[] getBytes():将字符串转为字节数组
    • String toUpperCase():将字符串转为小写
    • String toLowerCase():将字符串转为小写
    • String valueOf(int i):将数据转为字符串
public static void method03() {
    String s1 = "HelloWorld";
    char[] arr =s1.toCharArray();
    for (int i = 0; i < arr.length; i++) {
        System.out.println(arr[i]);
    }
    System.out.println("========");
    byte[] arr2 =s1.getBytes();
    for (int i = 0; i < arr2.length; i++) {
        System.out.println(arr2[i]); // 对应字符的码表值
    }
    System.out.println(s1.toUpperCase()); // HELLOWORLD
    System.out.println(s1.toLowerCase()); // helloworld

    System.out.println(String.valueOf(55));
}
  • 其他功能:
    • String[] split(String regex):将字符串按指定规则切割,返回字符串数组
    • String trim():去除字符串两端空格
public static void method04() {
    String s1 = "Java-Python-Mysql-Html";
    String[] s2 = s.split("-");
    for (int i = 0; i < s2.length; i++) {
        System.out.println(s2[i]);
    }
    String s3 = "    Java  Python";
    System.out.println(s3.trim());
}

练习:

​ 现有字符串如下:

String s1=" SSSCCsdfgsdAX@$#67 ";
String s2=“sssdCCsdfGSDAX@$#67;

完成以下操作(默认对s1操作):

(1):保存在字符数组中;
(2):取得第三个元素值;
(3):打印输出该字符串的每个字符;
(4):截取"sd"该子串;
(5):返回"67"的下标位置
(6):返回"gsd"的最后一个下标位置
(7):判断两个字符串是否相等【两种方法操作】
(8):将两个字符串进行连接为一个字符串,s2在前面,s1在后面
(9):去掉s1前后空格
(10):将s1只要是大写字符全部转为小写
(11):判断最后面的字串是不是“67”
(12):判断s2最前面的字串是不是“sss”

1.2.StringBuffer类

​ 在Java中,String类是被关键字fianl修饰的,所以一旦使用String类创建了字符串后就不能改变,其内容和长度是不可变的。

​ 不过Java也提供了StringBuffer/StringBuilder(字符串缓冲区)来操作字符串。它与String类最大的区别就是其长度和内容可变StringBuffer类就相当于一个容器,对其添加或删除时,相当于是对这个容器操作,因此并不会产生新的StringBuffer对象。

​ 其创建字符串缓冲区的方式为:

StringBuffer sb = new StringBuffer();
StringBuffer sb2 = new StringBuffer(String s);

StringBuffer常用的方法为:

StringBuffer append(char c);  // 添加字符到末尾
StringBuffer insert(int offset,String s);  // 在offset位置插入s
StringBuffer deleteCharAt(int index);  // 删除index位置的字符
StringBuffer delete(int start,int end); // 删除从start开始end(不包含)结束的的字符
StringBuffer replace(int start,int end,String s); // 将start-end的字符用s替换
void setCharAt(int index,char c); // 修改指定位置处的字符为c
String toString(); // 返回字符串对象
StringBuffer reverse();  // 反转
public class StringBufferTest {

    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        StringBuffer sb02 = new StringBuffer("Hello");
        System.out.println(sb02.append("World")); // HelloWorld
        System.out.println(sb02.insert(5,"Java")); // HelloJavaWorld
        System.out.println(sb02.deleteCharAt(4)); // HellJavaWorld
        System.out.println(sb02.delete(0,3)); // lJavaWorld
        System.out.println(sb02.replace(0,4,"Python")); // PythonaWorld
        System.out.println(sb02.reverse()); // dlroWanohtyP

    }
}

2.System类

​ System类定义了一些与系统相关的属性和方法,它提供的方法都是静态的,因此,想要用这些方法,直接通过System调用即可。它的常用方法如下:

方法描述
static void exit(int status)终止当前正在运行的Java虚拟机,其中status为状态码,若状态码为非0,则为异常终止
static void gc()进行手动垃圾回收
static native long currentTimeMillis()返回以毫秒为单位的当前时间
static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)从src引用的指定源数组复制到dest引用的数组,复制从指定位置开始,到目标数组的指定位置结束
static Properties getProperties()获取当前系统的属性
static String getProperty(String key)获取指定Key描述符的属性
public class SystemTest {
    public static void main(String[] args) {
        /*for (int i = 0; i < 10; i++) {
            if (i == 5) {
                System.exit(0);
            }
            System.out.println(i); // 0,1,2,3,4
        }*/

        long start = System.currentTimeMillis();
        for (int i = 0; i < 1000; i++) {
            System.out.println(i);
        }
        long end = System.currentTimeMillis();
        System.out.println(end-start);

        int[] src = {1,2,3,4,5};
        int[] dest = {6,7,8,9,10};
        System.arraycopy(src,1,dest,3,2);
        for (int i = 0; i < dest.length; i++) {
            System.out.print(dest[i] + " "); // 6,7,8,2,3
        }

        System.out.println(System.getProperties());
        System.out.println(System.getProperty("os.name"));
    }
}

3.Runtime类

Runtime类用于表示Java虚拟机运行时的状态,它用于封装Java虚拟机的进程。每次使用“'java’命令启动Java虚拟机都会创建一个对应Runtime实例,并且只有一个实例,应用程序会通过该实例与其运行时的环境相连。

​ 获取Runtime实例的方法:

Runtime run = Runtime.getRuntime();
// Runtime提供了一个exec()方法,该方法用于执行一个DOS命令,功能和窗口输入DOS命令相同

​ 常用方法有:

方法描述
int availableProcessors()获取处理器个数
long freeMemory()获取空闲内存
long maxMemory()获取最大内容
Process exec()执行DOS命令
public class RuntimeTest {
    public static void main(String[] args) throws IOException {
        Runtime rt = Runtime.getRuntime();
        System.out.println(rt);
        System.out.println(rt.availableProcessors()); // 4
        System.out.println((rt.freeMemory()) / 1024 /1024 + "MB");
        System.out.println((rt.maxMemory()) / 1024 /1024 + "MB");

        Process ip = rt.exec("notepad.exe"); // 打开记事本
    }
}

4.Math类

Math类是一个专门用于做数学运算的工具类,入求绝对值等。由于这个类被private修饰,并且方法都为静态,因此无法创建对象,只能通过类名直接调用方法。除静态方法外,Math类还有两个常量,PIE,分别代表数学中的Πe

​ 常用方法如下:

  • Math.obs(int num):计算绝对值
  • Math.sin(double num):计算余弦
  • Math.cos(double num):计算正弦
  • Math.tan(double num):计算正切
  • Math.sqrt(int num):计算平方根
  • Math.cbrt(int num):计算立方根
  • Math.pow(int num1,int num2):乘方,num1的num2次方
  • Math.ceil(double num):向上取整
  • Math.floor(double num):向下取整
  • Math.round(double num):四舍五入
  • Math.max(double num1, double num2):求两个数的最大值
  • Math.min(double num1,double num2):求两个数的最小值
  • Math.random():生成一个0(包含)-1(不包含)的随机数
public class MathTest {

    public static void main(String[] args) {
        System.out.println(Math.PI);
        System.out.println(Math.abs(-5));
        System.out.println(Math.sin(2.2));
        System.out.println(Math.cos(2.2));
        System.out.println(Math.tan(2.2));
        System.out.println(Math.sqrt(5));
        System.out.println(Math.cbrt(5));
        System.out.println(Math.pow(5,2));
        System.out.println(Math.ceil(5.4));
        System.out.println(Math.floor(5.4));
        System.out.println(Math.round(5.4));
        System.out.println(Math.max(5.4,6.5));
        System.out.println(Math.min(5.4,6.5));
        System.out.println(Math.random());

    }
}

5.Random类

Random类用于指定范围内的随机数。常用方法有:

  • boolean nextBoolean():随机生成boolean类型的随机数
  • boolean nextDouble():随机生成double类型的随机数
  • float nextFloat():随机生成float类型的随机数
  • int nextInt():随机生成int类型的随机数
  • int nextInt(int n):随机生成[0,n)之间int类型的随机数
  • long nextLong():随机生成long类型的随机数
public class RandomTest {
    public static void main(String[] args) {
        Random r = new Random();

        System.out.println(r.nextBoolean());
        System.out.println(r.nextDouble());
        System.out.println(r.nextFloat());
        System.out.println(r.nextInt());
        System.out.println(r.nextInt(100));
        System.out.println(r.nextLong());
    }
}

6.包装类

​ 虽然Java是面向对象的语言,但它的8大基础数据类型却不支持面向对象的编程机制(没有属性和方法),在Java中,很多类的方法都需要接收引用类型的对象,此时就无法将一个基本数据类型的值传入。

​ 为了解决这个问题,JDK中提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据对象。

基础数据类型包装类-引用数据
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

​ 在JDK1.5后新增了一个特性,可以实现数据的自动拆装箱:

  • 自动拆箱:将引用数据类型转为基本数据类型
  • 自动装箱:将基本数据类型转为引用数据类型

包装类的属性和方法有很多,我们以Integer为例

// 属性
static int MAX_VALUE 		值为 2311 的常量,它表示 int 类型能够表示的最大值。
static int MIN_VALUE 		值为 -231 的常量,它表示 int 类型能够表示的最小值。
static int SIZE  			用来以二进制补码形式表示 int 值的比特位数。
static Class<Integer> TYPE  表示基本类型 intClass 实例。
    
    
// 构造方法
Integer(int value) 			构造一个新分配的 Integer 对象,它表示指定的 int 值。
Integer(String s)			构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。
    
// 成员方法
static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析。
static int parseInt(String s, int radix) 使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

其他常用的成员方法可以参考JDK文档。

public class Test {

    public static void main(String[] args) {
        Integer i = 5;  // 自动装箱
        System.out.println(i);
        System.out.println(i + 5); // 自动拆箱-将包装类型转为基础类型

        Integer i1 = new Integer(5);
        Integer i2 = new Integer("5");
        System.out.println(i1 + i2); // 10

        int i3 = Integer.parseInt("123");
        System.out.println(i3); // 123
        // int i4 = Integer.parseInt("a123");
        // System.out.println(i4); // NumberFormatException
        // int i5 = Integer.parseInt("123a");
        // System.out.println(i5); // NumberFormatException
        
    }
}

所有的包装类都具有一个parseXXX(String s)的方法,可以将字符串类型转换为指定类型。

拓展:在Integer类中,不仅有parseInt()方法可以将字符串类型转换为Integer,还有一个方法也可以办到,那就是valueOf()方法,起始我们查阅底层代码可以得知,valueOf()方法是从Integer的常量池(缓冲池)中(-128-127)获取的,所以如果确定的数值是在缓冲池中的情况下,那么使用valueOf()明显比parseInt()更为合适

image-20230424142345878

image-20230424142409107

7.日期和时间类

7.1.Date类

​ Date类用于在Java中处理时间和日期,由于这个类在JDK1.0就已经存在,所有该类中的部分方法已经过期,但在后期,JDK又新增了一些类来处理日期,所以一般处理日期类时已不再采用Date类。

​ Date类的构造方法有很多,可根据自己对日期时间的格式化需求进行创建对象:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ONA5VYlq-1682494244083)(C:/Users/HP/AppData/Roaming/Typora/typora-user-images/image-20230424142804851.png)]

​ 需要注意的时,不仅在Java,在其他开发语言中,处理日期时间的类的起始时间都是从1970年1月1日0时0分0秒开始的,即Unix时间戳。

public class DateTest {

    public static void main(String[] args) {
        // 无参构造
        Date date = new Date();
        System.out.println(date); // 当前时间

        // 有参构造
        // toLocaleString() 根据本地格式显示时间
        Date date1 = new Date(1682317996857L);
        System.out.println(date1.toLocaleString());

    }
}

7.2.Calendar类

​ Calendar类用于完成时间和日期字段的操作,它可以通过特定的方法设置和读取日期的特定部分,如年、月、日、时、分、秒等。**Calendar类是一个抽象类,不能被实例化。**但我们可以调用它的静态方法getInstance()来得到一个Calendar对象,然后才能调用其相应的方法。

public class CalendarTest {

    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance(); // 获取到当前时间
        System.out.println(cal);
        // 获取年月日
        int month = cal.get(Calendar.MONTH);
        System.out.println(month);  // 0-11
        int year = cal.get(Calendar.YEAR);
        System.out.println(year);
        int day = cal.get(Calendar.DAY_OF_WEEK);
        System.out.println(day); // 一周中第几天,从星期天开始

    }
}

​ 常用方法参考JDK文档。

7.3.JDK8新增时间日期类

​ 为了满足更多的需求,JDK8中新增了一个java.time包,在该包下包含了更多日期和时间类,以下罗列了部分类,其他新增类可以参考API文档或在线API:https://www.matools.com/api/java8

类名描述
Clock用于获取指定时区的日期、时间等
DayOfWeek枚举类,定义了一周周一到周天的枚举信息
Duration表示持续时间。该类提供了ofXXX()方法用于获取指定时间的小时、分钟、秒数等
Instant表示一个具体时刻,可以精确到纳秒。该类提供的静态方法now()用来获取当前时刻,提供了方法now(Clock clock)来获取clock对应的时刻。同时还提供了一系列的plusXXX()方法来获取当前时刻基础上加上一段时间,以及一系列的minusXXX()方法在当前时刻上减去一段时间。

​ 其他新增时间日期类的使用可以参考API文档。

7.4.DateFormat

DateFormat专门用于将日期格式化为字符串或将特定格式显示的日期的字符串转换为一个Date对象。

DateFormat是一个抽象类,不能被实例化,但它提供了一系列的静态方法来获取它的实例化对象。

方法描述
tatic DateFormat getInstance()获取在日期和时间上使用SHORT样式的默认日期/时间格式化程序
static DateFormat getDateInstance(int style)获取默认的 FORMAT区域设置的给定格式化样式的日期格式化 程序
static DateFormat getDateInstance()获取默认格式化样式为默认的 FORMAT语言环境的日期格式化程序
static DateFormat getDateTimeInstance(int dateStyle, int timeStyle)获取默认的 FORMAT区域设置的给定日期和时间格式化样式的日期/时间格式化程序
String format(Date date)将日期格式化成日期/时间字符串
Date parse(String source)从给定字符串的开始解析文本以生成日期
public class DateFormatTest {

    public static void main(String[] args) throws ParseException {
        // 创建完整格式化时间对象
        DateFormat df01 = DateFormat.getDateInstance(DateFormat.FULL);
        // 创建长格式化时间对象
        DateFormat df02 = DateFormat.getDateInstance(DateFormat.LONG);
        // 创建标准格式化时间对象
        DateFormat df03 = DateFormat.getDateInstance(DateFormat.MEDIUM);
        // 创建段格式化时间对象
        DateFormat df04 = DateFormat.getDateInstance(DateFormat.SHORT);


        Date date = new Date(); // 当前时间
        System.out.println("完整版格式为:" + df01.format(date));
        System.out.println("长格式为:" + df02.format(date));
        System.out.println("标准格式为:" + df03.format(date));
        System.out.println("短格式为:" + df04.format(date));


        // 将字符串日期解析成日期对象
        String s = "2023年5月1日";
        System.out.println(df02.parse(s));
    }
}

7.5.SimpleDateFormat

SimpleDateFormatDateFormat的一个子类,但它比DateFormat更加灵活,它可以使用new关键字来创建对象,在创建对象时,它的构造参数需要接收一个表示日期格式的字符串参数。

image-20230426151713819

public class SimpleDateFormatTest {

    public static void main(String[] args) throws ParseException {
        // 公园2023年5月1日  星期一 12:00:00
        SimpleDateFormat sdf = new SimpleDateFormat("Gyyyy年MM月dd日 E HH:mm:ss");
        // 当前日期对象
        Date date = new Date();
        System.out.println(sdf.format(date));

        System.out.println("========");
        // 将一个字符串日期对象解析成日期对象
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        String str = "2023-05-01";
        System.out.println(sdf1.parse(str));

    }
}

7.6.DateTimeFormatter

DateTimeFormatter类的使用方式和SimpleDateFormat类似,包含了大量的常量和操作时间的方法来创建格式化对象。

public class DateTimeFormatTest {

    public static void main(String[] args) {
        // 本地日期时间对象
        LocalDateTime ldt = LocalDateTime.now();
        // 通过静态方法格式化对象
        DateTimeFormatter dtf1 = DateTimeFormatter.ISO_DATE_TIME;
        String format = dtf1.format(ldt);
        System.out.println(format);
        // 其他方法参考文档
    }
}

MM-dd");
String str = “2023-05-01”;
System.out.println(sdf1.parse(str));

}

}




### 7.6.DateTimeFormatter

​	`DateTimeFormatter`类的使用方式和`SimpleDateFormat`类似,包含了大量的常量和操作时间的方法来创建格式化对象。

```java
public class DateTimeFormatTest {

    public static void main(String[] args) {
        // 本地日期时间对象
        LocalDateTime ldt = LocalDateTime.now();
        // 通过静态方法格式化对象
        DateTimeFormatter dtf1 = DateTimeFormatter.ISO_DATE_TIME;
        String format = dtf1.format(ldt);
        System.out.println(format);
        // 其他方法参考文档
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32F4_LCD液晶显示详解

目录 1. LCD简介 2. TFT_LCD简介 2.1 LCD屏显示原理 2.2 TFTLCD硬件分析 2.3 3.5寸 16位80并口驱动 2.4 NT35310驱动时序 2.5 TFTLCD驱动流程 2.6 显存指令 2.6.1 0xD3&#xff1a;读取LCD控制器的ID 2.6.2 0x36&#xff1a;控制扫描方向 2.6.3 0x2A&#xff1a;列地…

传统机器学习(七)支持向量机(2)sklearn中的svm

传统机器学习(七)支持向量机(2)sklearn中的svm 2 sklearn中的svm 2.1 LinearSVC及SVC参数详解 2.1.1 SVC参数 class sklearn.svm.SVC(*,C1.0, kernelrbf, degree3, gammascale, coef00.0, shrinkingTrue, probabilityFalse, tol0.001, cache_size200, class_weightNone, ve…

【刷题记录】stack queue的题目练习

文章目录 1. 最小栈2. 逆波兰表达式3. 栈的压入弹出序列4. 栈实现队列5. 队列实现栈 1. 最小栈 题目链接&#xff1a;155. 最小栈 - 力扣&#xff08;LeetCode&#xff09; 题干&#xff1a; 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时…

使用django_celery_beat在admin后台配置计划任务

一、依赖包的安装 django中使用celery做异步任务和计划任务最头疼的点就是包之间版本兼容性问题&#xff0c;项目一启动花花报错&#xff0c;大概率都是版本问题。每次都会花很大时间在版本兼容性问题上。本例使用如下版本&#xff1a; Django3.2 celery5.2.7 django-celery-b…

记一次 Windows10 内存压缩模块 崩溃分析

一&#xff1a;背景 1. 讲故事 在给各位朋友免费分析 .NET程序 各种故障的同时&#xff0c;往往也会收到各种其他类型的dump&#xff0c;比如&#xff1a;Windows 崩溃&#xff0c;C 崩溃&#xff0c;Mono 崩溃&#xff0c;真的是啥都有&#xff0c;由于基础知识的相对缺乏&a…

CASAIM高精度自动化三维扫描系统检测塑料件,自动检测形位公差

随着塑料工业的迅速发展&#xff0c;以及塑料制品在航空、航天、电子、机械、船舶和汽车等工业部门的推广应用&#xff0c;对塑料件的质量要求也越来越高。 为了检测塑料件的尺寸偏差以及测量关键部位的3D尺寸和形位公差&#xff0c;对影响总成零件精度的产品、工装、工艺进行精…

Spring手写模拟源码篇(你值得拥有)

概念篇 下面是本文章关于Spring底层原理的章节 Bean的创建的生命周期 类-》推断构造方法-》根据构造方法创建普通对象-》依赖注入&#xff08;Autowired等进行属性注入&#xff09;-》初始化前&#xff08;PostConstruct)->初始化&#xff08;InitializingBean)-》初始化后…

【Feign扩展】OpenFeign日志打印Http请求参数和响应数据

SpringBoot使用log4j2 在Spring Boot中所有的starter 都是基于spring-boot-starter-logging的&#xff0c;默认使用Logback。使用Log4j2的话&#xff0c;你需要排除 spring-boot-starter-logging 的依赖&#xff0c;并添加 spring-boot-starter-log4j2的依赖。 配置依赖 <…

transformer 网络概述

1. RNN存在的问题 RNN对并行计算并不友好&#xff0c;下一输出依赖于上一输入&#xff0c;难以实现并行高效计算RNN相比较与self-attension模块&#xff0c;缺少对部分变量权重的预估&#xff0c;输出的数据默认拥有一致的权重 2. self-attension self-attension是干嘛的&am…

Shell编程规范与变量使用(再也回不到故事开始的第一章了)

一、Shell编程概述 1.Shell脚本的概念 将要执行的命令按顺序保存到一个文本文件&#xff0c;给该文件可执行权限&#xff0c;可结合各种shell控制语句以完成更复杂的操作。 2.Shell脚本的应用场景 重复性操作 交互性任务 批量事务处理 服务运行状态监控 定时任务执行 … 3…

【MySQL高级】——SQL执行流程

一、MySQL 中的 SQL执行流程 1. 查询缓存 Server 如果在查询缓存中发现了这条 SQL 语句&#xff0c;就会直接将结果返回给客户端&#xff1b;如果没 有&#xff0c;就进入到解析器阶段。需要说明的是&#xff0c;因为查询缓存往往效率不高&#xff0c;所以在 MySQL8.0 之后就抛…

设计模式 -- 组合模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…

CKA证书题库-总结

CKA真题&#xff08;考题总结&#xff09; 文章目录 CKA真题&#xff08;考题总结&#xff09;证书个人考试总结申诉结果 CKA题目参考博主重点介绍 CKA模拟题库 注意事项考试概要考试注意事项&#xff1a; CKA题目答案设置自动补全方法一方法二 第⼀题&#xff1a;权限控制RBAC…

C语言编程技巧 --- C语言中左移右移与乘除法的比较

C语言中右移与除法的比较 最近在做项目的时候&#xff0c;遇到了一个有趣的现象。那就是&#xff0c;对于除2的整数次幂的操作而言&#xff0c;为了加快计算速度&#xff0c;一般情况下&#xff0c;会用右移&#xff08;>>&#xff09;来替代除法&#xff08;/&#xff0…

SparkSql(RDD、DataFrame、DataSet详解)idea实例+jdbc读取数据库并保存至数据库或本地

DataFrame 是什么 DataFrame 是一种以 RDD 为基础的分布式数据集&#xff0c;类似于传统数据库中 的二维表格。DataFrame 与 RDD 的主要区别在于&#xff0c;前者带有 schema 元信息&#xff0c;即 DataFrame 所表示的二维表数据集的每一列都带有名称和类型。这使得 Spark SQL …

QT Data Visualization 模块概述(数据三维显示的模块)

Data Visualization 是 Qt 提供的用于数据三维显示的模块。在 Ot 5.7 以前只有商业版才有此模块&#xff0c;而从Qt5.7 开始此模块在社区版本里也可以免费使用了。Data Visualization 用于数据的三维显示&#xff0c;包括三维柱状图、三维空间散点、三维曲面等。Data Visualiza…

KeepChatGPT插件-提效神器,解决ChatGPT报错!

KeepChatGPT插件-提效神器&#xff0c;解决ChatGPT报错&#xff01; 一、错误提示 最近⼏天&#xff0c;相信不少人在使用OpenAI的ChatGPT时都发现一个问题&#xff0c;就是官⽹报错越来越频繁了。 当你需⽤ChatGPT来处理⼀些⽐较琐碎的任务时&#xff0c;⼀旦你离开⻚⾯时间…

Java多线程基础-7:wait() 和 notify() 用法解析

线程之间是抢占式执行的&#xff0c;线程调度是无序的、随机的&#xff0c;因此线程之间执行的先后顺序是难以预知的。但是&#xff0c;实际开发中&#xff0c;有时我们希望合理地协调多个线程间执行的先后顺序。 虽然 join() 算是一种控制顺序的方式&#xff0c;但它毕竟“功…

4月第3周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年4月17日-4月23日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营能力强的B…

【华为机考】模拟题:Words、Vowel、计算字符串重新排列数

前言 刷题之路任重而道远&#xff0c;革命尚未成功&#xff0c;同志仍需努力。由于刷惯了 LeetCode&#xff0c;虽然知道华为机考是需要自己输入输出&#xff0c;也稍稍练了一下&#xff0c;结果真做模拟题的时候&#xff0c;一下子忘了怎么获取字符串了&#xff0c;直接搞了个…