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

Java--常用类APl(复习总结)

前言:

Java是一种强大而灵活的编程语言,具有广泛的应用范围,从桌面应用程序到企业级应用程序都能够使用Java进行开发。在Java的编程过程中,使用标准类库是非常重要的,因为标准类库提供了丰富的类和API,可以简化开发过程,提高开发效率。本文将介绍一些常用的Java类库及其API,希望能够帮助开发人员更好地理解和应用Java编程中的常用工具和功能

目录

前言:

Object类

定义

 toString方法

 equals方法

Arrays类

equals 方法

 copyof方法

 fill方法

sort( )方法

binarySearch( )方法

toString( )方法

基本数据类型包装类

Integer包装类

包装类转化为基本类

自动的拆箱

基本类转为包装类型

自动装箱

String类

String的简单理解

获取功能的常用方法

转换功能 

 StringBuffer类

StringBuffer类概述

StringBuffer和String的区别?

添加功能

删除功能

 替换功能

反转功能 

截取功能

String类StringBuffer类StringBuilder区别

 Math类

Random类

Date类


Object类

定义

Object类是所有Java类的祖先(根基类).每个类都使用Object 作为超类 (父类).所有对象(包括数组)都继承实现这个类的方法.

Object可以表示Java中任意的类(体现了多态性)

如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类

例如:  public class Person { ... }

等价于: public class Person extends Object { ... }

 toString方法

Object类中定义有public String toString()方法,其返回值是 String 类 型,描述当前对象的有关信息

当需要通过输出语句输出一个对象时,如System.out.println(person),将自动调用该对象类的 toString()方法,如果该类中没有重写toString(),那么默认调用Object类中的toString(),默认输出对象hashCode值

public class NoOverrideToString {private int id;private String name;public NoOverrideToString(int id, String name) {this.id = id;this.name = name;}public static void main(String[] args) {NoOverrideToString obj = new NoOverrideToString(1, "Example");System.out.println(obj.toString());}
}

打印结果:NoOverrideToString@7ef20235

可以根据需要在用户自定义类型中重写toString()方法

public class OverrideToString {private int id;private String name;public OverrideToString(int id, String name) {this.id = id;this.name = name;}@Overridepublic String toString() {return "OverrideToString{" +"id=" + id +", name='" + name + '\'' +'}';}public static void main(String[] args) {OverrideToString obj = new OverrideToString(1, "Example");System.out.println(obj.toString());}
}

打印结果:OverrideToString{id=1, name='Example'}

 equals方法

boolean  equals(Object obj)  用来判断对象是否相等,返回的是一个boolean值

Object 中的 equals 方法默认使用==比较,比较的是对象地址,这点需要注意.

class Student{int age;String name;public Student(int age, String name) {this.age = age;this.name = name;}//没有重写equals方法
}
public class Test {public static void main(String[] args) {//创建二个对象Student a1 = new Student(18, "小明");Student a2 = new Student(18, "小明");//对象比较System.out.println(a1.equals(a2));}
}

运行结果:false

JDK提供的一些类,如String,Date等,重写了Object的equals方法,调用这些类的equals方法, x.equals (y) ,当x和y所引用的对象是同一类对象且属性内容相等返回 true 否则返回 false

class Student{int age;String name;public Student(int age, String name) {this.age = age;this.name = name;}//重写equals方法@Overridepublic boolean equals(Object obj) {if(obj instanceof Student){Student other =(Student) obj;return name.equals(other.name) && age ==other.age;}return false;}
}
public class Test {public static void main(String[] args) {//创建二个对象Student a1 = new Student(18, "小明");Student a2 = new Student(18, "小明");//对象比较System.out.println(a1.equals(a2));}
}

运行结果:true

关于 " == " :

  • "=="  比较等号两边是否相等

○ 当==用于基本类型比较时,比较的是变量值是否相等。
○ 当==用于引用类型比较时,比较的是对象的地址是否相等

Arrays类

equals 方法

比较两个数组对象中元素是否相等.

而数组对象中的equals用来判断与另一个数组对象是否相等

public class Null {public static void main(String[] args) {/*比较两个数组内容是否相等*/int[] a={1,2,3,4};int[] b={1,2,3,4};System.out.println(Arrays.equals(a,b));}
}

运行结果:false 

 copyof方法

数组复制,将原数组内容复制到一个指定长度新数组中

    public static void main(String[] args) {int[] a = {1,2,3,4};int[] b = Arrays.copyOf(a,4);//将原数组c复制到长度为4的新数组d中System.out.println(Arrays.toString(b));}

打印结果:[1, 2, 3, 4]

 fill方法

 将指定的int值分配给指定的int数组的每个元素

    public static void main(String[] args) {int[] a = {1,2,3,4};Arrays.fill(a,4);System.out.println(Arrays.toString(a));}

运行结果:[4, 4, 4, 4] 

sort( )方法

排序,且可通过索引局部排序

public class Null { 
public static void main(String[] args) {//全部排序int[] a = {5,4,3,2,1};Arrays.sort(a);System.out.println(Arrays.toString(a));//通过索引指定区间排序,tolndex索引对应的值不参与排序int[] b ={6,5,4,3,2,1};Arrays.sort(b,1,4);  //对数组b索引1~4元素排序,所有4不参与System.out.println(Arrays.toString(b));}
}

运行结果:[1, 2, 3, 4, 5]   [6, 3, 4, 5, 2, 1] 

binarySearch( )方法

 二分查找,查找前需要先排序

public class Null {public static void main(String[] args) {int[] b ={5,4,6,8,2,1,7};Arrays.sort(b);  //排序后 b={1,2,4,5,6,7,8}int index =Arrays.binarySearch(b,6); //需要找6System.out.println(index);  //输出索引,排序后6对应的索引为4}
}

运行结果:4

toString( )方法

 将数组中的元素内容拼接成一个字符串输出

public class Null {public static void main(String[] args) {int[] a={1,2,3,4};System.out.println(a);  //输出数组地址或首元素地址,不是数组的元素内容System.out.println(Arrays.toString(a));;//通过toString()输出元素内容}
}

打印结果:[I@14ae5a5]    [1, 2, 3, 4]

基本数据类型包装类

Java中基本数据类型使用8个关键字声明的,不是面向对象的 例如:int a = 10;

Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面 向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设 计类时为每个基本数据类型设计了一个对应的类进表示,这样八个和基 本数据类型对应的类统称为包装类

包装类(如:Integer,Double等)这些类封装了一个相应的基本数据 类型数值,并为其提供了一系列操作方法

理解:Java语言是面向对象的,可以为每一个基本类型定义一个类进行表示,这样我们在类中还是保持一个基本类型变量储存数据,同时还可以提供许多方法对基本数据变量进行操作.

Integer包装类

 //一类是静态方法System.out.println(Integer.toBinaryString(5));//转为二进制System.out.println(Integer.toHexString(17));//转为16进制System.out.println(Integer.toOctalString(9));//转为8进制System.out.println(Integer.max(10,5));//去最大数System.out.println(Integer.compare(8,10));//两个整数比较大小 1 0 -1//一类是非静态System.out.println(a.equals(b));//这个是Integer中的equlas的比较 //  这里Integer不可以传字母 System.out.println(a.compareTo(b));//转换的方法  包装类型 转 基本类型int aa  = a.intValue();int bb = Integer.parseInt("20");//把基本类型 转为包装类型int cc = 10;Integer dd = new Integer(cc);Integer ee = Integer.valueOf(cc);

包装类转化为基本类

自动的拆箱

int c =  a.intvalue();  ==============>int c = a; //默认自动的调用intvalue这个方法。

基本类转为包装类型

自动装箱

int x = 10;

Integer y = Integer.valueof(x); =============> Integer y = x //这里默认调用的是Integer y = Integer.valueof(x);

自动装箱时,会默认自动调用valueof()方法

在valueof()中如果 基本类型 在-128——127之间,会在缓存数组中直接取一个Integer对象,减少创建次数,如果二个值相等,获取同一个对象. 如果不在这个区间,每次都创建一个新的对象.建议一般使用equals用来比较。

String类

String的简单理解

地址:java.lang.String

java中所有字符串都是此类的实例

"adb"-------> 字符串对象      底层是一个char数组  

字符串对象的创建

1.String s ="adb"

创建时,先去字符串池中查找有没有相同的值的对象,如果没有,就创建一个字符串对象返回地址,如果字符串常量中已经储存,不用创建新的,直接返回已经存在的对象的地址。

2.String s1 =  new String("sdc"); 

3.字符串创建后不能被改变

注意`:String s = "abc"   //这个是创建一个新的对象s赋值是abc,s+ = "fghgh"   这个是第二次创建新对象s赋值是abc + fghgh所以最后s就是abcfghgh

获取功能的常用方法

  1. int length( )           获取字符串长度
  2. char charAt( )       获取指定位置上的字符
  3. int indexOf( )         获取字符首次出现的位置,也可以从指定位置开始查找
  4. lastIndexOf( )        从后往前找
  5. String substring( )    从指定位置开始截取一个字符串副本
String str = "Hello, World!";
int len = str.length(); // 获取字符串长度
char ch = str.charAt(7); // 获取索引位置为7的字符
int index = str.indexOf("o"); // 查找字符'o'第一次出现的位置
int lastIndex = str.lastIndexOf("o"); // 从后往前查找字符'o'出现的位置
String sub = str.substring(1, 5); // 从索引1开始截取到索引5的子字符串System.out.println("Length: " + len);
System.out.println("Character at index 7: " + ch);
System.out.println("Index of 'o': " + index);
System.out.println("Last index of 'o': " + lastIndex);
System.out.println("Substring from index 1 to 5: " + sub);

打印结果:

Length: 13
Character at index 7: W
Index of 'o': 4
Last index of 'o': 8
Substring from index 1 to 5: ello

转换功能 

  1. byte[] getBytes()

    • 这个方法返回字符串的字节数组表示形式。它将字符串转换为字节数组,使用的编码取决于平台的默认字符集。
  2. char[] toCharArray()

    • 返回一个字符数组,包含了字符串中的所有字符。每个字符在数组中的位置对应字符串中的相同位置。
  3. static String valueOf(char[] chs)

    • 这是一个静态方法,接受一个字符数组 chs 并返回一个新的字符串,包含 chs 中的字符内容。
  4. String toLowerCase()

    • 返回一个新字符串,其中所有的字符都被转换为小写形式。
  5. String toUpperCase()

    • 返回一个新字符串,其中所有的字符都被转换为大写形式。
  6. String concat(String str)

    • 将指定的字符串 str 连接到调用字符串的末尾,并返回一个新的字符串。相当于使用 + 运算符进行字符串拼接。
  7. String[] split(String regex)

    • 根据给定的正则表达式 regex 将字符串拆分为子字符串数组。返回的数组包含了根据分隔符 regex 分割的多个子字符串。
  8. replace(char old, char new)

    • 这个方法用于将字符串中的指定字符old替换为新字符new
  9. replace(String old, String new)

    • 这个方法用于将字符串中的指定子字符串old替换为新的子字符串new
  10. replaceAll(String regex, String replacement)

    • 这个方法用于根据正则表达式regex,替换字符串中匹配正则表达式的部分为指定的replacement字符串
  11. replaceFirst(String regex, String replacement)

    • 这个方法与replaceAll类似,不同的是它只替换匹配正则表达式regex的第一个部分
  12.  String trim( )

    •  去除字符串两端空格(字符串中间的空格不能去除

 StringBuffer类

StringBuffer类概述

我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String 对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题线程安全的可变字符序列

StringBuffer和String的区别?

String可以直接创建字符串对象,而StringBuffer不能,需要新创建一个字符串对象

          String s1 = "abc";StringBuffer s2 = new StringBuffer("abc");

String:

  • String 类是不可变的(immutable)。这意味着一旦一个 String 对象被创建,它的内容不能被更改。任何看似修改 String 内容的操作实际上是创建了一个新的 String 对象

StringBuffer:

  • StringBuffer 是可变的(mutable)。它允许修改其内容,而不创建新的对象。

添加功能

public StringBuffer append(String str)

  1. 该方法用于将指定的字符串 str 添加到当前 StringBuffer 对象的末尾
  2. 返回的是修改后的 StringBuffer 对象本身
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");
// 现在 sb 包含 "Hello World"

public StringBuffer insert(int offset,String str)

  1. 该方法将指定的字符串 str 插入到当前 StringBuffer 对象中的指定 offset 位置处
  2. 返回的是修改后的 StringBuffer 对象本身
StringBuffer sb = new StringBuffer("Hello");
sb.insert(5, " World");
// 现在 sb 包含 "Hello World"

删除功能

public StringBuffer deleteCharAt(int index)

  1. 该方法用于删除当前 StringBuffer 对象中指定 index 处的字符
  2. 返回的是修改后的 StringBuffer 对象本身
StringBuffer sb = new StringBuffer("Hello World");
sb.deleteCharAt(5);
// 现在 sb 包含 "HelloWorld",即删除了第 5 个位置上的空格

 public StringBuffer delete(int start, int end)

  1. 该方法用于删除当前 StringBuffer 对象中从 start 到 end-1 范围内的子字符串
  2. 返回的是修改后的 StringBuffer 对象本身
StringBuffer sb = new StringBuffer("Hello World");
sb.delete(5, 11);
// 现在 sb 包含 "Hello",即删除了从第 5 个位置(包括)到第 11 个位置(不包括)之间的字符

 替换功能

public StringBuffer replace(int start, int end, String str)

  1. 该方法用于将当前 StringBuffer 对象中从 start 到 end-1 范围内的子字符串用指定的字符串 str 替换
  2. 返回的是修改后的 StringBuffer 对象本身
StringBuffer sb = new StringBuffer("Hello World");
sb.replace(6, 11, "Java");
// 现在 sb 包含 "Hello Java",即将从第 6 个位置(包括)到第 11 个位置(不包括)之间的子字符串替换为 "Java"

反转功能 

public StringBuffer reverse()

  1. 该方法用于反转当前 StringBuffer 对象中的字符序列
  2. 返回的是修改后的 StringBuffer 对象本身
StringBuffer sb = new StringBuffer("Hello");
sb.reverse();
// 现在 sb 包含 "olleH",即原字符串的字符顺序被反转了

截取功能

public String substring(int start)

  1. 该方法用于从当前 StringBuffer 对象中提取从 start 位置到末尾的子字符串
  2. 返回的是一个新的 String 对象,包含从 start 位置到末尾的字符序列
StringBuffer sb = new StringBuffer("Hello World");
String sub1 = sb.substring(6);
// sub1 现在包含 "World",即从第 6 个位置(包括)开始直到末尾的子字符串

 public String substring(int start, int end)

  1. 该方法用于从当前 StringBuffer 对象中提取从 start 到 end-1 的子字符串
  2. 返回的是一个新的 String 对象,包含从 start 到 end-1 的字符序列
StringBuffer sb = new StringBuffer("Hello World");
String sub2 = sb.substring(6, 11);
// sub2 现在包含 "World",即从第 6 个位置(包括)到第 11 个位置(不包括)之间的子字符串

截取功能和前面几个功能的不同

返回值类型是String类型,本身没有发生改变

StringBuilder类功能和StringBuffer功能完全一致, StringBuffer是线程安全

String类StringBuffer类StringBuilder区别

  1. 可变性:

    • String:是不可变类,一旦创建,内容不可更改。每次对 String 类型的操作(如拼接、替换等)都会创建一个新的 String 对象。
    • StringBuffer:是可变类,线程安全(即是同步的)。它支持在字符串中进行添加、插入、删除和替换字符或子串的操作,而不会创建新的对象。
    • StringBuilder:也是可变类,但不是线程安全的。它和 StringBuffer 的 API 是相同的,但没有实现同步,因此在单线程环境下性能更好。
  2. 线程安全性:

    • String:不涉及线程安全问题,因为不可变性保证了在多线程环境下不会发生竞态条件。
    • StringBuffer:是线程安全的,因为它的关键操作使用了synchronized关键字进行同步,可以安全地在多线程环境下使用。
    • StringBuilder:不是线程安全的,因此在单线程环境下性能比 StringBuffer 更好,但在多线程环境下需要手动处理同步问题。
  3. 性能:

    • 操作少量数据时,String 的性能通常比较好,因为不涉及额外的内存分配和复制操作
    • 操作大量数据或需要频繁修改字符串时,StringBuffer 和 StringBuilder 的性能会更好,因为它们支持可变操作而不需要创建新对象

 Math类

其方法的参数和返回值类型一般为double型

abs(double a)

  • 功能:返回参数 a 的绝对值。
  • 示例:
double x = -10.5;
double absX = Math.abs(x); // absX 的值为 10.5

sqrt(double a)

  • 功能:返回参数 a 的平方根。
  • 示例:
double y = 25.0;
double sqrtY = Math.sqrt(y); // sqrtY 的值为 5.0

pow(double a, double b)

  • 功能:返回 a 的 b 次幂。
  • 示例
double base = 2.0;
double exponent = 3.0;
double result = Math.pow(base, exponent); // result 的值为 8.0 (2的3次方)

max(double a, double b)

  • 功能:返回 a 和 b 中的较大值。
  • 示例:
double m = 10.5;
double n = 8.0;
double maxVal = Math.max(m, n); // maxVal 的值为 10.5

min(double a, double b)

  • 功能:返回 a 和 b 中的较小值。
  • 示例
double p = -3.0;
double q = 0.5;
double minVal = Math.min(p, q); // minVal 的值为 -3.0

random()

  • 功能:返回一个大于等于 0.0 且小于 1.0 的随机 double 类型的数。
  • 示例
double rand = Math.random(); // rand 的值为 0.0 到 1.0 之间的随机数

long round(double a)

  • 功能:将 double 类型的参数 a 四舍五入为 long 类型。
  • 示例:
double num = 10.6;
long roundedNum = Math.round(num); // roundedNum 的值为 11

Random类

     首先要创建Random对象   //Random  random = new Random();

     random.nextBoolean=====> 随机返回一个布尔值

     random. nextInt()       //随机返回一个int类型的数

     random. nextInt(int n)  // 随机返回一个超过n的int数

import java.util.Random;public class RandomExample {public static void main(String[] args) {Random random = new Random();// 生成随机布尔值boolean randomBoolean = random.nextBoolean();System.out.println("Random Boolean: " + randomBoolean);// 生成随机整数int randomInt = random.nextInt();System.out.println("Random Integer: " + randomInt);// 生成指定范围内的随机整数int n = 100; // 指定范围int randomIntInRange = random.nextInt(n);System.out.println("Random Integer within range [0, " + n + "): " + randomIntInRange);}
}

运行结果

Random Boolean: true
Random Integer: 123456789
Random Integer within range [0, 100): 42

Date类

使用Date类代表当前系统时间

Date d = new Date();

Date d = new Date(long d);

 d.getTime()   获取1970.1.1 0.0.0  至程序运行时刻的毫秒值

lomg d是一个时间戳  将指定的long类型的时间戳构造出一个对象 

作者建议:学习知识在于深度理解,多动手、多动脑,总能更快地领悟。不要仅仅停留在阅读代码的层面,亲自动手敲打一遍,会带来更丰富的收获。通过实践,我们能够更深入地理解知识,掌握技能,并且在解决问题时更加得心应手。相信自己的能力,坚持不懈地实践,你将会取得更大的进步和成就。让学习成为一种习惯,让动手实践成为你提升的捷径,加油!你是最棒的!

相关文章:

Java--常用类APl(复习总结)

前言: Java是一种强大而灵活的编程语言,具有广泛的应用范围,从桌面应用程序到企业级应用程序都能够使用Java进行开发。在Java的编程过程中,使用标准类库是非常重要的,因为标准类库提供了丰富的类和API,可以简化开发过…...

【股指期权投教】一手股指期权大概多少钱?

一手股指期权的权利金大概在几千人民币左右,如果是作为期权卖方还需要另外缴纳保证金的。国内的股指期权有三种,沪深300、上证50、中证1000股指期权,每点合约人民币100 元。 期权合约的价值计算可以通过此公式得出:权利金的支付或…...

mmap()函数和munmap()函数的例子

代码&#xff1a; #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/mman.h> #include <string.h> #include <stdio.h> #include <unistd.h>#define FILELENGTH 80 int main(void) {int fd-1;char …...

计算神经网络中梯度的核心机制 - 反向传播(backpropagation)算法(1)

计算神经网络中梯度的核心机制 - 反向传播&#xff08;backpropagation&#xff09;算法&#xff08;1&#xff09; flyfish 链式法则在深度学习中的主要应用是在反向传播&#xff08;backpropagation&#xff09;算法中。 从简单的开始 &#xff0c;文本说的就是链式法则 R …...

VUE实现简易购物车

主要是对基础的指令的使用&#xff0c;直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">&l…...

混沌工程——从捣乱的视角看系统稳定性

概念 混沌工程是通过捣乱实验探究系统稳定性的实践过程&#xff0c;其作战武器是风险因子&#xff0c;即在健康的运行环境中引入风险变量来验证系统对风险的抵抗能力&#xff0c;它的作用是推动系统容错能力建设、验证监控告警及时性、提升研发问题排查能力。 混沌工程的工作…...

Windows宝塔面板部署ThinkPHP8.0创建Vue项目案例

安装ThinkPHP8.0 登录宝塔面板&#xff0c;创建一个站点。 输入composer代码&#xff0c;执行完成后自动创建TP目录 composer create-project topthink/think tp 网站目录设置为tp&#xff0c;运行目录设置为public 设置PHP版本为8.0以上&#xff0c;不然会出现下面的报错代…...

5G频段简介

5G频段 5G网络一共有29个频段&#xff0c;主要被分为两个频谱范围&#xff0c;其中6GHz以下的频段共有26个&#xff08;统称为Sub6GHz&#xff09;&#xff0c;毫米波频段有3个。目前国内主要使用的是Sub6GHz&#xff0c;包括n1/n3/n28/n41/n77/n78/n79共7个频段。具体介绍如下…...

【python学习】bytearray 数组

在Python中&#xff0c;bytearray 是一个可变序列&#xff0c;用于表示一个字节数组。与不可变的 bytes 类型相比&#xff0c;bytearray 允许你修改其内容。你可以通过索引来访问和修改 bytearray 中的元素&#xff0c;也可以添加或删除元素。 使用 bytearray 的一些示例&…...

Labview_Occurrencel(事件发生)

PS&#xff1a;这里遇到 一个很Low的事情&#xff1a; 在停止第二个while循环的时候出现了停止不了的情况。因为等待事件发生设置的超时时间为:-1。所以等事件发生后出现了条件接线端已经执行的情况&#xff0c;所以当下次事件发生时未能及时停止。初版的停止设置如下图&#x…...

天气网站爬虫及可视化

摘要&#xff1a;随着互联网的快速发展&#xff0c;人们对天气信息的需求也越来越高。本论文基于Python语言&#xff0c;设计并实现了一个天气网站爬虫及可视化系统。该系统通过网络爬虫技术从多个天气网站上获取实时的天气数据&#xff0c;并将数据进行清洗和存储。同时&#…...

【python - 数据】

一、序列 序列&#xff08;sequence&#xff09;是一组有顺序的值的集合&#xff0c;是计算机科学中的一个强大且基本的抽象概念。序列并不是特定内置类型或抽象数据表示的实例&#xff0c;而是一个包含不同类型数据间共享行为的集合。也就是说&#xff0c;序列有很多种类&…...

几种热管的构造

1、超薄热管构造形式 在实际应用中&#xff0c;超薄热管通常定义为厚度小于2.0mm的平板热管。超薄热管很薄&#xff0c;可紧贴电子元件表面散热&#xff0c;故被广泛应用于移动和可携带电子设备&#xff0c;如智能手机、笔记本电脑和智能手表。用于笔记本电脑和平板电脑的超薄…...

【GitOps】使用Google工具JIB实现本地无需安装容器推送镜像,加速SpringCloud项目开发

文章目录 一、效果展示二、简介三、安装Jib插件1、区分环境2、安装插件一、效果展示 本地是window系统,无docker环境,没有任何runtime,使用jib工具打包镜像并推送完成,用时20秒 二、简介 Jib 是 Google 开发的一款开源工具,旨在帮助 Java 开发者更高效地将 Java 应用程…...

【proteus经典实战】16X192点阵程序

一、简介 6X192点阵程序通常用于表示高分辨率图像或文字&#xff0c;其中16X表示像素阵列的宽度&#xff0c;192表示每个像素阵列中的点阵数&#xff0c;16X192点阵程序需要一定的编程知识和技能才能编写和调试&#xff0c;同时还需要考虑硬件设备的兼容性和性能等因素。 初始…...

小白上手AIGC-基于FC部署stable-diffusion

AIGC AIGC&#xff08;人工智能创造内容&#xff09;作为一种基于人工智能技术生成内容的新型创作模式。打破了过去大家对于AI的理解都是说只能涉足部分领域而无法涉足艺术或者是其他的创作领域的定律&#xff0c;现在的AIGC也能够创作内容了&#xff0c;而不再只是单纯的返回…...

一些指标的学习

1.平均倒数排名&#xff08;MRR&#xff09; 1.定义 MRR 是衡量检索系统返回的结果列表中第一个相关结果位置的指标。具体来说&#xff0c;它是所有查询倒数排名的平均值。 2.计算步骤 对每个查询&#xff0c;找到第一个正确答案在结果列表中的排名 &#x1d445;&#x1d44…...

dledger原理源码分析系列(三)-选主

简介 dledger是openmessaging的一个组件&#xff0c; raft算法实现&#xff0c;用于分布式日志&#xff0c;本系列分析dledger如何实现raft概念&#xff0c;以及dledger在rocketmq的应用 本系列使用dledger v0.40 本文分析dledger的选主 关键词 Raft Openmessaging 心跳/选…...

如何修改PDF文档的作者名称?

要修改一个 PDF 文档的作者名称&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. **使用 Adobe Acrobat**&#xff08;如果有&#xff09;&#xff1a; - Adobe Acrobat 是一个功能强大的 PDF 编辑工具&#xff0c;支持修改文档属性信息&#xff0c;包括作者名称。打开…...

从笔灵到AI去痕:全方位提升内容创作与学术诚信

内容为王&#xff0c;在内容创作的世界中尤为重要。然而&#xff0c;面对写作时常常感到无从下手&#xff1a;有时缺乏灵感&#xff0c;有时难以表达清楚自己的想法。AI写作助手的出现&#xff0c;为这些问题提供了创新的解决方案&#xff0c;极大地改变了内容创作的过程。 今…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程&#xff08;限时至2025/5/15&#xff09; Oracle AI Vector Search 1Z0-184-25考试&#xff0c;都顺利拿到certified了没。 各行各业的AI 大模型的到来&#xff0c;传统的数据库中的SQL还能不能打&#xff0c;结构化和非结构的话数据如何和…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

OCR MLLM Evaluation

为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...

MySQL体系架构解析(三):MySQL目录与启动配置全解析

MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录&#xff0c;这个目录下存放着许多可执行文件。与其他系统的可执行文件类似&#xff0c;这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中&#xff0c;用…...