- 博客(10)
- 收藏
- 关注
原创 ThreadLocal
ThreadLocal是什么 ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 作用场景 1、在进行对象跨层传递的时候,使用ThreadLocal可以避免多次传递,打破层次间的约束。 2、线程间数据隔离 3、进行事务操作,用于存储线程事务信息。 4、数据库连接,Session会话管理。 原理 1.set方法 public void set(
2020-11-13 18:59:25
111
原创 AOP的好兄弟和好儿子
1.AOP是什么 面向切面编程,他是对面向对象的一种补充。 2.AOP有啥用 AOP 有助于我们将不同但是有必要的重复性代码重构为不同的模块。这么做的好处是,我们可以将这些重复性代码集中管理起来复用,而不是每次都要重复写一遍。 这种方法的好处是,代码将会变得更易于维护,从而将业务逻辑从杂乱的代码中脱离出来,专注于业务逻辑代码的开发。我们将这些不同的功能划分到不同的切面中。 也就是,图省事 3.术语 1.通知(Advice) 你想要使用的功能,比如 安全,事物,日志等。 2.连接点(JoinPoint)
2020-11-06 16:59:49
190
原创 redis雪崩 击穿 穿透
redis缓存 缓存流程: ①:用户访问前台 ②:前台访问redis,若redis有用户要访问的数据就直接返回 ③:如果没有就访问数据库,如果查到了就把数据同步到redis,并返回给用户 缓存雪崩 场景,双十一的时候淘宝将很多数据放到redis进行缓存,并设置缓存的失效时间为三小时,当缓存时间到达的一瞬间,大量的请求直接打进数据库,给数据库干崩了。 解决方案: 1.生成随机失效的缓存时间数据; 这样的话缓存不会一瞬间在同一时间失效。 2.让缓存节点分布在不同的物理节点上; 能够保证缓存层服务高可用性 3.
2020-10-30 12:51:07
419
原创 你给我翻译翻译,什么叫做servlet。附带登录项目。
(1)Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序,其主要功能在于交互式地浏览和 修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个 Servlet接口的类,一般情况下,人们将Servlet理解为后者。 (2) Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下 Servlet只用来扩展基于HTTP协议的Web服务
2020-09-19 15:11:55
595
原创 表联结,自联结
#表联结 1.概念: 表联结是一种查询的机制,在一个select中关联多个表进行查询,成为联结。 用人话来说意思就是如果你要查两个数据,但是两个数据在不同的表中,你就把两个表联起来查。 给定一个需求。 A表包含 x y z三个字段 B表包含 x w e三个字段 如何通过x字段查询到两个表中的 y z w e的值并打印呢 #普通方法 select y,z,w,e 需要查询的数据字段 from A,B 查询的表 where A.x = B.x 主外键一致,需指定x(完全限定
2020-09-12 18:46:45
209
原创 泛型
#泛型是啥 泛型,即“参数化类型”。我们在定义方法时有形式参数以此来规定传入参数的类型,那么泛型就是,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。 #泛型的作用 泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方
2020-09-04 15:08:55
128
原创 序列化与反序列化操作
#序列化与反序列化是干嘛用的? 序列化: 把Java对象转换为字节序列的过程。 反序列化:把字节序列恢复为Java对象的过程。 #我们为什么要用? 首先 将数据以对象的形式进行储存是为了方便人来操作与观察,但是计算机不吃这一套,1就是1, 0就是0。所以我们要将我们的看得懂的数据转换成计算机看得懂的数据进行传输数据。 而反序列化就是将这一操作反转,让计算机看得懂的数据转换成我们看的懂的数据。 #什么时候用? ①将对象存储到计算机硬盘中。 ②将对象通过传输给其他计算机。 #怎么用? 第一步: 首先我们需要实现
2020-08-28 15:50:35
179
原创 synchronized,同步
什么是synchronized 1.什么是synchronized: 一种使线程同步的语法。 2.为什么要用synchronized: 如果不用synchronized,那么当多个线程调用同一个任务时,同一时刻不同的线程进入同一个方法中,此时将会造成数据预期之外的错误。 使用synchronized的话可以保证再同一时间只有一个线程可以使用一个方法,或者执行一段代码。 怎么用 3.怎么用synchronized: 两种方式: ①使用同步代码块 ②使用同步方法。 先说啥是同步代码块,上代码 /** *使用同步
2020-08-21 16:32:59
158
原创 空指针异常的问题
空指针异常出现的原因 ①当一个对象不存在(即对象==null)时,调用方法会出现空指针异常。 具体原因是,当对象为null时,堆内存存放对象属性为空,而使用方法时 栈内存地址指向堆内存时发现啥都没有,则会发生空指针异常。 左边是栈内存,右上是堆内存,右下是方法区 所以对象如果为空调用方法就会空指针异常。 ...
2020-08-11 21:00:48
478
原创 分享一个简单的双色球程序
前几天写了个双色球的小程序还挺有意思的。分享一下思路和代码。下图是该程序的需求。 ①可以发现红球和蓝球是分开来判定的,所以可以将红球组成一个数组,蓝球因为只有一个所以可以放一边。 ②我们可以先将随机生成的 红色球 的号码组成一个数组A,再将购买的红色球号码组成数组B ③然后我们将数组A与数组B进行对比,计算出相同号码的个数,接着对蓝色球进行判断。 ④将上面的红色球相同的个数 与 蓝色球是否相同的判断来判定中了几等奖。 不多bb,代码如下。 package com.company.ago; import
2020-08-06 21:26:26
3121
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人