zzz‘sJava知识点概括总结

类型转化

字符串:c语言:char  Java:string

表达式值的类型由最高类型决定:

取值范围:byte<short<int<long<float<double(且运算时byte和short都是转化为int类型进行计算防止数据溢出)

强制转换数据类型:大范围的赋值给小范围(但可能会导致数据丢失溢出,如浮点型转为整型会直接丢掉小数,保留整数)

运算符:

逻辑运算符

&&(短路与)从左边开始运行,如果左边false,则右边不运行

||(短路或)从左边开始运行,如果左边true,则右边不运行

&&优先级高于||

&或者|左右都要执行

算术运算符

当字符+字符或者字符+数字时会先把字符通过ASCII码表查询到对应的数字再进行计算

赋值运算符:底层下都隐藏了一个强制类型转换

三元运算符

条件表达式b?x:y;,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。

拓展:

case穿透:语句体中未写break导致

流程跳转语句:

break:在switch中结束case条件判断,在循环体中结束循环

continue:作用在循环体中,结束循环体的本次循环,从而进入下次循环

多个数组变量对应同一个地址:

数组1的地址被赋给数组2,则两数组的地址是相同的

代码块:

局部代码块:节省内存空间

构造代码块:写在成员位置,可以把多个构造方法中重复的代码抽取出来。创建本类对象的时候会先执行构造代码块再执行构造代码。

静态代码块:随着类的加载而加载,并且只执行一次。

数组:

地址值:

D:表示当前数组内元素是double类型的

索引

=>下标,从0开始

最大索引:数组长度-1

把数据存储到数组中,一旦覆盖之后,原来的数据就不存在了

数组的遍历:

是取出数据的过程,遍历≠打印

数组的长度属性:

数组名.length

数据类型的默认初始值:

1.整数类型:0         2.小数类型:0.0

3.字符类型:空格    4.布尔类型:false

5.引用数据类型:null

动/静态初始化:

动态初始化:明确元素个数

静态初始化:明确具体元素内容

随机数读入:

打乱数组:

二维数组:

二维数组的length属性:

public class ArrayTest4 {public static void main(String[] args) {int[][] a ={{1,2,3},{10,20,30,40,50},{6,7,8,9},{0}};System.out.println(a.length);//指二维数组中有几个大括号//输出4System.out.println(a[0].length);//指{1,2,3}的长度//输出3}
}

二维数组的元素访问:

a[二维数组中的一维数组的下标][一维数组的小标]

a[0][0]:表示第一个一维数组中的一个一维元素。

遍历:

public class ArrayTest5 {public static void main(String[] args) {String[][] array = {{"java","oracle","c++","python","c#"},{"张三","李四","王五"},{"lucy","jack","rose"}};for (int i = 0; i < array.length; i++){for (int j = 0 ; j < array[i].length ; j++){System.out.print(array[i][j] + " ");}System.out.println("");}}
}

方法:

类似于c语言的函数

注意:Java中没有指针,但是改变数组数据时是对地址中数据改变(类似于指针操作,但仅限于数组中)称之为引用传递。

方法重载:

数组遍历:

方法的内存分配:

数据类型:

基本数据类型:变量里面存储的是真实数据

引用数据类型:例如数组,new出来的类型

                         变量里面存储的是地址值

                         引用:使用了其他空间的数据。

方法的值传递:

方法引用:

静态方法内不存在this和super

示例:
把字符串改为大写:
方法1.内部类

方法2.方法引用:

引用数组的构造方法就是为了构建一个数组。

泛型当中不能写基本数据类型。

数组的类型需要跟流中的数据类型保持一致,也就是说一开始是什么类型的容器去储存数组后面也要是什么类型的容器。

面向对象:

类似于c语言的结构体,但具有储存方法,可以直接调用方法

初始化:

public class 类名{1.变量,用来说明对象可以处理什么数据2.方法,描述对象有什么功能,可以对数据进行什么样的处理。...
}

关键字:
private关键字:权限修饰符

被private修饰后需要在本类中进行编写set和get类型函数,才能在其他类中进行输入输出内容

set方法:给成员变量赋值

get方法:对外提供成员变量的值

this关键字:

作用:区别局部变量和成员变量

本质:所在方法调用者的地址值

就近原则

static关键字:

静态方法不能调用非静态

非静态可以访问所有

final关键字:
最终的,不能被改变

final定义的父方法不能被子类重写。

final定义的变量叫常量,常量只能被赋值一次。

常量记录的数据不能发生改变。

字符串不可变。

权限修饰符:

变量:

局部变量:定义在方法里面

成员变量:类中的变量

JavaBean类:

对象内存图:

String函数:

快捷函数

类如:

比较字符:

String str = "smart";String str1 = "scarf";System.out.println(str.equals(str1));System.out.println(str.equalsIgnoreCase(str1));

相同返回true,不同返回false

截取字符串:

 String s3 = "java is the best";String rs=s3.substring(0,8);System.out.println(rs);

上述例子中0,8表示从开头开始截取八位字符(一个空格占两个字符空间)

克隆
分为浅克隆和深克隆

浅克隆:拷贝出的新对象,与原对象中的数据一模一样(引用类型拷贝的是地址)

深克隆:

StringBuilder:

使用场景:1.字符串的拼接,2.字符串的反转。

示例:

容量:能存储的

长度:实际存储的

StringJoiner:

不用,那个位置就不写

例如,只需间隔符号:(---);那么每个字符间就会多一个---间隔

只需间隔和开始:(---,[);

注意:添加只能添加字符串,不能添加整数。

字符串原理:

 

API:

Math类常用方法:

正则表达式:

System工具类:

存在时间差:我们国家时间原点为:00:08:00

Runtime:

表示当前虚拟机的运行环境

Object和Objects:

object:Java中的顶级父类,所有的类都直接或者间接的继承它

object中的成员方法

toString方法返回的是地址值

objects成员方法

BigInteger

大的整数

整数四种类型:byte(1个字节),short(2个字节),int(4个字节),long(8个字节)。

二进制第一位是符号位:0表示正数,1表示负数。

字符串中必须是整数,否则会报错。

字符串中数字必须跟进制吻合。

valueOf方法的能表示范围比较小,只能在long的取值范围内。在内部对-16—16进行了优化,提前把-16—16先创建好BigInteger的对象,如果多次获取不会重新创建新的对象。

成员方法:

BigDecimal

大的小数。

用于小数的精确计算,也可以用来表示很大的小数。

链式编程:

在调用一个方法的时候,不需要用变量去接受它的结果,可以继续调用其他方法。

集合的使用Arraylist:

示例:

导入数据:

插入数据:

根据索引获取某个地方的值:

获取集合的大小,内含数据的个数:

根据索引删除某个位置的元素值:

直接删除某个元素值,成功返回true,反之false

修改集合中某个位置的数据值:

Arraylist集合:

底层原理:

右移运算符:

双列集合:Map

Map的遍历方式:

1.键找值:

import java.util.*;
public class test {public static void main(String[] args) {Map<String,String>map=new HashMap<>();//第一个string是键的类型,第二个string是值的类型map.put("1","1");map.put("2","2");map.put("3","3");Set<String>keys=map.keySet();for(String key:keys){//key是键,value是值String value=map.get(key);System.out.println(key+"="+value);}}
}

2.键值对:
entry:键值对对象

entry:键值对对象

3.Lambda表达式:

import java.util.*;
import java.util.function.BiConsumer;
public class test {public static void main(String[] args) {Map<String,String>map=new HashMap<>();//第一个string是键的类型,第二个string是值的类型map.put("1","1");map.put("2","2");map.put("3","3");/* map.forEach(new BiConsumer<String,String>(){@Overridepublic void accept(String key,String value){System.out.println(key+"="+value);}});*///lambda表达式map.forEach((key,value)->System.out.println(key+"="+value));}
}

Hashmap:

特点:

LinkHashmap:

import java.util.*;
import java.util.function.BiConsumer;
public class test {public static void main(String[] args) {LinkedHashMap<String,Integer> lhm=new LinkedHashMap<>();lhm.put("java",100);//put方法有两个功能,一个添加,一个覆盖。lhm.put("python",90);lhm.put("c++",80);System.out.println(lhm);}
}

Treemap:

集合工具类Collections:

只能给单列集合进行批量添加元素。

获取随机数:

import java.util.*;
public class test {public static void main(String[] args) {ArrayList<Integer>list=new ArrayList<>();Collections.addAll(list,1,2,3,4,5,6,7,8,9,10);Collections.shuffle(list);Random r=new Random();int index=r.nextInt(list.size());int number=list.get(index);System.out.println(number);}
}

不可变集合:

不可以被修改的集合(长度、内容不可变)

一旦创建完毕后,只能进行查询操作。

参数不能相同

方法为ofEntries方法。

正则表达式:

作用:

校验字符串是否满足规则

在一段文本中查找满足要求的内容

爬虫:

分为本地爬虫和网络爬虫

两个特殊类

包装类:

把数据包装成对象

(泛型不制裁基本类型数据,只能支持引用类型数据)

基本数据类型对应的包装类(引用数据类型)
byteByte
shortShort
intInteger
long                Long
charCharacter
floatFloat
double        Double
booleanBoolean

继承:

爸爸:父类

儿子:子类

父类有的子类都具有,所以子类中只需创造它特有的就行,子类需要用的时候可以直接在父类里面调用。

继承特点:Java只支持单继承,不支持多继承,但支持多层继承。

单继承:一个子类只能继承一个父类,子类不能同时继承多个父类。

多层继承:子类A继承父类B,父类B可以继承父类C。AC关系为间接父类。AB为直接父类。

每一个类都直接或间接的继承于Object。Object类Java虚拟机内本身就存在的。

书写代码:从父类开始写

子类只能访问父类中非私有的成员//私有:private

如果一个类中没有构造方法,虚拟机会自动添加一个空参构造

继承过程中
成员变量访问特点:就近原则,谁近用谁

虚方法表:非private,非static,非final。

方法重写的本质:如果发生了重写,则会覆盖。

只有被添加到虚方法表中的方法才能被重写。

不能被继承,就不能被重写。

继承中构造方法的访问特点

继承中运用的关键字this,super:

super中调用的是父类的成员变量。

this是调用的子类的成员变量。

多态:

同类型的对象表现出的不同形态

多态调用成员的特点:
调用时变量是父类的,方法是子类的

在Java中加载字节码文件时永远先加载父类,再加载子类。

包:

就是文件夹,用来管理各种不同功能的Java类,方便后期代码维护。

包名+类名:全类名/全限定名

使用其他类的规则:使用其他类时,需要使用全类名。

抽象类和抽象方法:

注意事项、特点

  • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类。
  • 类该有的成员(成员变量、方法、构造器)抽象类都可以有。
  • 抽象类最主要的特点:抽象类不能创建对象,仅作为一种特殊的父类,让子类继承并实现。
  • 一个类继承抽象类,必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类。
  • 抽象类不能创造对象
  • 没有方法体的方法是抽象方法,抽象方法所在的类必须是抽象类

接口:

一种规则,对行为的抽象

接口中成员的特点:

多个接口中同名且同参的方法,只需重写一次。而同名不同参的视为两个不同的方法,都需要重写。

如果实现多个接口,需要重写所有的抽象方法。

接口中default关键字定义默认方法,默认方法重写时去掉default关键字。

static修饰静态方法,private修饰私有方法。

重写:子类把从父类继承下来的虚方法表里面的方法覆盖

类的五大成员:属性,方法,构造方法,代码块,内部类。

内部类:

在一个类的里面,再次定义一个类。

如果外部类想要访问内部类的成员,必须定义一个内部类成员对象。

成员内部类:

想要调用成员变量,只能通过对象去调用。

内部类里面外部类成员变量的调用。

示例

静态内部类:

静态方法只能访问静态变量。

局部内部类:

匿名内部类:

时间表达:

同一个经线上的时间是一致的。

利用空参构造创建的对象,默认表示当前时间

利用有参构造创建的对象,表示指定时间。

对象不能直接进行计算。

JDK7:Date类:

JDK7:SimpleDateFormat类:

JDK7:Calender类:

JDK8:

List系列集合:

特点:

特有方法:

示例代码:
 

import java.util.List;
import java.util.ArrayList;
public class test {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("aaa");list.add("bbb");list.add("ccc");System.out.println(list);//[aaa, bbb, ccc]list.add(1,"ddd");//1为想要插入的索引位置。//原来索引上的元素后移System.out.println(list);//[aaa, ddd, bbb, ccc]list.remove(1);System.out.println(list);//[aaa, bbb, ccc]}
}

list集合的五种遍历方式:

迭代器遍历:能删除元素

增强for遍历

Lambda表达式遍历

普通for循环遍历

列表迭代器遍历:能添加元素(list集合系列独有)

泛型类:

检擦数据类型:

Integer类型不能强转为String类型。

泛型的继承和通配符:

泛型不具备继承性,但数据具有继承性。

泛型内写什么类型,就只能传递什么类型的数据值。

泛型的通配符:?就是一个问号。

Set系列集合:

元素是唯一的。

HashSet:

哈希值:

如果没有重写hashcode方法和equals方法,那么哈希值是根据地址值计算的。

LinkedHashSet:

TreeSet底层为红黑树。

红黑树:两个红色节点不能相连。

可变参数:

细节:

1.在方法的形参中最多只能写一个可变参数。

2.在方法中,如果除了可变参数之外还有其他的参数,可变参数就写在最后。

public class test {public static void main(String[] args) {int sum=getSum(1,2,3,4,5,6,7,8,9,10);System.out.println(sum);}public static int getSum(int...arr){int sum=0;for(int i:arr){sum+=i;}return sum;}
}

Stream流:

import java.util.*;
import java.util.function.BiConsumer;
public class test {public static void main(String[] args) {ArrayList<String> list=new ArrayList<>();list.add("张婧仪");list.add("周雨彤");list.add("赵丽颖");list.add("张张");list.add("张凌赫");list.stream().filter(name->name.startsWith("张")).filter(name->name.length()==3).forEach(name->System.out.println(name));/*ArrayList<String> list1=new ArrayList<>();for(String name:list){if(name.startsWith("张")){list1.add(name);}}System.out.println(list1);ArrayList<String> list2=new ArrayList<>();for(String name:list1){if(name.length()==3){list2.add(name);}}System.out.println(list2);*/}
}

最长的那行代码等于注释掉的代码。

HashMap不能保证存和取的顺序的,只能保证内容不变。

异常:

File类:

常见构造方法:

成员方法:

length方法无法获取文件夹的大小。内存之间的进制为1024.

IO流:

存储和读取数字的解决方案。

分类:

四大家族:字节输入流  字节输出流  字符输入流  字符输出流

纯文本文件:用windows自带笔记本打开能读懂的文件

字节输出流:FileOutputStream

import java.io.FileOutputStream;
import java.io.IOException;
public class test {public static void main(String[] args) throws IOException {FileOutputStream fos=new FileOutputStream("src\\a.txt");String str="abc";byte[] arr=str.getBytes();fos.write(arr);String str2="\r\n";//换行符byte[] byte1=str2.getBytes();fos.write(byte1);String str3="def";byte[] byte2=str3.getBytes();fos.write(byte2);fos.close();//释放资源}
}

运行操作结果:

示例:

字节输入流·:FileInputStream

循环读取:

可以自行打印b,也可以强转为char类型打印

如果b中存有字符a,自行打印就为97(ascll码表对应数字),强转就打印a。

文件拷贝:

字节流读取中文会出现乱码。

字符集:

计算机存储英文,一个字节就足以。

汉字以两个字节存储。

在UTF—8的编码规则下,英文占一个字节,中文3个字节(且第一个字节的首位是1)。

存在乱码原因:读取数据时未读完整个汉字。

                         编码和解码方法不统一。

Java中解码和编码的方法:

字符流:

字符输入流FileReader:

idea默认是UTF—8

强转为char类型就行。

字符输出流FileWriter:

缓冲流:

拷贝文件操作:

将a.txt中的内容拷贝到b.txt中

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class test {public static void main(String[] args) throws IOException {BufferedInputStream bis=new BufferedInputStream (new FileInputStream("src\\a.txt"));BufferedOutputStream bos=new BufferedOutputStream (new FileOutputStream("src\\b.txt"));byte[] bytes=new byte[1024];int len;while((len=bis.read(bytes))!=-1){bos.write(bytes,0,len);}bos.close();bis.close();}
}

字节/字符缓冲流:

转换流:

是字符流和字节流之间的桥梁。

序列化流:

属于字节流,负责输出数据。与之对应的反序列化流,负责输入数据。

创建的对象要继承Serializable接口

反序列化流:

打印流:

只能进行输出

字节打印流:

特有方法可以实现数据的原样写出。

printf()方法中%s是字符串,%n是换行,%c可以把字符变成大写,%b是bool类型的占位符,%d是小数的占位符,

字符打印流:

输出语句就是一个打印流

解压缩流/压缩流:

Java中只能识别zip格式的压缩包。

Commons--io流工具包:

使用步骤:

常见方法:

Hutool工具包:

多线程:

并发与并行:

并发和并行是有可能都在发生的。

多线程的实现方式:

第一种:创建子类对象,调用start方法启动线程

第二种:

第三种:

第一种和第二种不可以获取到多线程结果,但第三种可以

常见成员方法:

1秒=1000毫秒

线程的默认优先级是5.

线程优先级范围为1—10.

线程执行具有随机性

同步代码块:

确保锁对象是唯一的。在锁对象前加一个static静态关键字。

同步方法:

StringBuilder和StringBuffer的区别:

两者大致相同,但StringBuilder用于多个线程是不安全的。

Lock锁:

阻塞队列实现等待唤醒机制:

阻塞队列实现了四个接口。

生产者和消费者必须使用同一个阻塞队列。

线程的状态:

线程池:

代码实现:

网络编程:

IPv6有2的128次方个ip

端口号:

协议:

UDP发送和接收消息:

UDP的三种通信方式:

单播:一对一,一个发送端对应一个接收端

创建DatagramSocket对象

组播:一个发送端对应一组接收端

一个组播地址可以表示多台电脑

发送端:

接收端:

广播:一个发送端可以给局域网中所有的电脑发送信息

可以在组播的代码基础上改变地址就变成了广播

TCP通信协议:

用IO流进行网络通信:客户端用输出流,服务端用输入流

host:ip,port:端口号

客户端和服务端的端口号需要保持一致。

运行代码时先运行服务端。

三次握手协议保证连接建立。

四次挥手协议保证断开连接,且数据已经处理完毕。

反射:

利用反射可以获取到类里面的所有信息

第一种最为常用,第二种一般更多的是当作参数进行传递,第三种当有了这个类的对象时才可以使用。

动态代理:

直接给代码进行修改属于侵入式修改

而动态代理是无侵入式进行修改。

 

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

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

相关文章

SONiC 之 Testbed(2)Ansible

Ansible 是一款由 Red Hat 主导开发的 开源自动化工具&#xff0c;专注于 配置管理、应用部署、任务编排和IT自动化。它基于 无代理&#xff08;Agentless&#xff09;架构&#xff0c;通过 SSH&#xff08;默认&#xff09;或 WinRM 协议与目标设备通信&#xff0c;无需在被控…

瑞芯微RK3568与君正X2600e平台Linux系统CS创世SD NAND应用全解析与驱动架构详解

前言 今天就瑞芯微平台和北京君正平台下的linux系统中关于CS创世 SD NAND的使用做一些经验的分享&#xff0c;如有不正&#xff0c;请批评指正&#xff1b; 采用的开发板是RK3568和x2600e&#xff0c;ubuntu版本是20.04&#xff0c;交叉编译工具链是aarch64-linux-gnu-和mips…

深入解析 Flink Function

RichFunctionFunction只是个标记接口public interface Function extends java.io.Serializable {}RichFunction 的核心语义是为用户定义的函数&#xff08;UDF&#xff09;提供生命周期管理和运行时上下文访问的能力。任何一个普通的 Flink Function 接口&#xff08;例如 MapF…

JMeter —— 压力测试

目录 常用的性能指标 一、吞吐量类指标 二、响应时间类指标 三、资源利用率指标 JMeter 一、JMeter 简介 二.下载安装JMeter&#xff1a; 三.如何使用JMeter&#xff1a; 压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。压测都是为了系统…

Transformer在哪⾥做了权重共享?

1、什么是权值共享权重共享是指在模型的不同层之间复⽤相同的参数。这可以减少模型的总体参数数量&#xff0c;并使得模型在训练时更容易学习。2、在Transformer中的应用常见的做法是共享词嵌入层&#xff08;embedding layer&#xff09;和输出层&#xff08;output layer&…

将 agents 连接到 Elasticsearch 使用模型上下文协议 - docker

我们在之前的文章 “将 agents 连接到 Elasticsearch 使用模型上下文协议” 及 “使用 MCP 将代理连接到 Elasticsearch 并对索引进行查询” 详述了如何使用 Elasticsearch MCP server 来和我们的 Elasticsearch 进行对话。细心的开发者可能已经注意到我们的 Elasticsearch MCP…

Shell 编程基础与实践要点梳理

目录 前言 一、认识 Shell 1.1 Shell 的定义与作用 1.2 Shell 解释器 二、Shell 脚本入门 2.1 编写 Shell 脚本 2.2 赋予执行权限与执行脚本 三、Shell 变量 3.1 变量定义与规则 3.2 变量使用与操作 3.3 变量类型 四、Shell 字符串 4.1 字符串定义方式 4.2 字符串…

Python自动化测试完整教程:pytest + selenium实战

目录 前言环境搭建pytest基础教程selenium基础教程pytest selenium实战项目页面对象模式(POM)测试报告生成持续集成配置最佳实践和进阶技巧总结 前言 自动化测试是现代软件开发中不可或缺的一环。Python作为一门简洁优雅的编程语言&#xff0c;配合pytest测试框架和seleniu…

APM 系列(一):Skywalking 与 Easyearch 集成

概述 SkyWalking 是一个开源的可观测性平台&#xff0c;用于收集、分析、聚合和可视化服务和云原生基础设施的数据。SkyWalking 提供了一种简单的方法&#xff0c;即使在云之间也能保持对分布式系统的清晰视图。它是一个现代的 APM&#xff0c;专门为云原生、基于容器的分布式…

使用 AD 帐户从 ASP.NET 8 容器登录 SQL Server 的 Kerberos Sidecar

我最近在做一个项目,需要将一个 ASP.NET 8 Web API 应用程序容器化,该应用程序需要与本地运行的 SQL Server 数据库进行通信。我们决定将 ASP.NET 8 容器定位到 Linux 系统,因此必须与运行在 Windows AD 域中的数据库进行通信。 问题 我们之前的设置是使用 IIS 在 Windows …

More Effective C++ 条款11:禁止异常流出析构函数之外

More Effective C 条款11&#xff1a;禁止异常流出析构函数之外核心思想 在C中&#xff0c;析构函数绝对不允许抛出异常。如果异常从析构函数中传播出去&#xff0c;可能会导致程序立即终止或未定义行为&#xff0c;特别是在栈展开过程中处理已有异常时。通过捕获并处理所有析构…

商超高峰客流统计误差↓75%!陌讯多模态融合算法在智慧零售的实战解析

原创声明&#xff1a;本文为原创技术解析&#xff0c;核心技术参数、架构设计及实战数据引用自 “陌讯技术白皮书”&#xff0c;技术方案与落地案例结合aishop.mosisson.com智慧零售数据联动场景展开&#xff0c;禁止未经授权的转载与商用。 一、行业痛点&#xff1a;智慧零售…

PyTorch实战(2)——使用PyTorch构建神经网络

PyTorch实战&#xff08;2&#xff09;——使用PyTorch构建神经网络0. 前言1. PyTorch 构建神经网络初体验1.1 使用 PyTorch 构建神经网络1.2 神经网络数据加载1.3 模型测试1.4 获取中间层的值2. 使用 Sequential 类构建神经网络3. PyTorch 模型的保存和加载3.1 模型保存所需组…

关于git的安装(windows)

1.git的介绍 Git 是一个分布式版本控制系统&#xff0c;由 Linus Torvalds 在 2005 年为 Linux 内核开发而创建。它能够高效地处理从小型到超大型项目的版本管理&#xff0c;具有以下特点&#xff1a; 分布式架构&#xff1a;每个开发者本地都有完整的仓库副本高效性能&#…

Java后端开发?接口封装器!

开发接口确实是Java后端开发中最核心、最可见的产出工作。“对入参校验、处理业务逻辑、返回格式处理”——精准地描述了一个API接口的核心处理流程。 但这只是冰山之上最直观的部分。一个专业、稳健、可扩展的后端系统&#xff0c;其复杂性和价值绝大部分隐藏在冰山之下。结合…

【沉浸式解决问题】NVIDIA 显示设置不可用。 您当前未使用连接到NVIDIA GPU 的显示器。

目录一、问题描述二、环境版本三、原因分析四、解决方案一、问题描述 在看一篇cuda安装的教程时&#xff0c;第一步是打开NVIDIA 控制面板&#xff0c;但是我打不开&#xff1a; NVIDIA 显示设置不可用。 您当前未使用连接到NVIDIA GPU 的显示器。 二、环境版本 设备&#xf…

牛客周赛 Round 106(小苯的方格覆盖/小苯的数字折叠/ 小苯的波浪加密器/小苯的数字变换/小苯的洞数组构造/ 小苯的数组计数)

A 小苯的方格覆盖思路&#xff1a;怎么摆第三行都是横放的2*1&#xff1b;故若n为奇数&#xff0c;总格子数3n为奇数&#xff0c;无法被2整除&#xff0c;直接排除。#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<iostream> #include<bits/stdc…

高并发内存池(16)-三层缓存的回收过程

高并发内存池&#xff08;16&#xff09;-三层缓存的回收过程 内存池的回收过程是内存管理系统的关键环节&#xff0c;它通过分层协作和智能合并机制&#xff0c;确保内存高效重复利用。以下是完整的回收流程解析&#xff1a;一、回收触发场景 ThreadCache回收&#xff1a;线程…

深入解析MyBatis Mapper接口工作原理

在Java持久层框架中&#xff0c;MyBatis以其灵活性和易用性赢得了广大开发者的青睐。作为MyBatis的核心概念之一&#xff0c;Mapper接口机制极大地简化了数据库操作代码的编写。本文将深入剖析MyBatis Mapper接口的工作原理&#xff0c;从基础概念到底层实现&#xff0c;帮助开…

疯狂星期四文案网第49天运营日记

网站运营第49天&#xff0c;点击观站&#xff1a; 疯狂星期四 crazy-thursday.com 全网最全的疯狂星期四文案网站 运营报告 今日访问量 常州苏州那些ip锲而不舍的扫了很多php的页面 今日搜索引擎收录情况 k页面比较严重了&#xff0c;哎。 我感觉不该做其他类型文案的 网…