当前位置: 首页 > 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;极大地改变了内容创作的过程。 今…...

考试如果出现汉诺塔问题怎么办?

对于这道题来说 就按照测试案例里的数字进行输入 测试案例用100 那这三只鸡的具体最多能有多少只鸡呢&#xff1f; 用总数除以这只鸡的单价>>>>>>>即为这只鸡最多有 >>>>>>>> n / 单价 修改后 >>>>> 不只适…...

导出word模板开发记录

exportWordDocx.js import JSZipUtils from “jszip-utils” import Docxtemplater from “docxtemplater” import {saveAs} from “file-saver” import PizZip from “pizzip” const exportWordDocx (demoUrl, docxData, fileName) > {// 读取并获得模板文件的二进制…...

PHP爬虫类的并发与多线程处理技巧

PHP爬虫类的并发与多线程处理技巧 引言&#xff1a; 随着互联网的快速发展&#xff0c;大量的数据信息存储在各种网站上&#xff0c;获取这些数据已经成为很多业务场景下的需求。而爬虫作为一种自动化获取网络信息的工具&#xff0c;被广泛应用于数据采集、搜索引擎、舆情分析…...

用Python将PowerPoint演示文稿转换到图片和SVG

PowerPoint演示文稿作为展示创意、分享知识和表达观点的重要工具&#xff0c;被广泛应用于教育、商务汇报及个人项目展示等领域。然而&#xff0c;面对不同的分享场景与接收者需求&#xff0c;有时需要我们将PPT内容以图片形式保存与传播。这样能够避免软件兼容性的限制&#x…...

机电公司管理小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;管理员管理&#xff0c;客户管理&#xff0c;公告管理&#xff0c;考勤管理&#xff0c;请假管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;公告&#xff0c;机电零件&…...

SQL中的子查询和CTE(with ....as..)

第一次看到with as 这种类似于python中读文件的写法还是挺疑惑的&#xff0c;其实它是CTE&#xff0c;功能和子查询很类似但又有不同点&#xff0c;在实际应用场景中具有着独特作用。 子查询 子查询是在主查询中的嵌套查询&#xff0c;可以出现在SELECT、FROM、WHERE等子句中…...

Cesium 基本概念:创建实体和相机控制

基本概念 Entity // 创建一个实体 const entity_1 viewer.entities.add({position: new Cesium.Cartesian3(0, 0, 10000000),point: {pixelSize: 10,color: Cesium.Color.BLUE} });// 通过经纬度创建实体 const position Cesium.Cartesian3.fromDegrees(180.0, 0.0); // 创…...

vue使用scrollreveal和animejs实现页面滑动到指定位置后再开始执行动画效果

效果图 效果链接&#xff1a;http://website.livequeen.top 介绍 一、Scrollreveal ScrollReveal 是一个 JavaScript 库&#xff0c;用于在元素进入/离开视口时轻松实现动画效果。 ScrollReveal 官网链接&#xff1a;ScrollReveal 二、animejs animejs是一个好用的动画库…...

在Ubuntu 16.04上安装和配置GitLab的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 GitLab CE&#xff08;Community Edition&#xff09;是一个开源应用程序&#xff0c;主要用于托管 Git 仓库&#xff0c;并提供额…...

STM32的SPI通信

1 SPI协议简介 SPI&#xff08;Serial Peripheral Interface&#xff09;协议是由摩托罗拉公司提出的通信协议&#xff0c;即串行外围设备接口&#xff0c;是一种高速全双工的通信总线。它被广泛地使用在ADC、LCD等设备与MCU间&#xff0c;使用于对通信速率要求较高的场合。 …...

机器学习引领教育革命:智能教育的新时代

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f4d2;1. 引言&#x1f4d9;2. 机器学习在教育中的应用&#x1f31e;个性化学习&#x1f319;评估与反馈的智能化⭐教学资源的优…...

6月29日,每日信息差

第一、位于四川省绵阳市的中广核质子治疗装备制造基地正式通过竣工验收&#xff0c;为全球装机数量和治疗患者数量最多的国际领先质子治疗系统全面国产化奠定了坚实基础。质子治疗作为目前全球最尖端的肿瘤放射治疗技术之一&#xff0c;与传统放疗技术相比&#xff0c;质子治疗…...

SpringCloud中复制模块然后粘贴,文件图标缺少蓝色方块

再maven中点击&#xff0b;号&#xff0c;把当前pom文件交给maven管理即可...

JS乌龟吃鸡游戏

代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>乌龟游戏</title><script type"text/javascript">function move(obj){//乌龟图片高度var wuGui_height 67;…...

第十节:学习ConfigurationProperties类来配置pojo实体类参数(自学Spring boot 3.x的第二天)

大家好&#xff0c;我是网创有方 。这节记录下如何使用ConfigurationProperties来实现自动注入配置值。。实现将配置文件里的application.properties的参数赋值给实体类并且打印出来。 第一步&#xff1a;新建一个实体类WechatConfig package cn.wcyf.wcai.config;import org…...

如何学习Node.js

Node.js是一个开源、跨平台的JavaScript运行环境&#xff0c;它允许你在服务器端使用JavaScript。以下是一些步骤和资源&#xff0c;可以帮助你开始学习Node.js&#xff1a; ### 1. 基础知识 首先&#xff0c;确保你熟悉JavaScript语言的基础。Node.js是基于JavaScript的&…...

云计算基础知识

前言&#xff1a; 随着ICT技术的高速发展&#xff0c;企业架构对计算、存储、网络资源的需求更高&#xff0c;急需一种新的架构来承载业务&#xff0c;以获得持续&#xff0c;高速&#xff0c;高效的发展&#xff0c;云计算应运而生。 云计算背景 信息大爆炸时代&#xff1a…...

基于单片机光纤测距系统的设计与实现

摘要 &#xff1a; 光纤由于其频带宽 、 损耗低及抗干扰能力强等优点已被广泛地应用在通信 、 电子及电力方面 &#xff0c; 是我们生产生活中必不可少的媒介。 在实际的光纤实验 、 安装 、 运营和维护工作中 &#xff0c; 一种精准 、 轻便和易操作的光纤测距系统显得尤为重…...

python项目实战——人生重开模拟器

文章目录 1.菜单栏的编写2.玩家确定颜值、体质、智力、家境3.生成性别4.设定角色出生点5.各个年龄段的变化5.1 幼年阶段5.2 青年阶段5.3中年阶段5.4 晚年阶段 6.整体代码 人生重开模拟器是一款文字类小游戏. 玩家可根据提示输入角色的初始属性之后, 就可以开启不同的人生经历. …...

小时候的子弹击中了现在的我-hive进阶:案例解析(第18天)

系列文章目录 一、Hive表操作 二、数据导入和导出 三、分区表 四、官方文档&#xff08;了解&#xff09; 五、分桶表&#xff08;熟悉&#xff09; 六、复杂类型&#xff08;熟悉&#xff09; 七、Hive乱码解决&#xff08;操作。可以不做&#xff0c;不影响&#xff09; 八、…...

电影票房预测管理系统设计

电影票房预测管理系统的开发涉及多个层面的设计&#xff0c;包括但不限于数据收集、数据分析、预测模型构建、用户界面设计和系统集成。以下是一个基本的系统设计框架&#xff1a; 1. 数据收集模块&#xff1a;这是整个系统的基础。需要收集的数据可能包括历史票房数据、上映电…...

正则表达式与Pyhton

一、正则表达式的规则 1、支持普通字符匹配 2、元字符&#xff0c;一个符号匹配一堆字符 \d 匹配数字 \w 匹配数字、字母、下划线 \D \d的取反&#xff0c;除了数字全部匹配 \W \w的取反 [abc] 匹配字母a、b、c [^abc] [abc]的取反&#xf…...

Transformer常见面试题

目录 1.Transformer为何使用多头注意力机制&#xff1f;&#xff08;为什么不使用一个头&#xff09; 2.Transformer为什么Q和K使用不同的权重矩阵生成&#xff0c;为何不能使用同一个值进行自身的点乘&#xff1f; &#xff08;注意和第一个问题的区别&#xff09; 3.Transf…...

Linux——vim的配置文件+异常处理

vim的配置文件&#xff1a; [rootserver ~]# vim /etc/vimrc # 输入以下内容 set nu # 永久设置行号 shell [rootserver ~]# vim /etc/vimrc 或者 vim ~/.vimrc set hlsearch "高亮度反白 set backspace2 "可随时用退格键删除 set autoindent…...

node mySql 实现数据的导入导出,以及导入批量插入的sql语句

node 实现导出, 在导出excel中包含图片&#xff08;附件&#xff09; node 实现导出, 在导出excel中包含图片&#xff08;附件&#xff09;-CSDN博客https://blog.csdn.net/snows_l/article/details/139999392?spm1001.2014.3001.5502 一、效果 如图&#xff1a; 二、导入 …...

Webpack: 底层配置逻辑

概述 Webpack 5 提供了非常强大、灵活的模块打包功能&#xff0c;配合其成熟生态下数量庞大的插件、Loader 资源&#xff0c;已经能够满足大多数前端项目的工程化需求&#xff0c;但代价则是日益复杂、晦涩的使用方法&#xff0c;开发者通常需要根据项目环境、资源类型、编译目…...

数字图像处理期末复习题1

个人名片&#xff1a; &#x1f393;作者简介&#xff1a;嵌入式领域优质创作者&#x1f310;个人主页&#xff1a;妄北y &#x1f4de;个人QQ&#xff1a;2061314755 &#x1f48c;个人邮箱&#xff1a;[mailto:2061314755qq.com] &#x1f4f1;个人微信&#xff1a;Vir2025WB…...

poi-tl 生成 word 文件(插入文字、图片、表格、图表)

文章说明 本篇文章主要通过代码案例的方式&#xff0c;展示 poi-tl 生成 docx 文件的一些常用操作&#xff0c;主要涵盖以下内容 &#xff1a; 插入文本字符&#xff08;含样式、超链接&#xff09;插入图片插入表格引入标签&#xff08;通过可选文字的方式&#xff0c;这种方…...

centos上部署Ollama平台,实现语言大模型本地部署

网上有很多大模型&#xff0c;很多都是远程在线调用ChatGPT的api来实现的&#xff0c;自己本地是没有大模型的&#xff0c;这里和大家分享一个大模型平台&#xff0c;可以实现本地快速部署大模型。 Ollama是一个开源项目&#xff0c;它提供了一个平台和工具集&#xff0c;用于部…...

Java学习 - Redis Redigo简单介绍

Redigo 驱动下载 go get github.com/garyburd/redigo/redis获取redis服务器连接 c, err : redis.Dial("tcp", "127.0.0.1:6379")if err ! nil {panic(err) }defer c.Close()命令使用 v, err : c.Do("SET","hello","world&quo…...

作业7.2

用结构体数组以及函数完成: 录入你要增加的几个学生&#xff0c;之后输出所有的学生信息 删除你要删除的第几个学生&#xff0c;并打印所有的学生信息 修改你要修改的第几个学生&#xff0c;并打印所有的学生信息 查找你要查找的第几个学生&#xff0c;并打印该的学生信息 1 /*…...

Nosql期末复习

mongodb基本常用命令&#xff08;只要掌握所有实验内容就没问题&#xff09; 上机必考&#xff0c;笔试试卷可能考&#xff1a; 1.1 数据库的操作 1.1.1 选择和创建数据库 &#xff08;1&#xff09;use dbname 如果数据库不存在则自动创建&#xff0c;例如&#xff0c;以下…...

域名可用性查询的步骤

在互联网时代&#xff0c;拥有一个独特的域名是至关重要的。域名不仅代表了您的在线身份&#xff0c;也是您品牌、个人或企业在数字世界中的门面。域名的可用性查询是注册域名前的关键步骤&#xff0c;本文将详细介绍如何进行域名可用性查询&#xff0c;并提供一些有用的技巧和…...

YonBIP 获取项目代码配置(图文)

项目开发文件在本地环境重新部署后&#xff0c;开发端机器需要重新部署&#xff0c;在此记录一下操作过程。 1. 新建项目目录&#xff0c;在目录下点鼠标右键&#xff0c;选 Git Bash Here 2. 开始下载代码&#xff0c;根据代码量多少&#xff0c;几分钟就能下载完成。 3. 下载…...

【TensorFlow深度学习】大模型参数与算力资源匹配:深度探索与实践

大模型参数与算力资源匹配&#xff1a;深度探索与实践 一、引言二、大模型参数规模的影响因素2.1 参数量与模型能力2.2 算法与架构创新 三、算力资源的构成与评估3.1 算力资源类型3.2 资源评估指标 四、大模型参数与算力资源匹配策略4.1 模型分层与并行计算4.2 自适应资源调度4…...

图论·搜索最短路径

例题地址 搜索最短路径 在网格图中按照特定路线搜索&#xff0c;搜索方式基于bfs/dfs需要搜索出一条源点与终点最短的路径 核心思路 无启发式函数&#xff1a;bfs/dfs有启发式函数&#xff1a;dijsktra算法,A*(Astar)… 个人理解 启发式函数&#xff1a;相当于根据点的权…...

六一,乳山五村迎来一群小记者……

6月1日,“儿童友好、生物友好——乳山五村大自然保护植物与艺术体验”活动在上海的乳山五村举行。现场,在上房园林植物研究所专家和青年艺术家的带领下,《少年日报》小记者团60余位小记者和乳山五村等小区少儿朋友观察了原生植物,并参与墙绘活动。当天,上房园林植物研究所…...

全新家族设计,轻混/插混/纯电可选,全新标致5008发布

3月20日,全新标致5008家族正式发布。新车基于STLA Medium平台打造,计划于秋季在欧洲发售,后续有望引入国产。全新5008依旧延续了中型三排座SUV的定位,空间布局则更接近欧式MPV,显然是主打多孩家庭群体。外观方面,全新5008车身前2/3部分设计几乎和全新3008如出一辙,很难说…...

C# 元组 Tuple

C# 元组 Tuple 元组创建元组访问元组元素命名元组元素元组的类型使用元组作为方法返回值 解构解构元组的基本用法解构部分元组解构方法 元组 在C#中&#xff0c;元组&#xff08;Tuple&#xff09;是一种数据结构&#xff0c;它允许你将多个值组合成一个单一的对象。 元组在处…...

电压、电流、功率

//**********************************************************************************// 380V电压 额定功率1.732*额定电压*额定电流*功率因素 220V电压 额定功率额定电压*额定电流*功率因素 单相&#xff0c;功率1KW&#xff0c;电流约4.5A。 三相&#xff0c;功率1KW…...

【Unity】Unity项目转抖音小游戏(三)资源分包,抖音云CDN

业务需求&#xff0c;开始接触一下抖音小游戏相关的内容&#xff0c;开发过程中记录一下流程。 使用资源分包可以优化游戏启动速度&#xff0c;是抖音小游戏推荐的一种方式&#xff0c;抖音云也提供存放资源的CDN服务 抖音云官方文档&#xff1a;https://developer.open-douyi…...

vue3(一):Vue3简介、创建vue3工程、Vue3中的响应式

目录 一.Vue3简介 1.性能提升 2.源码升级 3.拥抱ts 4.新特性 &#xff08;1&#xff09;Composition API&#xff08;组合API&#xff09;&#xff1a; &#xff08;2&#xff09;新的内置组件&#xff1a; &#xff08;3&#xff09;其他改变&#xff1a; 二.创建vue…...