自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 JVM相关面试题

在这里,先想一下,如果没有双亲委派,那么用户是不是可以自己定义一个java.lang.Object的同名类,java.lang.String的同名类,并把它放到ClassPath中,那么类之间的比较结果及类的唯一性将无法保证,因此,为什么需要双亲委派模型?(2)复制算法: 将内存分为两块,只使用一块,进行垃圾回收时,先将存活的对象复制到另一块区域,然后清空之前的区域。可能会影响性能,但是可以消除碎片。GCRoot有:虚拟机栈中引用的对象,方法区中静态变量引用的对象,本地方法栈中引用的对象。

2024-03-09 21:30:49 1409

原创 配置文件和日志

配置文件可以解决软件硬编码的问题,可以实现个性化。把所有需要改变的信息集中到一个地方。,当我们启动某个程序时,从配置文件中读取数据,并加载运行。

2024-01-12 19:48:12 1337 1

原创 博客测试报告

博客的测试用例

2024-01-02 17:52:40 382

原创 IoC和DI

用来存放物品的装置,比如LIst/map就是数据存储容器,Tomcat就是web容器当有多个对象时我们就不可以使用类名来获取对象了,只能通过名字来获取可以重命名当我们使用了注解就一定会生效吗,只有扫描到了该注解才会生效,在启动类中@SpringBootApplication有这个注解,默认会扫描启动类所在的包或者其子包.,如果我们需要扫描的地方不在这里就需要通过 @ComponentScan({"com.example.demo"})注解来指定扫描的位置.

2023-12-07 22:37:30 1511

原创 类和对象的相关知识

类就是用来对一个实体(对象来进行描述的).一般情况下一个Java文件一个类,每一个类对应一个字节码文件.mian方法所在的类一般使用public方法进行修饰(Eclipse默认会在public中查找到main方法)public修饰的类必须要和文件名相同//类名需要用大驼峰来表示 class ClassName{ field;//字段属性或者是成员变量 method;//行为或者是成员方法 }把多个类组合在一起就是包,包是对类和接口等封装机制的体现,是对类和接口一种组织方式。

2023-11-07 20:26:31 37

原创 MySQL的索引和事务

当事务的第一个写操作完成时,别的数据进行读取时,我进行第二次写操作,在进行提交,这时正在读取的数据就发生了改变。我不在原来的地方修改了,我创建一个新的类,这样在读的过程中数据不会发生改变 ,不过结果集变多了,相当于不可重复读的一个特殊情况。2.数据库这边的数据结构都是在硬盘上的,在内存上的访问操作是不明敏感的,但是在硬盘上的数据结构对于访问操作比较敏感,读一次硬盘相当于1w次内存.描述同时执行的事务之间相互的影响。事务里执行的操作都是持久生效的,一旦事务成功,这里的所有操作产生的修改都会写道硬盘里。

2023-10-26 21:31:23 23

原创 MySQL

select name from student where classes_id = (select classes_id from student where name ='不想毕业');将查询到的数据插入到一个新的表格中,列数和其数据类型要相同(不能多也不能少)select count(*) from 表名 会把全null行算进去。select count(列名) from 表名 不会算null;

2023-10-25 20:01:53 24

原创 Cookie 和 Session 的工作流程

Cookie客户端发送请求到服务器端。 服务器在响应中添加Set-Cookie头,将Cookie信息发送给客户端。 客户端接收到响应后,将Cookie保存在本地。 客户端下次发送请求时,会自动将保存的Cookie信息添加到请求头中。 服务器接收到请求,通过请求头中的Cookie信息识别客户端,并返回相应的响应。Session客户端发送请求到服务器端。 服务器在处理请求时,为每个会话创建一个唯一的标识符(Session ID)。 服务器将Session ID存储在服务器端,通常存储在内存

2023-09-24 20:01:53 52

原创 HTTPS的加密流程

最简单的方法就是运用对称密钥,针对传输的数据进行加密,这样就算截获了数据没有密钥还是没有办法解密.但是由于每个主机的对称密钥都是不同的,需要发给服务器自己的密钥,但是在这个过程中会被黑客截获自己的密钥,所以对称密钥并不安全.

2023-09-17 20:47:13 30

原创 HTTP基本协议

结构有四部分分为1.首行2.请求头(响应头)3.空行4.正文(body).

2023-09-10 16:19:57 32

原创 数据链路层的相关知识

这里用的是mac地址(物理地址)6个字节的地址.mac地址负责数据链路层转发,IP负责网络层的转发,网络层负责规划路线,数据链路层负责各个节点之间是如何传递的.mac地址和IP在电脑上都是存在的,mac地址室友十六进制表示的,由于mac地址是6个字节所以是够用的,所以每个设备在出厂的时候就会有mac地址是不可以改变的.

2023-09-10 12:20:24 28

原创 NAT的工作机制

NAT是一种用来缓解IPV4地址不够用的机制.IP分为内网IP和外网IP.内网IP可以重复但是外网IP不可以重复,在同一个局域网中内网IP是不可以重复的.在同一个局域网内是可以通讯的但是如果想要跨局域网通讯就需要一个带有外网IP的设备进行中转,当一个局域网内的设备想要访问带外网IP的设备时NAT机制就发挥作用了.

2023-09-09 21:38:50 30

原创 IP协议的相关特性

我们可以通过子网掩码来区分网络号和主机号,将子网掩码表示为32位,左边1的范围就表示网络号,后面的0就表示位主机号.IP地址分为两部分:网络号和主机号.IP地址是有限的肯定会用完的。

2023-09-08 21:22:20 36 1

原创 TCP协议相关特性

URG:紧急指针ACK:是否确认应答消息RST:复位标识SYN:同步序列号标识(tcp建立连接时使用)FIN:结束序列号标识(TCP断开连接时使用)16位窗口:记录接收缓冲区的大小,如果大小为0,就不会发送数据了.以此达到流量控制。

2023-08-25 10:55:52 31 1

原创 UDP的报文结构和注意事项

UDP的报文结构源端口:占16个比特位两个字节,用来表示发送端端口号. 目的端口:占16个比特位,表示接收端端口号. UDP报文长度:占16个比特位,用来表示报文总长度,包括头部和数据. 校验和:占16个比特位,用来检测UDP报文在传输过程中是否损坏. 数据:最大长度为65535个字符,为传输的实际数据.相关的注意事项UDP是一种无连接的协议,不会维护连接状态.因此,在使用UDP进行通信的时候,需要自行处理丢包,重复数据的问题. UDP为不可靠传输,可能在传输的过程中丢失,损坏或者以不同

2023-08-17 16:32:51 63 1

原创 网络标识的基本概念

IP地址主要用于标识网络主机,其他网络设备的网络地址.简单来说就是用来定位主机的.举例来说就是你寄快递的时候你的发货地址也就是你现在的地址。

2023-08-06 11:39:35 616

原创 HashTable,HashMap,ConcurrentHashMap之间的区别

HashTable是线程安全的他在方法前都提供synchronizd方法.这个synchronized是在方法前直接加上的,就相当于针对this加锁,这也就导致了当多个线程都想多HashTable进行操作时会发生激烈的锁竞争,最后这些线程只能一个一个进行排队.并发程度很低。

2023-08-04 21:23:08 31 1

原创 Cas的基本原理

在Java中,CAS是指"比较并交换"(Compare and Swap)操作.由于他是一个原子类操作在cpu上只有一条指令.他是一种多线程同步机制,用于实现非阻塞算法和并发控制.CAS包含三个变量:内存地址 value,寄存器上旧的值oldvalue,以及新的值B.这样就可以判断在当前变量自增的时候是否有其他线程穿插进来了在Java中,Java.util.concurrent包提供了一些原子类用于支持CAS操作.这些原子类提供了CAS的封装,可以直接使用他们来实现线程安全操作.

2023-08-04 09:18:26 46 1

原创 Synchronized总结

Synchronized是JAVA中实现线程安全的一个关键字,他可以应用于方法或者代码块中.当一个线程访问一个synchronized方法或者代码块时,它会自动获取方法会或者代码块的锁,并且再其他线程获取的这个锁之前将其阻塞.synchornized的作用是保证在多个线程在并发执行的时候,对共享资源的访问是有序的,避免了数据不一致或者冲突的情况,当一个线程执行synchronized代码时,其他线程必须等待该线程执行完毕,并且释放了锁才行.

2023-08-03 10:43:13 25

原创 死锁的总结

当多个线程或者是进程都在等待其他线程或者进程释放资源,导致所有的线程和进程都无法继续执行称为死锁.

2023-08-02 21:25:37 27

原创 总结线程池

线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程,便利的管理线程和任务,并将线程的创建和任务的执行解耦合开来.我们可以创建线程池来复用已经创建的线程来降低频繁创建和销毁线程所带来的资源消耗.在JAVA中主要使用ThreadPoolExecutor类来创建线程池,并且JDK中也提供了Executors工厂类来创建线程池.

2023-08-02 09:48:10 24

原创 引发线程安全的原因和解决方法

操作系统中有很多的线程,这些线程的调度都是有系统来完成的,但是呢系统的调度是随机的,我们并不知道系统的调度顺序,这样就可能导致多个线程在cpu的调度中出现问题.

2023-07-31 18:56:12 29 1

原创 JAVA中的单例模式

单例模式顾名思义就是一种只有一个实例的代码模式,简单的来说就是只能new一次.

2023-07-31 16:14:50 29 1

原创 Java中线程的几种状态

一共包括六种线程状态。

2023-07-30 15:23:06 104 1

原创 关于Thread的基本操作

创建一个线程的本质:创建出一个PCB,然后把这个PCB加入到对应链表中.一个线程的创造要分为三步:1.new一个新的Tread,就是创建一个新的线程对象.2.用一个lambda方法创建一个匿名函数来覆写run方法,就是给线程提供一个指令清单.3.最后通过调用start()方法使这个新的线程开始独立执行.(start的本质就是调用系统的api来完成线程创建的工作)

2023-07-29 22:01:50 33

原创 进程和线程的区别

进程简单来说就是操作系统的实例化,一个程序只有在运行的时候叫进程.同一个程序运行多次就可能产生多个进程.具体的说操作系统把可执行文件中的数据和指令,加载到内存中,并且让cpu去执行这里的指令,完成一系列相关工作,这一整个运行起来的动态过程称之为进程.进程的本质:pcb(进程控制块)一个专门的结构体来记录进程里面的各个属性.创建一个进程就是创建一个pcb结构体,并且插入链表上,销毁一个进程就是把这个pcb结构体从链表删除并且释放.

2023-07-28 20:32:10 24 1

原创 进程调度的基本过程

进程调度

2023-07-28 10:27:24 51 1

原创 猜数字小游戏

猜数字小游戏

2023-01-19 20:26:10 40

原创 用二分查找法来查找一个数

用二分法查找一个数

2023-01-18 20:10:35 453 1

原创 详细分析数据是如何在内存中存储的

数据存储

2023-01-12 20:58:40 62

原创 【无标题】

希望有远大前程的小白

2022-10-15 15:53:31 88

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除