- 博客(27)
- 收藏
- 关注
原创 并发编程(二)—synchronized和volatile
术语英文描述内存屏障在内存中有一个变量标记,该标记为某一确定值时不要继续访问。缓冲行cache line高速缓存的基本存储单元。原子操作一系列操作全部成功或者全部失败,如果一个操作失败,其他操作还原。缓存命中读取数据时会先查看高速缓存中是否存在该数据,有则直接读取(缓存命中),没有则到内存中读取。缓冲行计算机中具有存储能力的区域:内存(页)、硬盘(栈区)、CPU内部—高速缓存。
2025-05-27 18:00:44
700
原创 手写Tomcat(二)—Tomcat简化模型架构
Tomcat的主要角色是 servlet容器,提供一个解释器,能够解析并执行JavaScript Object Notation (JON)脚本(后更改为Servlet),并将请求传送到指定的服务器(如JavaBean)。因此,它是Servlet处理请求、与客户端通信(RESTful API)以及处理服务器端业务逻辑的关键组件。
2025-05-22 15:24:52
1217
原创 手写Tomcat(一)
Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Servlet接口文件中定义的方法有以下几个:补充: GenericSrevlet类中实现了init()、getServletConfig()、getServletInfo()、destroy()四个方法,把service()交由HttpSrevlet实现。HttpServlet中关于 service()定义如下: 二、Tomca
2025-05-22 09:11:39
1129
1
原创 Java—异常体系
Java的异常体系是Java语言中用于处理程序运行过程中可能出现的错误的机制。通过异常处理,程序可以在遇到问题时自动反馈,从而避免程序崩溃。Java异常体系中包含两大类:错误(Error)和异常(Exception)。
2025-05-17 20:16:38
1001
原创 Java—类与对象(一)
在Java中有些类没有面向对象特征,如Math类,可以通过Math.方法名(参数)对其进行调用。隐式参数是指在方法中使用但没有在方法参数中声明的变量。通常,这些变量是在类中声明的实例域。隐式参数的一个典型例子是使用this关键字引用当前对象的实例域。显式参数会明显的列在方法声明中,如下面代码中的int num。//隐式参数//this 关键字指向当前对象实例,但静态方法不依赖于实例,所以在静态方法中不能使用this关键字public void b(int num) { //num 显式参数。
2025-05-14 16:09:19
681
原创 Java—反射
是程序在运行时动态地检查、访问和修改自身结构(如类、方法、字段、构造器等)以及行为(如调用方法、操作字段)的能力。反射机制允许程序在运行时获取类的完整信息,并直接操作类或对象的内部属性和方法。
2025-05-14 01:11:28
868
原创 Java—代理模式
可以发现静态代理的代理类需要手动编写,每次增加一个新的功能,都需要手动添加一个新的代理类,即在使用时增加功能需要对原码进行修改,增加复杂性,因此,静态代理通常不使用。注:在代理模式中,一个代理对象只能代理一个目标对象,而在 User.java中,代理对象zf对Wx、Zfb、CARD三个目标对象都能进行访问,在下述动态代理中会对其进行改进。
2025-05-13 21:47:21
655
原创 Java—包装类
Java为面向对象的编程语言,但是八种数据类型定义的数据不是对象,没有操作数据的能力,因此提出与其对应的包装类。对象是堆内的一片内存空间。
2025-05-09 23:54:02
719
原创 Java基础
3、全局变量若与局部变量重名,方法会优先使用方法中的局部变量,没有局部变量才会使用整体变量。5、final防止指令重排序,遏制流水线优化,保障多线程并发场景下的可见性;2、实例变量通常在类定义中声明,但不在任何方法、构造函数或代码块内;3、常量名需全部大写,若包含多个单词,使用“_”进行连接;2、final修饰的引用类型不可以二次改变指向;1、用关键字final来修饰,只能赋值一次;1、final修饰的基本类型不可以二次赋值;4、final修饰的方法不可以被重写;3、final修饰的类不可以被继承;
2025-04-16 14:40:52
439
原创 js—dom操作
DOM(文档对象模型)操作是基于面向对象的思想设计的。在浏览器中,HTML 文档被解析为一个由对象组成的树形结构(即 DOM 树),每个 HTML 元素、属性、文本节点都是一个对象,通过对象的属性和方法可以实现对页面内容的动态操作。var obj = document.getElementById("aa")var arr = document.getElementsByClassName("aa")var arr = document.getElementsByTagName("div")var obj
2025-04-14 21:22:21
970
原创 B树、B+树、哈夫曼树
由一圈一圈组成,数据存储在磁道中,磁道又由组成,磁颗粒分N极和S极。:磁盘上有磁头,磁头上有线圈,线圈如果通电,其电流方向不同会使磁头磁极不同(电生磁),根据同极相斥、异极相吸的原理会使磁颗粒N/S极发生改变,磁颗粒磁极的两种分布情况分别代表0、1,实现数据存储。1.2 数据读取磁头上线圈不带电,磁颗粒周围存在磁感线,磁头划过时,磁颗粒的磁极不同,产生的磁感线不同,磁头产生的电流方向不同(磁生电),通过感应电流装置读取电流变化,读出0、1数据。
2025-04-14 19:25:22
998
原创 数据结构—栈、队列
若栈顶的索引值为栈的最大容量-1,则栈满;若栈顶的索引值为-1,则栈空;用布尔值进行判断,若为true则表示栈满/栈空;反之,则为false。在判断栈是否为空时,若使用return给出提示信息,由于提示信息为String类型数据,会导致程序报错,因此,采用。2、限制线性表(数组、链表)中的元素的插入和删除,让插入和删除只能在同一端进行。5、时间复杂度:O(1) —>时间复杂度很好。3、允许插入的一端为栈顶,另一端为栈底。4、只关注添加和删除,不关注查找。抛出错误信息进行提示。
2025-03-23 11:17:36
146
原创 数据结构—树的遍历、删除等操作及代码详解
4、若要添加的数据index.value<num,判断index.right是否为空,若为空,则index.right= node,反之,让index = index.right,继续进行判断;3、若要添加的数据index.value>num,判断index.left是否为空,若为空,则index.left = node,反之,让index = index.left,继续进行判断;2、找要删除节点的父节点parent(考虑是否有父节点,如根节点无父节点)特点:先输出左节点,再输出其父节点与父节点的右节点。
2025-03-20 16:01:30
863
原创 数据结构—树
红黑树是2-3-4树的一种等价表示,可以根据下图所示的节点对应关系将2-3-4树转化为红黑树:以三中2-3-4树举例转化如下:注意:由于2-3-4树中含有两个键三个子节点的节点结构转化为红黑树节点的形式有两种,因此转化而来的红黑树形式不单一。
2025-03-18 15:46:54
964
原创 数据结构—链表操作详解
数据结构中最重要三个结构:数组、链表、树。本篇将详细讲述单链表的数据插入、删除等操作及其对应的代码。链表在内存中不是连续的,这使得其内存管理更加灵活,插入与删除操作更高效。链表由数据域与指针域组成,对单链表而言,数据域(value)用于存储数据元素,指针域(next)用于存放下一个元素的地址。
2025-03-17 15:07:30
691
原创 查询—sql语句
从student表中查找sex字段为“女”的记录,并根据创建时间(即createtime)进行降序(desc)排列,若进行升序排列则使用关键字 asc(可省略)。其中,count(*)中 * 可替换为具体的某一字段,但不统计该字段为null的记录。例2:从student表中查找name字段中第二位为“张” 的记录。可使用的运算符:=、>=、<=、<>(不等于)、!例1:从student表中查找name字段中有“张” 的记录。(从student表中查找age不为14和25的记录)
2025-02-26 14:35:35
773
原创 前端学习—css
注:父级元素relative,子级元素absolute随着浏览器的滚动而滚动,子集元素调整位置时参考物是父级元素,释放自己原来的空间。(4)规则三:同级别长度下,css代码按顺序执行,后面的样式覆盖前面的(不同样式叠加,同一样式覆盖)relative:代表相对模式,随着浏览器的滚动而滚动,参考物是自己原来的位置,保留自己原来的空间;fixed:代表固定模式,不随着浏览器的滚动而滚动,参考物是浏览器,释放自己原来的空间;wrap-reverse:弹性盒子内元素会在必要时换行,但是会按照从下到上的方向换行;
2025-02-08 16:08:29
965
原创 前端学习—css语法
(2)选择ul下的第奇数个元素,如果为li就赋予属性(从1开始,且even为选择第偶数个元素);(2)选择任何元素下第一个元素,若为div元素就赋予属性;(3)选择ul下的第(3n+1)个元素且从n=0开始;(1)选择ul下的第二个元素,如果为li就赋予属性;(1)选择ul下的第一个元素,如果为li就赋予属性;注:若不同选择器需要设置相同样式,可将其组合。即div,p,h1的背景颜色都设置为绿色。
2025-02-08 00:25:38
480
原创 html—表单标签
标签等。其中,<select>元素用于创建下拉列表,<option>元素用于定义列表中的可用选项。<textarea rows="" cols="">多行文本域语文</option><option value="2">数学</option><option value="3">英语
2025-01-23 12:06:03
385
原创 Linux基本命令及定时任务
在xshell中演示:其中,r、w、x分别代表文件的可读、可写、可执行权限。在xshell中演示:在输入rz命令并回车后,在弹出框中找到所需上传的文件,点击打开即可。在xshell中演示:输入上述命令后,在弹出框中找到文件下载到的地址,点击确定即可。(注:使用rz、sz上传、下载的文件一般较小,若文件较大需要使用xftp)输入“i”进入编辑模式(左下角出现“insert”)
2025-01-20 18:15:37
537
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人