- 博客(15)
- 收藏
- 关注
原创 一篇文章学会redis在高并发场景中的应用
一篇文章学会redis在高并发场景中的应用以互联网中常见的秒杀系统作为案例超卖现象的产生如下图所示,若当前库存为1,用户A 抢到商品,但是此时A还未扣减库存(也即没有修改缓存中的库存量时),B也过来抢商品,由于缓存中的值并未修改所以B也是会抢到商品的,因此就会造成超卖的现象。@RestControllerpublic class RedisDemoController { @Autowired private Redisson redisson; @Autowire
2021-05-15 11:50:57
285
原创 RabbitMQ在实际项目中的应用
RabbitMQ在实际项目中的应用业务场景说明:由于一些原因不说明具体业务,大致的业务场景就是,模块A会给模块B发出消息 ,模块B更新本地缓存encache.并且模块B在项目中是集群部署。选用交换机:1、fanout 它会把所有的交换器上的消息路由到所有与该交换器邦定的队列中,不需要BindingKey生效2、direct:它会把消息路由到BindingKey与RoutingKey完全匹配的队列中。3、topic:是direct上的扩展,同样是利用RoutingKey与BindingKe
2021-05-09 11:24:39
1581
原创 程序媛是畜类?
悲惨的程序员记得一直有很多小朋友问我关于程序员的事情,有大学的,有转行的…钱多,话少,死的早…好像就前一句是假的,hahhahaha…敲代码是个什么鬼? 如果用汉语编程的话我觉得每个人都可以是程序员,就跟说话一样,逻辑性强的人说话不漏马脚。写代码也一样,要想代码严谨度更高,少出bug,基本得有一条逻辑过得过去。如果仅仅是想挣点钱过度两年,那大可不必有那么多要求,我感觉只要是个人就可以。 还有一个大家关心的重点就是编程学什么语言好?讲个故事,我刚毕业是写C/C++
2021-03-24 22:03:56
179
1
原创 基于FastDFS—分布式文件系统实现头像更新
基于FastDFS—分布式文件系统实现头像的更 新 (springboot+vue)后端实现分布式文件系统更加稳定 用于管理文件的软件 通常不在一个服务器的节点上1、传统文件系统与分布式文件系统传统:它可以是一个Tomcat或一个单独的计算只用于存放文件 缺点:服务器坏掉之后用户不能上传文件 若计算机磁盘损坏那么会使所有文件丢失2、分布式文件系统:准备多个文件系统,中间需要有一个分布式文件系统来管理所有存放的设备 需要根据文件的大小
2020-09-15 16:20:00
466
原创 认识JAVA反射机制
认识JAVA反射机制定义 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java****反射机制,可以实现以下功能:①在运行时判断任意一个对象所属的类;②在运行时构造任意一个类的对象;③在运行时判断任意一个类所具有的成员变量和方法;④在运行时调用任意一个对象的方法;⑤生成动态代理。获取Class对象pu
2020-07-15 16:43:10
139
原创 深入理解java多线程
深入理解java多线程进程与线程 一个程序就是一个进程,而一个程序中的多个任务被称之为线程。进程是表示资源分配的基本单位,线程是进程中执行运算的最小单位,亦是调度运行的基本单位。多线程优缺点优点:资源利用率更好,程序设计在某些方面更简单,响应更快。缺点:设计更复杂虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般 都更复杂。在多线程访问共享数据的时候,这部分代码需要特别的注意。线程之间的交互往 往非常复杂。不正确的线程同步产 生的错误非常难以被发现,并且重
2020-07-12 21:08:58
246
原创 java容器的深入浅出下
java容器的深入浅出下set接口set,满足集合的无序性,单一性,确定性Set判断两个对象相同不是使用"=="运算符,而是根据equals方法。也就是说,我们在加入一个新元素的时候,如果这个新元素对象和Set中已有对象进行注意equals比较都返回false,则Set就会接受这个新元素对象,否则拒绝。set的子类set最流行的子类有 HashSet,TreeSet下面将对两类进行详细介绍HashSetHashSet是Set接口的典型实现,HashSet使用HASH算法来存储集合中
2020-07-10 21:43:47
148
原创 java容器的深入浅出上
java容器的深入浅出上从数组到容器数组:相同类型的线性存储,重点在于数组是对相同类型数据的有序存储便于查找但由于其单调性不能满足业务需求,即引入容器下面将从几个关键点对java容器做一个全面的了解Collection继承了Iterable超级接口(此接口中只有一个方法Iteratoriterator就是返回一个迭代器Iterator)Interator的功能就是遍历并选择序列中的对象1、迭代器的使用 hasNext(); 检查序列中是否还有元素 Next();获得
2020-07-08 17:37:08
165
原创 面向对象在企业级开发中的应用
面向对象在企业级开发中的应用CRM的分层开发控制层: 将所接受的用户数据传入业务层并且接收业务曾传回的数据给系统页面显示。业务层:对控制层传入的数据进行判断以及业务处理并将数据层返回的数据传给控制层。数据层:接入数据库执行查询等功能,并且将查询的结果返回给服务层下面将以简单的分层操作讲解Crm客户关系管理系统UserController层:public class UserController { //控制层 向业务层发出命令 private UserService u
2020-07-05 14:39:55
256
原创 JAVA面向对象之继承篇
——面向对象之继承——面向对象的三大特性:1、封装 :将共用的,重复的功能进行封装2、继承:一共性抽取个父类,让子类继承 ,子类可以继承父类的属性和方法同样也可以“重写”父类的方法 形式: public class 子类 extends 父类{ }3、多态:按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态 本章将重点给大家介绍继承继承:
2020-07-01 09:48:09
198
原创 揭开面向对象的神秘面纱
·····揭开面向对象的神秘面纱·····1、从面向过程到面向对象 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 面向过程侧重于流程,从头到尾一气呵成牵一发而动全身;而面向对象侧重于模块化,将重复的步骤抽离出来,以组合的方式完成业务需求。2、类与对象 类:模板,模块,图
2020-06-29 20:33:39
159
原创 数组精讲
---------------JAVA数组精讲---------------一维数组:一维数组的定义: 数据类型[] 数组名=new 数据类型[元素个数]eg:int[] arr=new int[4];一维数组的初始化: 默认初始值 1、动态初始化int[] arr=new int[4];arr[0]=1; //给元素赋值arr[1]=2;arr[2]=9;arr[3]=5; 2、静态初始化// 数据
2020-06-28 15:14:53
132
原创 方法的前世今生
---------(java)方法的前世今生-----------方法简介 方法(method),在有些语言中也称之为函数(function),是指具有某种特定功能的代码体。在程序运行过程中如果想要反复使用这种功能,那么就可以将这些代码放入一个大括号中,并且使用相应的名字,当要使用时直接用名字调用即可。方法定义格式 修饰符 返回值类型 方法名称(参数:可为多个){ 代码体 return (返回
2020-06-26 20:31:10
902
原创 九九乘法表之单双循环
··双循环与单循环之九九乘法表··双循环public static void getrow(){ for (int rool=1;rool<=9;rool++){ getCool(rool); } } public static void getCool(int rool){ for (int cool=1;cool<=rool;cool++){ System.out.prin
2020-06-25 19:31:46
607
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人