自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git使用注意事项(企业版)

每次push代码前,都要pull代码,保证目前代码是最新的,提高开发效率! push的时候,若个别文件有冲突,应及时备份一份,以防自己的文件被修改或覆盖了同一分支上别人的代码。 若有冲突,应及时解决可能的冲突,然后在提交。 不要提交不必要的文件,如编译生成的文件、日志文件等,可以通过.gitignore文件来忽略这些文件。 在进行大规模的修改之前,最好先创建一个新的分支,避免直接在主分支上进行修改。

2023-07-19 09:21:33 97

原创 缓存穿透和缓存击穿、缓存雪崩

指查询一个缓存中和数据库中都不存在的数据,导致每次都会透过缓存,直接查库,最后返回空。用户发起多次请求这条不存在的数据时,对数据库造成的压力就非常大。当缓存中某个热点数据过期了,在热点数据重新载入缓存之前,有大量的查询请求穿过缓存,直接查询数据库。导致数据库压力骤增,造成大量请求阻塞,甚至直接挂掉。当缓存中大量的key在同一时刻过期,或者Redis直接宕机,导致大量的查询请求全部到达数据库,造成数据库查询压力骤增,甚至直接挂掉。

2023-03-03 17:51:26 557

原创 union和union all的区别

union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果集全部显示出来union all是直接连接,取到的是所有值,记录可能有的重复;union是取唯一值,记录没有重复。所以union在进行表链接后会筛选掉重复的记录,union all不会去除重复记录。union会按照字段的顺序进行排序;union all 只是将两个结果集合并后就返回。从效率上讲,union all要比 union快的多,所以如果确定合并的两个结果集中没有重复且不需要排序就用Union all.

2022-11-18 10:04:45 8286

原创 Linux基础命令

cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。功能:功能:mv命令是move的缩写,可以用来移动文件或者将文件改名(move(rename)files),是Linux系统下常用的命令,经常用来备份文件或者目录。mv [选项] [路径] 旧文件名 [新路径][新文件名]cp [选项] [路径] 旧文件名 [新路径][新文件名]

2022-11-17 19:52:13 247

原创 session和cookie的区别(面试题)

Session存在服务器,利用Session存放用户数据。当浏览器第一发送请求时,服务器会自动生成一个Session和一个Session ID来标识这个session,并将Session响应给浏览器。浏览器再次请求时,会将上次服务器响应的Session ID放在请求中发给服务器,服务器收到后提取Session ID和保存的Session ID做对比,找到对应这个用户的数据信息。由于Http协议本身是没有状态,即服务器无法判断用户身份。样式:key-value(一小段文本信息)客户端(浏览器)向服务器。

2022-10-13 22:51:19 417 1

原创 TCP协议的拥塞控制

由于过多的数据注入到网络造成拥塞,会产生丢包的行为,此时,发送方会继续重传,使网络超负荷,拥塞程度更大,它是一个全局性的过程,涉及范围广,包含所有主机、路由器以及降低网络传输性能有关的所有因素。解决措施:控制发送方的速度,目的是降低整个网络的拥塞程度。因此,我们引入了拥塞控制的4个算法。

2022-10-08 19:51:53 372

原创 TCP与UDP的区别

传输控制协议(TCP)是面向连接的、可靠的传输协议(传输数据前,必须先建立连接) TCP在建立连接时,要有三次握手,释放连接时,要有四次挥手。 TCP是点对点的(客户端、服务器),一对一接收,每一条TCP连接只能是点对点的。 Tcp面向字节流的(将应用层的数据报文看成字节流) TCP具有“可靠性传输,拥塞控制、流量控制”等功能。 TCP的首部最少20个字节,最多60个字节。 TCP在性能上传输数据包的效率慢,需要建立和释放连接等的资源

2022-09-25 22:19:17 910

原创 创建对象在堆区如何分配内存

什么是堆呢?Heap堆是JVM所管理的内存中最大的一块区域,被所有线程共享的一块内存区域。堆中主要存放对象实例,大多数的对象实例和数组都在这里分配内存。

2022-09-18 19:31:54 131

原创 CopyOnWriteArrayList源码分析

CopyOnWriteArrayList继承List集合,是一种集合并发访问的类。当对集合进行修改,添加,删除时,首先会拷贝一个新的集合进行操作,操作完成后,会将原集合的引用指向新的集合。保证了集合写入时的线程安全,并且多个线程可以进行并发的读取操作。

2022-09-17 23:52:56 252

原创 线程和进程联系以及线程的创建

线程池,按照配置参数(核心线程数、最大线程数,存活时间,拒绝策略,工作队列)创建并管理若干线程对象。程序中如果需要使用线程,将一个执行任务传给线程池,线程池就会使用一个空闲状态的线程来执行这个任务。执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。每个线程都有自己的本地方法栈,程序计数器,虚拟机栈,线程是轻量级进程,资源开销小。如果没有为线程命名,系统会默认指定线程名,命名规则是Thread-N的形式。进程启动后,jvm内存区域分配,各线程共享元空间区,堆区资源。

2022-09-13 19:50:01 305

原创 Session会话追踪的实现机制

会话

2022-09-08 17:38:04 236

原创 Servlet生命周期

目录一、概述(1)seriver的实现流程(2)Servlet执行流程(3)小结 介绍完Servlet执行流程,那么问题来了1.Servlet由谁创建?Servlet方法由谁调用?2.服务器怎么知道Servlet中一定有service方法? 二、生命周期(1)实例化(2)初始化 (3)服务(4)销毁(5)小结下面我们来实现一个高效而简单的Servlet: 一个Servlet总是继承自HttpServlet,然后覆写doGet()或doPost()方法。注意到doGet()方法传入了HttpS

2022-08-21 23:59:16 395

原创 当添加一个键值对元素时,HashMap发生了什么

底层数组// 每个Node既保存一个KV键值对,同时也是链表中的一个节点}链表结构// ...// 静态内部类Node// 哈希值// 键V value;// 值// 下一个节点(由于只拥有next,所以该链表为单向链表)}// ...}HashMap通过新添加元素key的hashCode()方法,计算一个hash值,然后通过这个hash值计算位置下标。int h;// 通过key的hashCode()方法返回的哈希值与它的高16位进行异或运算。...

2022-08-14 22:58:41 240

原创 java网络编程-----TCP通信

表示一个Socket就是IP地址和端口号(范围是0~65535)组成,简单理解为ip地址加端口号。(1)套接字(Socket)开发网络应用程序被广泛采用,以至于成为事实上的标准。(2)Socket是一个抽象概念,一个应用程序通过一个Socket建立一个远程连接,它的内部通过TCP/IP协议把数据传输到网路。(3)通信的两端都要有Socket,是两台机器间通信的端点。(4)Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输。...

2022-07-17 23:32:39 505

原创 Excel文件解析

在应用程序的开发中,经常需要使用Excel文件来进行数据的导入或者导出,所以在通过java语言实现此类需求的时候,往往会面临着Excel文件的解析(导入)或生成(导出)。在java技术生态圈中,可以进行Excel文件处理的主流技术包括ApachePOI、JXL、、AlibabaEasyExcel等。ApachePOI是java编写的免费开源的跨平台的JavaAPI,ApachePOI提供给java程序对MicrosoftOffice格式档案进行读写功能的API开源类库。......

2022-07-17 11:44:06 1022 1

原创 properties文件的读写

properties文件的读取方式 一、需要指定路径的方式读取(1)创建一个BufferedInputStream流对象,内部包装一个FileInputStream传入文件路径(2)创建空参的Properties的对象(3)调用load()将输入流写入Properties集合对象中(4)形成键值对形式 可以进行相应的操作((class Properties extends Hashtable<Object,Object> )方式 二、从classpath读取文件(不需..

2022-05-31 00:07:53 1105

原创 Zip压缩文件的读写

读取Zip文件1.创建一个ZipInputStream对象2.传入一个FileInputStream的匿名对象作为参数(数据源)3.循环调用getNextEntry()直至返回为null4.获取子文件名称、长度等6.判断entry是否是文件,如果是则通过read()/read(byte[])读取每个子文件内部的内容7.关闭资源(shift+alt+z)---->try with resources // 内部子文件有中文时,加字符集 try (ZipInput...

2022-05-30 23:10:58 211

原创 用栈模拟队列

过程准备两个栈:入队栈和出队栈原因 :栈是先进后出, 队列是先进先出入队操作:判断出队栈是否为空,若不为空,先将出队栈中的元素添加到入队栈中,然后再添加新元素。出队操作:判断入队栈是否为空,若不为空,先将入队栈中的元素添加到出队栈中,然后在进行元素出队。以上操作更能体现出队列的特点(先进先出)//用栈模拟队列class ToQueue<E> ...

2022-05-12 23:09:48 144

原创 List、Set、Map、Queue、Deque、Stack的遍历方式总结

一、List集合遍历(1)iterator迭代器遍历(推荐)原因:iterator对象遍历不同的List类型,返回的iterator对象实现不同,访问效率较高 List<String> array = new ArrayList<String>(); array.add("奥沙利文"); array.add("丁俊晖"); array.add("傅家俊"); System.out.println("-------------迭代器----------

2022-05-12 17:24:26 1331 2

原创 Integer缓冲池

Integer 缓存:引入的一个有助于节省内存、提高性能的特性。Integer中有个静态内部类IntegerCache,里面有个cache[],也就是Integer常量池,常量池的大小为一个字节(-128~127) private static class IntegerCache { static final int low = -128; static final int high; static final Integer cache[];

2022-02-22 19:54:17 133

原创 String类 和StringBuffer类 、StringBuilder类区别

不同点:String是不可变的字符串String类定义的final数组 private final char value[];其他两个都是可变的 ,由于其他两个类均继承AbstractStringBuilder类 char[] value;有关StringBuilder类的方法public StringBuilder append(任意类型)append()方法:添加数据,并返回对象本身 @Override public StringBuilder del

2022-02-21 22:30:39 279

原创 字符串常见方法总结:方法的作用、参数、返回值(构造方法可省略)

1. 构造方法(1)无参构造String() :该方法表示创建String数组时,将一个空的字符串传入value数组在new String()时被调用。(2)有参构造String(String original):通过传入一个字符串初始化一个新创建的字符串对象String(char value[]) :通过传入一个字符数组,创建一个字符串对象String(char value[], int offset, int count) :通过传入一个字符数组,截取相应的长度(参数1:数 ...

2022-02-21 17:27:28 371

原创 抽象类和接口的区别

一、抽象类1.抽象类一般用“abstract"声明,用“abstact class"来定义2.含有抽象方法的类一定是抽象类,内部可包含普通方法3.抽象方法没有具体实现,只需定义方法,无方法体4.抽象类不能被具体实例化,但可以定义引用5.抽象类可以被继承,父类引用指向相应子类的对象;子类自动生成父类(抽象类)的方法,根据需求编写方法体6.抽象类中不可以定义default默认方法7.可以定义成员变量8.可以有构造方法二、接口1.一般用Interface来定义接口2.类与类之间只能单继承,

2022-02-16 19:25:08 222 2

原创 方法重写和方法重载

一、方法重载1.定义在同一个类中2.构造方法也可以方法重载3.方法的返回值类型可同可不同(返回值可有可无)4.方法名相同5.方法的参数类型、顺序、个数不同二、方法重写1.在子类中重写父类的方法(出现在不同类,继承关系)2.修饰符,返回值类型,方法名等均相同3.当出现方法重写时,子类方法就覆盖了父类该重写方法,优先执行子类方法...

2022-02-16 19:24:03 155

空空如也

空空如也

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

TA关注的人

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