自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试之HTTP

在浏览器中输入www.baidu.com后执行的全过程域名解析(将域名www.baidu.com变为ip地址):浏览器首先搜索自己的DNS缓存(维护一张域名与IP的对应表),若没有则搜索操作系统的DNS缓存,若没有则搜索操作系统的hosts文件。若都没有找到,则找TCP/IP参数设置中的首选DNS服务器,即本地的DNS服务器(递归查询),本地域名服务器查找自己的DNS缓存,如果没有,则进行迭代查询。将本地服务器的IP返回给操作系统,同时缓存IP

2023-08-21 15:39:29 1317

原创 面试之ReentrantLock

Atomic 翻译成中文是原子的意思。在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的。在我们这里 Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。所以,所谓原子类就是具有原子操作特征的类基本类型:整型原子类AtomicLong:长整型原子类:布尔型原子类数组类型:整型数组原子类:长整型数组原子类:引用类型数组原子类引用类型:引用类型原子类:原子更新带有标记的引用类型。

2023-08-16 17:34:20 557

原创 面试之HashMap

Java的集合主要有两个根接口Collection和Map派生出来的,Collection派生出来了三个子接口:List,Queue,Set。因此Java集合大致可分为List,Queue,Set,Map四种体系结构。

2023-08-02 11:31:05 819

原创 面试之Java基础

也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。static修饰类中属性,称之为类的静态属性/类属性(存储在JVM的方法区),和具体的对象无关。当一个类被final修饰时,表明该类中所有的成员方法都会被隐式的指定为final方法。static修饰方法,称之为类方法/静态方法,只能使用类中的静态属性以及静态方法。被static修饰的内部类可以直接作为一个普通类来使用,而不需要实例一个外部类。使用final修饰的方法为最终方法,不能再被子类重写,可以重载。获取指定字符在字符串中位置。

2023-08-01 16:16:29 188

原创 面试之多线程案例(四)

在程序中时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中,让所有需要调用的地方都共享这一单例对象。

2023-07-31 17:09:41 1282

原创 面试之多线程(三)

比如有两个线程A和B对volatile修饰的i进行i++操作,i的初始值是0,A线程执行i++时刚读取了i的值0,就切换到B线程了,B线程(从内存中)读取i的值也为0,然后就切换到A线程继续执行i++操作,完成后i就为1了,接着切换到B线程,因为之前已经读取过了,所以继续执行i++操作,最后的结果i就为1了,A和B线程同步到主存中的i的值都是1。通俗的来讲,线程安全就是在多线程环境下,运行的结果符合我们的预期(即与单线程运行的结果相同),此时我们就说是线程安全。,不能保证复合操作的原子性,比如 i++

2023-07-31 11:31:35 347

原创 面试之事务与计算机网络(二)

事务就是一个包含多个步骤的业务操作,他们被看作是一个不可分割的单位,所有的步骤要么全部成功,要么全部失败。数据库向用户提供保存当前程序状态的方法,叫;当事务执行过程中,使数据库忽略当前的状态并回到前面保存的状态的方法叫。

2023-07-26 18:19:15 120

原创 面试之JVM

首先创建的新对象都会存放在新生代的Eden区,当内存满了之后进行GC,随后将存活的对象移动到其中一个Survivor区,然后进行新的对象创建,再一次将存活的对象放在Survivor,然后整理Survivor,保证其中一个Survivor一直为空。双亲委派模型就是,如果一个类加载器收到了类加载请求,它首先并不会自己去加载这个类,而是向上请求,委托父类去加载这个类,如果父类也有父类,同样的也会向上请求,直到最顶层加载器才开始尝试加载,如果不能完成这个加载,那就由他的子类加载器去尝试完成,这就是双亲委派模型。

2023-07-24 11:44:13 101

原创 性能测试到底是什么,让我们一探究竟!

测试人员借助性能测试工具,模拟系统在不同的情况下性能指标是否正常。简单来说就是 ,系统的基本功能已经完成,性能测试主要的方向就是在系统正常工作的前提下,效率如何,影响效率的因素又是哪些?

2023-07-18 16:51:13 91

原创 软件测试必掌握技能(黑盒测试,白盒测试......)

黑盒测试就是在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当的接收输入数据而输出正确的结果,满足规范需求。所以,黑盒测试又称之为数据驱动测试,只注重软件的功能。

2023-05-26 22:40:46 712

原创 入门测试,首先要了解这些概念!

测试用例是为了实施测试而向被测试系统提供的一组集合,通俗的讲:就是把我们测试系统的操作步骤用按照一定的格式用文字描述出来。测试环境,操作步骤,测试数据,预期结果等要素。BUG简单的理解就是预期和实际有偏差,为满足预期目标,说明实际的软件中存在错误。当且仅当规格说明是存在并且正确的,程序与规格说明不匹配才是错误。当程序没有实现最终用户合理预期的功能要求时,就是错误软件。

2023-05-20 10:48:37 782

原创 滑动窗口之长度最小子数组

滑动窗口,实际上是基于双指针的一种思想,有前后两个指针来控制窗口的大小。滑动窗口可分为两类,一类是静态窗口,一类是动态窗口。如图所示这就是一个滑动窗口,j为滑动窗口的终止位置,i为滑动窗口的起始位置,两者根据题目的不同条件进行相应的变化。

2023-05-11 17:39:45 242

原创 看这儿!!! 带你了解spring mvc

根据官方文档中得到:Spring web mvc ,通常称为Spring mvc,是基于servlet构件的原始web框架,从一开始就包含在spring框架中。spring mvc是web框架spring mvc 是基于servlet api 实现的然而要理解spring mvc 我们首先要了解mvc是什么mvc是Model View Controller的缩写,他是软件工程中一种软件架构模式,他把软件分为模型,视图,控制器三个部分。

2023-05-09 21:41:47 452

原创 Spring 配置文件和日志文件

一个项目中重要的数据都在配置文件中配置的,比如 数据库的连接,程序日志的打印级别等。如果说在Spring项目中没有文件配置,那么数据库操作就完成不了,甚至日志文件都不能得知,由此可见配置文件对于开发来说很重要。

2023-05-08 21:27:46 1240

原创 谈谈Spring中bean的作用域和生命周期

假设现在有一个公共的bean,供A B 两个用户来使用,但是在使用过程中,由于A修改了bean的值,导致下一次B所读到的值是已经被修改的值。这就是由于bean的作用于是全局共享,出现了这个问题。打印A B两个用户此时所拥有公共Bean的值:结果:此时由于这个公共的Bean对象的作用域默认是单例模式,所有人使用的都是同一个对象,所有对象都可以修改,因此发生了变化,那么Bean的作用域有哪些呢?我们接着往下看!

2023-05-08 16:57:59 346

原创 Spring_lOC/DI总结

我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是一个开源框架,有着活跃而庞大的社区,这就是它之所以能长久不衰的原因。那么在lOC的思想基础下去制造一辆汽车,改为注入传递的方式来实现,此时各个模块之间都是相互独立的,使用依赖注入的方式,如果要改变某个属性或者其他,只单独修改部分即可,不会涉及到全部代码。所以当控制权发生反转之后,不再是上级对象创建并控制下级对象,而是把下级对象注入到上级,下级的控制权不再是上级,这样及时下级发生改变,也不会影响上级。

2023-04-23 20:57:35 709

原创 Spring_Bean对象的注册和注入

Controller(控制器存储):做web开发使用,专门对web的请求响应进行处理Service(服务存储):做业务逻辑,为项目提供服务Repository(仓库存储):做数据访问操作,一般指操作数据库Component(组件存储):值一般组件,如果不属于以上三个功能,就是用这个注解Configuration(配置存储):企业级/大型项目启动时,需要加载配置很多东西,就需要用到

2023-04-23 16:17:50 713

原创 一篇JVM文章,让你读懂对象的一生

如果一个类加载器收到了加载类的请求,首先不会自己尝试去加载这个类,而是向上请求父类加载器去完成,每一个加载器都是如此工作,一直到最顶层的启动类加载器。从启动类加载器开始,只有当父类无法加载这个请求的,便会将请求发送到子类,子类尝试加载。启动类加载器:加载 JDK 中 lib 目录中 Java 的核心类库,即$JAVA_HOME/lib目录。扩展类加载器。加载 lib/ext 目录下的类。应用程序类加载器:加载我们写的应用程序。自定义类加载器:根据自己的需求定制类加载器。

2023-04-21 11:58:29 596

原创 Linux基本操作

对于目录,列出该目录下的所有子目录与文件,对于文件,列出文件名与其他信息。

2023-04-16 16:19:21 182

原创 HTTP协议详解

HTTP协议又称超文本传输协议,是属于计算机网络五层模型中应用层的协议,是如今网络世界中最重要的协议之一。HTTP 往往是基于传输层的 TCP 协议实现的. (HTTP1.0, HTTP1.1, HTTP2.0 均为TCP, HTTP3 基于 UDP实现).HTTPS工作流程中一共涉及三队密钥,两种加密方式用来验证证书的公钥与私钥,这个是由颁发证书机构所分配的用来协商客户端与服务器通信的公钥与私钥,公钥会被打包到证书,一起发送给客户端(非对称加密)用来加密通信内容的公钥与私钥(对称加密)

2023-03-28 15:38:00 979

原创 多线程——JUC

JUC是java.util.concurrent包,由jdk1.5引进。

2023-03-09 17:05:00 113

原创 多线程☞锁策略,CAS,Sychronized原理

CAS全称:Compare And Swap, 比较并交换,一个CAS包括以下步骤:我们假设内存中的原数据V,旧的预期值A,需要修改的新值B。比较A 和V 是否相等(比较操作)如果相等,将B写入内存,覆盖V返回操作是否成功这个代码简单实现CAS原理。这些伪代码,在CPU中只对应一条指令cmpxchg。ABA 的问题:假设存在两个线程 t1 和 t2. 有一个共享变量 num, 初始值为 A.接下来, 线程 t1 想使用 CAS 把 num 值改成 Z, 那么就需要。

2023-03-07 16:29:16 123

原创 多线程案例—阻塞队列/定时器/线程池

和实现普通的队列一样,底层使用数组来完成,要实现阻塞功能,就要加入synchronized,wait和notify.//需要一个数组来保存数据//队尾与队首下标//有效个数元素//判断队列是否已满,如果满了则阻塞//从队尾入队//tail往后走tail++;//循环处理tail = 0;//有效元素加一size++;//唤醒其他线程//先判断队列是否为空//队列为空,出队阻塞//取出队头元素//head往后走一步head++;//循环判断。

2023-02-17 17:22:44 282

原创 多线程——volatile & wait & notify

在多线程环境下,读和写发生在不同的线程中,可能会出现:读线程不能及时的读取到其他线程写入的最新的值,这就是所谓的可见性问题。一个count变量,线程1判断count!=0退出线程,此时线程2改变count值,由于内存可见性,线程1不能及时获取,所以线程1不能及时退出。System.out.println(Thread.currentThread().getName() + " 线程启动");// 一直循环。

2023-02-13 17:39:39 325

原创 多线程基础(三)——Synchronized

只有一个线程要获取锁,直接可以拿到,没有锁竞争两个线程同时竞争一把锁,谁先拿到就执行自己的逻辑,另一个线程就是阻塞等待,等释放锁之后,再次竞争锁两个线程竞争的不是同一把锁,两者没有竞争关系要保证线程之间存在锁竞争,必须要使用相同的锁synchronized可以修饰方法,可以修饰代码块:修饰静态方法,用到的锁对象是类对象.class修饰普通方法,用到的锁对象是当前的实例对象,new修饰代码块,用到的锁对象是当前对象this new。

2023-02-09 18:11:25 331

原创 线程不安全问题是这样解决的!!!

比如某个代码中要连续 10 次读取某个变量的值, 如果 10 次都从内存读, 速度是很慢的. 但是如果只是第一次从内存读, 读到的结果缓存到 CPU 的某个寄存器中, 那么后 9 次读数据就不必直接访问内存了. 效率就大大提高了。每一个工作内存都是独立的,相互之间不可访问,假若线程1改变了变量的值,但是没有及时写入主内存,其他线程未感知到,就造成了线程不安全问题。主内存对应的是物理内存,而工作内存指的是CPU中的寄存器,L1,L2,L3各级缓存的一个统称。指令重排序在单线程情况下没有什么问题;

2023-01-14 13:35:31 467

原创 多线程基础(一)

一个线程就是一个 "执行流",每个线程之间都可以按照顺序执行自己的代码(要执行的事务),多个线程之间 "同时" 执行着多份代码。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务, 也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。

2023-01-09 13:31:50 531

原创 操作系统与进程调度

操作系统(英语:Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。对下(硬件)管理各种计算机设备对上(软件)为各种软件提供一个稳定的运行环境对于有图形界面的操作系统,可以为用户提供一个良好的人机交互界面进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;

2023-01-04 16:35:16 161

原创 数据库的三大范式

数据库的三大范式主要指:数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。

2022-12-14 10:41:57 2037

原创 数据结构中(Map 和 Set)的那些事

线性探测的缺陷是产生冲突的数据堆积在一块,这与其找下一个空位置有关系,因为找空位置的方式就是挨着往后逐个去找,因此二次探测为了避免该问题,找下一个空位置的方法为:Hi = (H0+i^2 )% m, 或者:Hi= (H0-i^2 )% m。其中:i = 1,2,3…Map.Entry 是Map内部实现的用来存放键值对映射关系的内部类,该内部类中主要提供了的获取,value的设置以及Key的比较方式。TreeMap:红黑树。

2022-11-26 15:20:29 672

原创 一文搞懂十大排序(超详解 + 动画演示)

排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。

2022-11-15 17:49:22 932 2

原创 Java对象的比较

对象比较

2022-11-08 16:11:35 647

原创 数据结构——堆与PriorityQueue

堆与优先队列

2022-11-08 11:47:00 730

原创 【数据结构】 树,二叉树详解与实现

树与二叉树

2022-11-02 18:18:09 507

原创 【数据结构】队列(Queue)

Queue

2022-10-20 17:20:34 861

原创 【数据结构】栈(stack)

2022-10-19 18:34:57 150

原创 【数据结构】关于链表,这一篇就够了!

链表

2022-10-18 11:30:37 559

原创 【数据结构】顺序表超详解

数据结构-顺序表

2022-10-17 16:23:20 676

原创 JAVADS——快速排序

快速排序具体是在序列中选择一个元素(如何选择没有规定),接下来通过"遍历的方式",比较所选定的元素和区间内其他元素的大小关系。 快排: 1) 如果区间内的元素个数<=1,则不用做任何处理,因为天然有序 2)从区间中(这里的区间不代表整个数组,所以需要通过[from,to]来限定)中挑选一个pivot,挑选方式随意 3)遍历区间,将每个元素都和pivot进行比较,并且进行必要的位置移动,是的完成区间遍历之后,整个数组被分成三个小区间,【<= pivot】【pivot...

2022-03-22 16:13:59 154

原创 【JAVADS ——排序】

目录插入排序希尔排序冒泡排序选择排序堆排序1.插入排序插入排序是指在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。 按照此法对所有元素进行插入,直到整个序列排为有序的过程,称为插入排序代码如下: public static void insertSort(long[] array) { // 一共要取多少个元素来进行

2022-03-20 15:49:14 900

空空如也

空空如也

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

TA关注的人

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