自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 接口测试学习笔记

设置环境 眼镜看环境变量的值。

2024-10-07 15:57:26 98

原创 软件测试学习笔记

软件:控制计算机硬件工作的工具软件测试:使用技术手段验证软件是否满足使用需求软件测试的目的:减少软件缺陷,保障软件质量。

2024-10-05 22:36:42 108

原创 threadlocal

由于threadlocalmap的生命周期和thread一样长,如果没有手动删除对应key就会导致内存泄漏。当thread销毁的时候,threadlocalmap随之销毁,减少内存的使用。key是个弱引用,将threadlocal对象的生命周期和线程生命周期解绑。每个map存储的entry数量变少。2、与sychnoized的区别。线程并发 传递数据 线程隔离。

2024-08-16 15:44:27 165

原创 Java刷题 牛客 软件开发

synchronized关键字在JavaSE1.6之后进行了主要包括为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁以及其它各种优化之后执行效率有了显著提升,实际开发中使用 synchronized 关键字的场景还是更多一些。volatile关键字主要用于解决变量在多个线程之间的可见性,而 synchronized关键字解决的是多个线程之间访问资源的同步性。volatile关键字能保证数据的可见性,但不能保证数据的原子性。final修饰的对象引用本身是不可变的,但对象内部的状态是可以改变的。

2024-08-15 10:28:36 472

原创 Java之MySQL

重做日志(Redo Log)提交事务的持久化数据 当事务提交时,相关的修改操作会首先被记录到重做日志中,然后才会写入磁盘 是指在数据库的最小存储单元(数据页)上发生的。建在频繁查询的字段上,不建议建在频繁更新的字段上,要对哪些区分度高的字段建立索引,同时控制索引的数量,创建组合索引而不是修改单列索引。平衡二叉树可是每个节点只存储一个键值和数据的 B+ 树,可以存储更多的节点数据,树的高度也会降低,因此读取磁盘的次数就降下来啦。由于B+树内部节点只存储关键字,可以容纳更多的关键字,从而。

2024-08-12 17:45:26 887

原创 Java之设计模式

静态代理和动态代理的区别动态代理更加灵活,在运行时动态生成字节码,并加载到JVM中Spring AOP通过。

2024-08-09 10:56:29 1016

原创 Java面试之操作系统

运算器、控制器、存储器、输入设备、输出设备32位和64位CPU最主要区别是一次性能计算多少字节数据,。线路位宽 cpu能操作的内存大小 比如cpu想要操作4G的内存,就需要32条地址总线。2^32=4G。

2024-08-05 11:53:24 717

原创 Java之开发 系统设计 分布式 高性能 高可用

SQL优化,JVM、DB,Tomcat参数调优 > 硬件性能优化(内存升级、CPU核心数增加、机械硬盘—>固态硬盘等等)> 业务逻辑优化/缓存 > 读写分离、集群等 > 分库分表。服务降级指的是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。降级的目的在于应对系统自身的故障,而熔断的目的在于应对当前系统依赖的外部系统或者第三方系统的故障。分发到多个不同的地方以实现就近访问,进而加快静态资源的访问速度,减轻服务器以及带宽的负担。

2024-07-26 20:24:16 1005

原创 Java Linux操作系统

通过 inode 节点号建立连接,硬链接和源文件的 inode 节点号相同,两者对文件系统来说是完全平等的(可以看作是互为硬链接,源头是同一份文件),删除其中任何一个对另外一个没有影响,可以通过给文件设置硬链接文件来防止重要文件被误删。文件链接(File Link)是一种特殊的文件类型,可以在文件系统中指向另一个文件。4、快照:保存虚拟机的状态,当虚拟机出现问题的时候,可以恢复原始的状态。1、操作系统是协助用户调度硬件工作,充当用户和计算机硬件之间的桥梁。3、发行版Centos:内核+应用程序。

2024-07-24 22:33:35 478

原创 Java热题100(简单 中等题) 持续更新

创建list集合、map集合等。

2024-07-23 22:15:47 285

原创 Java开发之Redis

当 AOF 变得太大时,Redis 能够在后台自动重写 AOF 产生一个新的 AOF 文件,这个新的 AOF 文件和原有的 AOF 文件所保存的数据库状态一样,但体积更小。缓存服务可以部署在一台单独的服务器,即使同一个相同的服务部署在多台机器上,也是使用的同一份缓存。改进——lua脚本,确保写入的命令的正确性,就可以保证执行的正常性,否则错误的语句会报错,但是之前已经执行的却不能回滚。在线的slave,根据slave的优先级,再根据复制进度,如若还是选不出来,就选用运行id小的slave。

2024-07-23 17:29:37 889

原创 Java之类加载

由 jvm 自带的类加载器加载的类是不会被卸载的。但是由我们自定义的类加载器加载的类是可能被卸载的。文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那这两个类就必定不相同。只有两者都相同的情况,才认为两个类是相同的。创建的(数组类没有对应的二进制字节流),是由 JVM 直接生成的。6、双亲委派模型 各种类加载器之间的层次关系被称为类加载器的“启动类加载器,最顶层的,通常表示为null 没有父级。:根据类的二进制名称来查找类,默认实现是空方法。3、类加载器是一个负责加载类的对象。

2024-07-22 22:09:49 944

原创 Java之 jvm

元空间是永久代的实现 把永久代换成元空间的原因——整个永久代有一个 JVM 本身设置的固定大小上限,无法进行调整(也就是受到 JVM 内存的限制),而元空间使用的是本地内存,受本机可用内存的限制,虽然元空间仍旧可能溢出,但是比原来出现的几率会更小。)——初始化零值——设置对象头(这个对象是哪个类的实例、如何才能找到类的元数据信息、对象的哈希码、对象的 GC 分代年龄等信息。直接内存:直接内存是一种特殊的内存缓冲区,并不在 Java 堆或方法区中分配的,而是通过 JNI 的方式在本地内存上分配的。

2024-07-22 20:42:25 1094

原创 Java之tomcat

简单来说,Tomcat 就是一个“HTTP 服务器 + Servlet 容器”,我们通常也称呼 Tomcat 为 Web 容器。Servlet 容器 :HTTP 服务器将请求交给 Servlet 容器处理,Servlet 容器会将请求转发到具体的Servlet(Servlet 容器用来加载和管理业务类)。连接器对 Servlet 容器屏蔽了协议及 I/O 模型等的区别,无论是 HTTP 还是 AJP,在容器中获取到的都是一个标准的。Servlet 指的是任何实现了 Servlet 接口的类。

2024-07-21 22:02:25 415

原创 Java面经之Java并发

线程池不再接受新任务了,但是队列里的任务得执行完毕 它只是异步的通知线程池进行关闭处理awaitTermination要同步等待线程池彻底关闭后才继续往下执行。为了提升执行速度/性能,计算机在执行程序代码的时候,会对指令进行重排序。简单来说就是系统在执行代码的时候并不一定是按照你写的代码的顺序依次执行。方法来获取默认值或将其值更改为当前线程所存的副本的值,从而避免了线程安全问题。关键字能保证数据的可见性,但不能保证数据的原子性。这个变量的每个线程都会有这个变量的本地副本,这也是。

2024-07-21 20:33:36 556

原创 Java面经之IO Netty 零拷贝

bossgroup 用于处理客户端的tcp连接请求 workergroup 负责每一条连媒介的具体读写数据的处理逻辑,真正负责I/O读写操作 bossgroup的线程数为1 而workergroup的线程数默认是CPU核心数*2。BIO 同步阻塞io模型 应用程序发起 read 调用后,会一直阻塞,直到内核把数据拷贝到用户空间。ChannelHandler 是消息的具体处理器,主要负责处理客户端/服务端接收和发送的数据。I/O操作是异步的,不能立刻得到处理的结果。

2024-07-18 20:06:36 258

原创 Java面经之计算机网络 补充

9、NAT协议 网络地址转换 缓解ipv4的压力 ,在一个小的子网(局域网,Local Area Network,LAN)内,各主机使用的是同一个 LAN 下的 IP 地址,但在该 LAN 以外,在广域网(Wide Area Network,WAN)中,需要一个统一的 IP 地址来标识该 LAN 在整个 Internet 上的位置。拥塞控制是一个全局性的过程,涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的所有因素。相反,流量控制往往是点对点通信量的控制,是个端到端的问题。

2024-07-17 20:41:36 298

原创 Java面经之Java基础 持续更新

什么叫编译 一次编译成机器可理解的代码 Java编译过程将Java源代码编译为与平台无关的字节码,这种字节码可以在任何支持JVM的环境中执行。Java是编译和解释的两个地方 一是javac编译 解释器执行字节码文件 还有就是热点代码通过JIT编译器进行编译。1、jvm 类加载器 是运行Java字节码的虚拟机 字节码并不针对某一种操作系统。2、Java为什么是编译和解释并存 下图为Java程序从源代码到运行的过程。JRE 运行Java程序 (jvm+一些基础类库+其他一些构件)

2024-07-17 17:45:53 195

原创 Java面经之框架

1、spring 轻量化的Java开发框架 但是配置过于繁琐,springmvc是spring一个很重要的模块,主要赋予 Spring 快速构建 MVC 架构的 Web 程序的能力。比如我们经常使用的redis、kafka等等这样常见的中间件都预置了配置类 starter就是做了一层封装,把相关要用到的jar都给包起来了,并且也写好了对应的版本。bean的线程安全问题 Bean是单例的话 如果这个 bean 是有状态的话,那就存在线程安全问题(有状态 Bean 是指包含可变的成员变量的对象)。

2024-07-17 17:44:26 564

原创 小林coding tcp

当 TCP 服务进程重启时,服务端会出现 TIME_WAIT 状态的连接,TIME_WAIT 状态的连接使用的 IP+PORT 仍然被认为是一个有效的 IP+PORT 组合,相同机器上不能够在该 IP+PORT 组合上进行绑定,那么执行 bind() 函数的时候,就会返回了 Address already in use 的错误。因为开启了这个内核参数后,客户端调用 connect 函数时,如果选择到的端口,已经被相同四元组的连接占用的时候,就会判断该连接是否处于 TIME_WAIT 状态。

2024-07-16 20:06:11 659

原创 小林coding tcp断开

4、第三次挥手丢失了,超时重传 ,还没收到服务器就断开连接 客户端因为是通过 close 函数关闭连接的,处于 FIN_WAIT_2 状态是有时长限制的,如果 tcp_fin_timeout 时间内还是没能收到服务端的第三次挥手(FIN 报文),那么客户端就会断开连接。ACK 报文是不会重传的,所以如果服务端的第二次挥手丢失了,客户端就会触发超时重传机制,重传 FIN 报文,直到收到服务端的第二次挥手,或者达到最大的重传次数。,所以即使服务端的进程退出了,还是能与客户端完成 TCP 四次挥手的过程。

2024-07-16 18:18:57 440

原创 小林coding tcp 连接建立

重传次数都不超过系统的设置,如果再规定时间内和规定次数还是没有收到,客户端、服务端就会断开连接。6、第一次握手丢失, 重传 次数不超过tcp_syn_retries ,如果还是没有收到服务器的第二次握手,那么客户端就会断开连接。「两次握手」:无法防止历史连接的建立,会造成双方资源的浪费,也无法可靠的同步双方序列号;ip分片重传没有效率,经过 TCP 层分片后,如果一个 TCP 分片丢失后,为了安全性,防止黑客伪造的相同序列号的 TCP 报文被对方接收;,而不用重传所有的分片,大大增加了重传的效率。

2024-07-16 15:21:15 431

原创 小林coding TCP基本认识

4、源地址和目的地址的字段(32 位)是在 IP 头部中,作用是通过 IP 协议发送报文给对方主机。源端口和目的端口的字段(16 位)是在 TCP 头部中,作用是告诉 TCP 协议应该把报文发给哪个进程。层是「不可靠」的,它不保证网络包的交付、不保证网络包的按序交付、也不保证网络包中的数据的完整性,TCP 是一个工作在。一对一、一对多、多对多;一个包一个包的发送,是有边界的,但可能会丢包和乱序。拥塞控制、流量控制;流式传输,没有边界,但保证顺序和可靠。数据传输的服务,它能确保接收端接收的网络包是。

2024-07-16 10:40:04 244

原创 小林coding ip ping

,它在收到软中断后就会立马去链表里把消息取出,然后顺着数据链路层、网络层等层层往上传递最后给到应用程序。用于进行通信的主机或路由器之间,判断所发送的数据包是否已经成功到达对端的一种消息,3、断网也能ping 127.0.0.1 ping 回环地址和。专门处理软中断的工具人**"ksoftirqd"** (这是个。整条路径从发到收,都没有经过"真网卡"。ping 某个IP 就是往某个IP地址发个消息。本地网卡,其实就是个**"假网卡"命令就是利用这个消息实现的。2、在IPV4下用的是。

2024-07-15 21:38:03 233

原创 小林coding ip

3、ip地址分类的优点 第一位是0还是1 第二位是0还是1 第三位是0还是1 第四类是0还是1 可以区分不同类别的地址 简单明了,选路简单 缺点:不能很好的与现实网络匹配 ,c类主机太少,b类又太多。1、ip基础知识 ip 网络层 相当于是旅行中的行程表,源ip地址和目标ip地址在传输过程中不会发生变化,mac 数据链路层 相当于旅行中的交通工具,是一直在变化的。6、公有ip地址和私有ip地址 公有地址ip是由互联网名称与数字地址分配机构组织管理的。两种类型的包确定 MAC 地址的。

2024-07-15 21:04:32 392

原创 小林coding http

既然有http,为什么还要有rpc tcp是一个面向连接、可靠、字节流 字节流的问题就是不知道开始截止的地方 所以有了http协议 、等各类协议 RPC本质是希望程序员像调用本地方法那样去调用远端的服务方法 rpc比http出现的早,比目前主流的http1.1性能要好,所以大部分公司内部都还在使用。https 解决了http不安全的缺点,tcp三次握手之后加入了ssl/tls安全协议,传输内容的时候把数据加密,通常是对称加密数据。GET 方法是安全、幂等、可被缓存的。

2024-07-13 16:51:49 183

原创 小林coding 计算机网络

应用层 寄快递把快递交给快递员,只专注于为用户提供相应的服务,不管如何传输 协议http传输层 为应用层提供服务、应用间数据传输的媒介 TCP可靠 分段 对接某个应用的端口 UDP 不可靠网络层 ip协议 将数据从第一个设备传输到另一个设备,如何找到另一个设备?ip地址寻址 IP地址给路由器导航 IP 协议的寻址作用是告诉我们去往下一个目的地该朝哪个方向走,路由则是根据「下一个目的地」选择路径。寻址更像在导航,路由更像在操作方向盘。

2024-07-12 16:12:30 481 1

原创 Filter Listener Ajax

1、过滤器一般完成一些通用的操作。比如每个资源都要写一些代码完成某个功能,我们总不能在每个资源中写这样的代码吧,而此时我们可以将这些代码写在过滤器中,因为请求每一个资源都要经过过滤器。3、多个过滤器按照字符串的自然排序进行过滤。

2024-03-11 19:34:46 331 1

原创 会话技术简单入门

服务端ServletA在处理的过程中可以创建一个Cookie对象并将name=zs的数据存入Cookie服务端ServletA在响应数据的时候,会把Cookie对象响应给浏览器。1、会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。ServletB接收到请求和数据后,就可以获取到存储在Cookie对象中的数据,这样同一个会话中的多次请求之间就实现了数据共享。浏览器接收到响应数据,会把Cookie对象中的数据存储在浏览器内存中,此时浏览器和服务端就建立了一次会话。

2024-03-11 17:28:06 335 1

原创 MVC三层架构

业务逻辑层:对业务逻辑进行封装,组合数据访问层层中基本功能,形成复杂的业务逻辑功能。例如 注册业务功能 ,我们会先调用 数据访问层 的 selectByName() 方法判断该用户名是否存在,如果不存在再调用 数据访问层 的 insert()方法进行数据的添加操作。而整个流程是,浏览器发送请求,表现层的Servlet接收请求并调用业务逻辑层的方法进行业务逻辑处理,而业务逻辑层方法调用数据访问层方法进行数据的操作,依次返回到serlvet,然后servlet将数据交由 JSP 进行展示。

2024-03-11 16:40:19 523 2

原创 JSP简单入门

1、JSP 作用:简化开发,避免了在Servlet中直接输出HTML标签。2、加入依赖提供 在wabapp下创建jsp文件。

2024-03-11 16:36:42 349 1

原创 request and response

Servlet类中的service方法、doGet方法或者是doPost方法最终都是由Web服务器[Tomcat]来调用的,所以Tomcat提供了方法参数接口的具体实现类,并完成了对象的创建。2、Request的继承体系为ServletRequest-->HttpServletRequest-->RequestFacade。此处主要解决的问题是把请求从/req5转发到/req6的时候,如何传递数据给/req6。4、解决问题一:获取请求参数的方式不统一,需要统一,采用。5、解决问题之 中文乱码问题。

2024-03-11 16:04:37 356 1

原创 Mybatis概述

1、MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发。

2024-03-10 21:57:16 369

原创 maven

1、Maven提供了一套标准化的项目结构。alt+insert快速生成坐标。

2024-03-10 21:29:56 465 1

原创 JDBC简单入门

jdbc简单入门

2024-03-10 21:08:40 328

原创 你的计算机配置似乎正确,但该设备或资源(DNS服务器)没有响应

一、看ipv4和ipv6是否有internet访问权限,

2023-11-01 11:45:35 3217 4

空空如也

空空如也

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

TA关注的人

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