自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 时间格式YYYY-MM-DD‘T‘hh:mm:ssZ

为什么同样的时间格式生成就是2024-04-118T05:45:15+0800,而校验理想的是:2024-04-18T05:45:15+0800?

2024-04-27 17:50:46 295

原创 redis 红锁

并且,每个节点执行完tryLock()尝试获取锁之后,无论是否获取锁成功,都会判断目前从各个节点获取锁已经消耗的总时间,如果已经等于最大等待时间,则认定最终申请锁失败,需要对成功加锁集合 acquiredLocks 中的所有锁执行锁释放,然后返回false。线程2来到了redis抢占锁,因为3挂了,1,2有锁,只有4和5可以加锁,因为我们注册的时候是5台,4和5这两台不满足n/2+1原则,抢占锁失败。当redis3挂了,此时线程1获取到了锁,正在顺序执行,难道用了红锁一定能保证加的锁的一定不丢失吗?

2024-03-09 17:29:17 381

原创 Redisson实现分布式锁原理及源码分析

单体应用中,可以通过synchronized等相关锁实现线程间共享数据的独占,但是在分布式环境下,线程锁是不能跨应用的,所以需要通过一个分布式存储组件来实现分布式锁。常用的分布式锁实现组件有Redis和ZooKeeper,由于Redis是AP(可用性)架构的,ZooKeeper是CP(一致性)架构的,根据实际的应用场景,两种实现方案都可以。大多数场景下,用Redis实现分布式锁就可以了,主要是Redis性能比ZooKeeper更好,实现的分布式锁效率更高。

2024-03-09 16:37:58 252

原创 【Java并发编程】导致JVM内存泄露的ThreadLocal详解

返回该线程局部变量的初始值,该方法是一个protected的方法,显然是为了让子类覆盖而设计的。key 使用强引用:对ThreadLocal对象实例的引用被置为null了,但是ThreadLocalMap还持有这个ThreadLocal对象实例的强引用,如果没有手动删除,ThreadLocal的对象实例不会被回收,导致Entry内存泄漏。需要指出的是,当线程结束后,对应该线程的局部变量将自动被垃圾回收,所以显式调用该方法清除线程的局部变量并不是必须的操作,但它可以加快内存回收的速度。

2024-03-04 16:32:13 597

原创 openfegin调用

这边也是第三部分的代码截图,只是上面最后的一丢丢截图截不下了,可以看到,这边最后是调用了CompleteFuture#join方法,这个方法会堵塞主线程,直到resultFuture结果返回,也就是说处理reponse的过程是异步的,但是返回结果还是同步的,在最后结果处理结束之前,主线程都是堵塞的。最后大家可能会有疑问,哇,这个处理reponse的AsyncResponseHandler,看这个名字是异步的呀,那OpenFeign难道也是异步返回结果的么?答案是否定的,具体我们来看下代码。

2023-12-10 18:34:14 81

原创 gateway笔记

全局过滤器,不需要在配置文件中配置,作用在所有的路由上,最终通过GatewayFilterAdapter包装成GatewayFilterChain可识别的过滤器,它为请求业务以及路由的URI转换为真实业务服务的请求地址的核心过滤器,不需要配置,系统初始化时加载,并作用在每个路由上。: 需要通过spring.cloud.routes.filters 配置在具体路由下,只作用在当前路由上或通过spring.cloud.default-filters配置在全局,作用在所有路由上。上面的示例是指,请求时间在。

2023-11-28 21:30:56 33

原创 解题第一天

数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASCII码由小到大排序输出。程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001。

2023-11-11 16:01:03 38

原创 ssm框架

1. mybatis是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。采用 ORM 思想解决了实体和数据库映射的问题,**对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我们不用与 jdbc api 打交道,就可以完成对数据库的持久化操作。...

2023-05-29 15:55:51 163

原创 java爬虫

网络爬虫的基本概念网络爬虫是什么?网络爬虫是一种运行在互联网上用来数据的自动化程序和脚本分解出三个点:* 互联网上都有哪些数据?* 形形色色的网站组成(新闻|贴吧|知道|音乐|图片|视频|地图|文库)* 电商网站(用户|商品|订单|支付|物流|评论|分享)* 微博(发送信息|转发|点赞|关注|被关注)* 怎么去获取?通过什么样的技术手段去获取* 网站的本质就是服务端程序,通过客户...

2023-05-29 15:54:59 91

原创 java8 分组排序数据丢失

java8分组排序

2022-07-22 22:28:15 504 2

原创 激光推送样例

激光推送public class JpushClientUtil { private static final Logger log = LoggerFactory.getLogger(JpushClientUtil.class); private final static String appKey = "42915a1c8f8cfe1f06f1e439"; private final static String masterSecret = "d31f9ca1b426f976c

2021-10-10 17:23:11 94

原创 Cookie&&Session&&jsp

会话技术:1.1概念:日常生活中的交流,一连串的你问我答的过程就是会话。b/s架构中的会话:从浏览器第一给服务资源发送请求,建立会话,直到一方断开为止。1.2功能:在一次会话方位内的多次请求之间共享数据1.3会话技术:客户端会话技术:Cookie服务器端会话技术:Session2.Cookiel 概念:客户端会话技术,将数据保存到客户端2.1快速入门常...

2019-08-07 15:52:28 99

原创 JDBC Template&&连接池

连接池连接池其实就是一个容器(集合),存放数据库连接的容器。优点**节约资源,减轻服务器压力提高连接复用性,用户访问高效**1**. DataSource**功能* 获取连接:Connection getConnection();* 归还连接:connection.close(); 我们大家已经养成了习惯今天使用连接池技术后,此方法的调用不再是关闭连接,而是归还连接到容器(连...

2019-03-17 17:21:42 296

原创 JDBC

JDBC概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。2. 快速入门:步骤:在MySQL中导入sql脚...

2019-03-17 16:46:14 114

原创 HTML

webJavaWeb:使用Java语言开发基于互联网的项目软件架构:1.C/S: Client/Server 客户端/服务器端* 在用户本地有一个客户端程序,在远程有一个服务器端程序* 如:QQ,迅雷…* 优点:1. 用户体验好缺点:1. 开发、安装,部署,维护 麻烦2.B/S: Browser/Server 浏览器/服务器端只需要一个浏览器,用户通过不同的网址(U...

2019-03-17 15:37:52 169

原创 HTML&&CSS

1.1 表格标签table – 一个表格caption – 表格标题tr – 一行td – 普通单元格th – 标题单元格 特点:居中且加粗table常用属性border:边框width:宽度align:表格对齐方式cellspacing:单元格的间距,一般设置为0cellpadding:单元格的内边距,一般设置为0tr常用属性align:内容的对齐方式height:行...

2019-03-17 11:14:20 157

原创 JavaScript&&CSS

CSS常用属性1)字体和文本font-size:字体大小font-weight:字体粗细 " bold"粗体font-style:样式 "italic"斜体font-family:类型2.文本color:颜色line-height:行高text-align:内容对齐方式text-decoration:装饰取值:no...

2019-03-17 10:29:45 186

原创 多线程

1.并发与并行并发(JAVA):指两个或多个事件在同一时间段发生。并行:指两个或多个事件在同一时刻发生(同时发生)。2. 线程与进程进程:有独立的内存空间,是系统运行程序的基本单位,但运行的是线程线程:进程内部的执行单元,一个进程至少有一个线程或多个线程一个程序运行至少有一个进程,一个进程中包含多个线程。线程调度:所有线程轮流使用cpu,平均占用时间抢占式调度(JAVA):优先级高...

2019-03-03 23:03:41 113

原创 io流

IO流分类:根据流向分为:输入流****和输出流。根据格局数据类型分为:字节流和字符流。字节流字节流的输出流:public FileOutputStream(File file) :创建文件输出流以写入由指定的 File对象表示的文件。 目的地是一个文件夹的路径FileOutputStream fos1 =new FileOutputStream(new File("09_IOAn...

2019-03-03 23:03:01 156

原创 Collectios list set

java.util.Collection接口所有单列集合的最顶层的接口,里边定义了所有单列集合共性的方法任意的单列集合都可以使用Collection接口中的方法共性的方法:public boolean add(E e): 把给定的对象添加到当前集合中public void clear() :清空集合中所有的元素。public boolean remove(E e): 把给定的对象在...

2019-02-20 14:09:31 146

原创 MAP

java.util.Map<k,v>Collection 中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Collection 中的集合称为单列集合, Map 中的集合称为双列集合。集合Map集合的特点:1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)2.Map集合中的元素,key和value的数据类型可以相...

2019-02-20 11:09:34 93

原创 Java异常处理的五个关键字:try、catch、finally、throw、throws

java.lang.Throwable:类是java语言中所有错误或异常的超类:Exceptio:编译期异常,进行编译(写代码)java程序出现异常。RuntimeException:运行异常,java程序运行过程出现问题。相当于程序得了一个小毛病,把异常处理掉,程序可以执行。Error:错误错误就相当于程序得了一个无法治愈的毛病,必须修改源代码,程序才能执行。异常产生的过程:如果...

2019-02-20 10:44:30 3893

原创 object math System

1.Arrays1.1冒泡排序: int[] arr = {24, 69, 80, 57, 13}; //用arrayToString方法对数组进行遍历 System.out.println("排序前:" + arrayToString(arr)); //每次循环会把数组中的最大值放到最右边 //...

2019-02-15 08:46:39 129

原创 日期

1.包装类什么是包装类:基本数据类型所对应的引用数据类型就是包装类相互转换:JDK1.5以后自动装箱和拆箱[基本类型 包装类int Integerchar Character其他 首字母大写5.2 自动装箱与自动拆箱装箱...

2019-02-14 15:21:34 105

原创 多态 接口 抽象类

多态:同一个对象在不同时刻表现出来的不同形态。前提:List item存在继承/实现关系存在方法重写父类引用指向子类对象多态中成员访问特点使用多态时,访问成员变量的特点:编译看左边,运行看左边使用多态时,访问成员方法的特点:编译看左边,运行看右边public class Animal{public int age=40;public void eat(){ Sys...

2019-01-28 09:17:02 130

原创 继承 修饰符

1.继承继承是面向对象的三大特征之一,可以使子类具有父类的属性和方法, 还可以在子类中重新定义。继承:是通过extends实现的。格式:class 子类extends 父类(){}public class fu { public void show(){ System.out.println("父类方法show被调用"); }}//子类集成父类的格式p...

2019-01-27 11:02:02 345

原创 总结基础班的基本所有东西

ArrayList的使用步骤java.util.ArrayList:该类需要import导入后使用。 ,表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似 不能写,但是存储基本数据类型对应的包装类型是可以的...

2019-01-25 14:59:53 158 1

原创 day08

String:Java程序中的所有双引号字符串, 都是字符String类的对象,在java.lang包下所以不需要导包。特点是:1.字符串是不可变得, 它们的值在创建后不能被更改。2.虽然String的值是不可变得, 但是他们能被共享。3.字符串效果上相当于字符组(插入[],但是底层原理是字节数组(byte[]).常用构造方法:方法名 ...

2019-01-20 22:50:16 151 2

原创 day04

数组数组:一种容器,可以存放多个数据值(数据类型必须统一)。特点:数组时一种引用类型,数组的长度在程序运行期间不可改变。格式定义:动态初始化:数据类型[] 数组名称=new 数组类型[数组长度];可以分成两步骤:int arrayA;arrayA=new int[5];静态初始化:数据类型[] 数据名称=new 数据类型[]{元素1,元素2}可以分成两步骤:...

2019-01-06 21:43:50 134

原创 day01-2

day1-2关键字的特点:A. 组成关键字字母全小写。B.常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观,所以我们不需要去死记硬背,在今后的学习中重要的关键字也会不断的出来。变量定义格式;数据类型 变量名=初始化值;注意:格式是固定的,记住格式,以不变应万变数据类型:基本数据类型:整数,浮点,字符,布尔。引用数据类型:类,数组,接口。常量:在程序执行的过程...

2019-01-05 21:23:10 96

原创 基础day03

基础标题day 31.顺序结构:public class DemoOrder { public static void main(String[] args) { System.out.println("开始"); System.out.println("语句a"); System.out.println("语句b"); ..

2019-01-05 19:51:46 142 1

空空如也

空空如也

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

TA关注的人

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