- 博客(45)
- 收藏
- 关注
原创 认识Redis
谈到Redis,就必然离不开分布式系统,这也是为啥第一篇文章要介绍分布式.还记得冷热分离架构吗---将热点数据存储到存取速度更快的缓存中,这个缓存就可以使用Redis实现.
2024-10-21 14:36:49
1673
5
原创 浅谈分布式架构
写过web项目的程序猿都知道,web服务器可以分为应用服务器和数据库,用户提交请求给应用服务器,应用服务器使用数据库查询相关信息,然后返回响应.
2024-10-20 21:51:41
532
原创 MyBatis使用教程详解<下>
比如我们要填写下面这张基本信息表,其中昵称是必填项.可以看到, 客户可能会选择不同的信息填写.如果程序猿要针对每个标签都判断一下是否有填写内容的话,未免太过麻烦.在这种情况下该怎么插入客户的信息呢?动态SQL就是根据传入参数的不同,编译不同的SQL语句.MyBatis提供了几个标签帮助我们实现动态SQL.因为使用XML的方式实现动态SQL比较简单,所以下面主要使用XML的方式进行展示,如何使用注解进行动态SQL将会在本文末尾稍加演示.
2023-11-28 16:59:21
234
原创 MyBatis使用教程详解<上>
Mybatis是一个持久层框架,用于简化JDBC的操作MyBatis原本是Apache的一个开源项目ibatis,后来更名为MyBatis上面我们提到了一个概念----持久层不知道小伙伴们有没有想到五大注解的关系,类似于下图其中MyBatis就是Mapper层的框架,是基于JDBC的封装,可以帮助我们更方便的操作数据库.
2023-11-28 16:59:10
238
原创 从Spring说起
前面还提到过,方法注解用来解决针对同一个类,无法注入多个对象的问题.它是怎么解决的呢?来看一下代码~@Bean//在实际项目中,这个user是从数据库中取出来的,不是我们new的user.setName("张三");@Beanuser.setName("王五");这时候,如果在getBean方法中传的是类型参数的话,就会触发NoUniqueBeanDefinitionException异常因此我们在使用getBean方法的时候还应该传入名字.
2023-11-05 09:39:00
222
原创 Web网站开发----Http协议&Tomcat服务器
HTTPS也是一个应用层协议,在HTTP协议的基础上引入了加密层.HTTP协议内容都是按照文本的方式明文传输的,这就导致在传输过程中出现一些数据被篡改的情况.加密就是把明文(要传输的信息)进行一系列变换,生成密文.解密就是把密文进行一系列变换,还原成明文.在加密和解密的过程中,往往需要借助另外的数据辅助进行,这样的数据称为"密钥".诸位经常看宫斗戏的老表应该都知道,后宫的娘娘倍感孤独时,用熬煮的米汤写下自己的思念,宫外的情郎将信浸入海带的煮出液中(含碘),就会显现出字迹.
2023-10-07 14:46:44
201
原创 网络原理入门--UDP/TCP详解(中篇)
比如进入QQ的登录界面,客户端需要输入账号和密码,服务器就需要验证账号是否存在,密码是否正确...给客户端反馈登陆成功or失败.
2023-09-18 12:06:17
158
原创 网络编程--UDP/TCP
网络编程,指网络上的主机,通过,以编程的方式实现。只要满足进程;所以即便是同一个主机,只要是不同进程,基于网络来传输数据, 也属于网络编程 (比如在同一部手机上登陆的两个微信号相互发送消息)。特殊的,对于开发来说,在条件有限的情况下,一般也都是在一个主机中运行多个进程来完成网络编程.
2023-09-15 21:18:20
133
原创 网络原理入门(上篇)
协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。就好比两个人相互交流,他们使用的语言就是"协议"
2023-09-13 14:45:34
98
原创 文件操作&IO流
我们先来认识狭义上的文件(file)。针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概念,就类似办公桌上的一份份真实的文件一般。文件除了有数据内容之外,还有一部分信息,例如文件名、文件类型、文件大小等并不作为文件的数据存在,我们可以把这一部分数据视为文件的原信息.
2023-09-12 20:53:52
79
原创 线程知多少~(下篇)
CAS:全称,字面意思:”比较并交换,一个CAS涉及到以下操作:我们假设内存中的原数据V,旧的预期值A,需要修改的新值B。1.比较A与V是否相等。(比较)2.如果比较相等,将B写入V。(交换)3.返回操作是否成功。CAS伪代码:(下面写的代码不是原子的真实的CAS是一个原子的硬件指令完成的这个伪代码只是辅助理解booleanCASaddressswapValue。
2023-09-07 14:32:14
82
原创 线程安全问题&使用范例--多线程(中篇)
因为创建/销毁一个线程的开销比较大,因此"线程池"会提前创建好线程,需要的时候直接从池里取即可;一个线程被销毁时,并不是真正的销毁,而是把它放回池里以备下次使用.那么问题来了,为啥从池子里拿/放线程更快呢?这就涉及到了"用户态"和"内核态"来拿餐厅举个栗子~自助餐厅就好比是用户态代码,顾客想享用的食物自己去拿就可以了;如果是普通的餐馆,顾客就需要告诉服务员自己想吃什么,然后交给后台的大厨去做.但是大厨收到的菜单并不是只有我们这一份,因此我们点的菜什么时候去做是由大厨随机决定的.
2023-09-04 10:48:31
132
原创 堆--->优先级队列
堆3.3.2 比较对象相等那么对象该怎么比较呢?有些同学肯定会发现,直接使用"=="比较对象时,编译器并不报错如果两个人的名字相同,年
2023-04-27 20:52:10
886
2
原创 认识栈和队列
一种特殊的线性表,其。进行数据插入和删除操作的一端称为栈 顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO)的原则压栈:栈的插入操作叫做进栈压栈入栈,。出栈:栈的删除操作叫做出栈。。栈在生活中是十分常见的,比如经常乘坐的电梯,就满足先进后出的特点。
2023-04-15 15:05:05
72
原创 线性表&顺序表&ArrayList
ArrayList的底层结构就是前面说的顺序表,在集合框架中,ArrayList是一个普通的类根据上面的图片可以知道ArrayList是泛型类,在实例化的时候必须传入泛型参数ArrayList实现了RandomAccess接口,表示ArrayList支持随机访问ArrayList实现了Cloneable接口,表示ArrayList可以克隆ArrayList实现了Serializable接口,表示ArrayList可以序列化。
2023-04-05 19:01:55
156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人