自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

星星,你好!

机遇是留给有准备的仁

  • 博客(151)
  • 收藏
  • 关注

原创 joda踩坑java.lang.IllegalArgumentException: Invalid format: “2024-04-11“ is malformed at “24-04-11“

这种默认格式会受到 Java 虚拟机的默认地区设置的影响。Java 的默认地区设置通常取决于操作系统的地区设置,或者可以在启动 Java 程序时通过设置 user.language 和 user.country 系统属性来指定。然而,如果你希望显式指定日期格式或确保不受本地化的影响,可以使用固定的格式化器,例如 DateTimeFormat.forPattern("yyyy-MM-dd")。Joda-Time 支持本地化,允许你根据用户的地区设置以及你的应用程序的需求来自动调整日期和时间的格式。

2024-04-14 19:57:11 252 1

原创 观察者模式

观察者设计模式(Observer Design Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象,当主题对象状态发生变化时,所有依赖它的观察者都会得到通知并更新。

2024-01-28 16:32:58 561

原创 适配器模式

在我们的应用程序中我们可能需要将两个不同接口的类来进行通信,在不修改这两个的前提下我们可能会需要某个中间件来完成这个衔接的过程。这个中间件就是适配器。所谓适配器模式就是将一个类的接口,转换成客户期望的另一个接口。它可以让原本两个不兼容的接口能够无缝完成对接。作为中间件的适配器将目标类和适配者解耦,增加了类的透明性和可复用性。

2024-01-19 21:28:32 524

原创 Nacos删除配置

假如服务端删除一个配置信息,那客户端本地也同步删除一个;假如服务端所有的配置信息全部删除,那客户端本地的配置也全部删除吗?假如nacos服务端down了,客户端检查拿不到服务端的配置信息,是否也要把本地缓存配置删除?但是当nacos配置了app.check后,就按nacos配置的值来。去掉了nacos的配置,系统读取的仍然是之前nacos里配置的值。因为nacos有客户端本地缓存的机制,会将服务端配置的信息缓存在本地,当服务端信息有变更时,也会同步到本地进行变更。重启服务器后,才能同步这个删除的配置信息。

2024-01-05 17:26:37 465

原创 工厂方法模式

也就是定义⼀个抽象⼯⼚,其定义了产品的⽣产接⼝,但不负责具体的产品,将⽣产任务交给不同的派⽣类⼯⼚。这样不⽤通过指定类型来创建对象了。适⽤于⼯⼚类负责创建对象较少的情况,缺点是如果要增加新产品,就需要修改⼯⼚类的判断逻辑,违背开闭原则,且产品多的话会使⼯⼚类⽐较复杂。和简单⼯⼚模式中⼯⼚负责⽣产所有产品相⽐,⼯⼚⽅法模式将⽣成具体产品的任务分发给具体的产品⼯⼚。简单⼯⼚模式指由⼀个⼯⼚对象来创建实例,客户端不需要关注创建逻辑,只需提供传⼊⼯⼚的参数。

2023-12-31 18:27:08 558

原创 并发踩坑:list共享变量的addAll

list共享变量的addAll,并发修改异常提示:Caused by: org.apache.ibatis.exceptions.PersistenceException:### Error querying database. Cause: java.util.ConcurrentModificationException

2023-12-23 16:36:24 753

原创 idea2021.3版本的Maven不能下载包Could not transfer artifact from/to maven-default-http-blocker (http://0.0.0.

刚换了新mac笔记本,没安装最新的idea,安装的是2021.3版本的。结果项目里的Maven依赖包一直无法下载,提示错误信息:Could not transfer artifact pom:1.0 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [nexus]配置环境macOS 14、jdk11、idea2021.3、idea自带的Maven3.8.1。

2023-12-15 16:17:32 261

原创 Synchronized原理分析

monitor里面有一个计数器,从0开始的。如果一个线程第一次synchronized那里,获取到了myObject对象的monitor的锁,计数器加1,然后第二次synchronized那里,会再次获取myObject对象的monitor的锁,这个就是重入加锁了,然后计数器会再次加1,变成2。这个时候,其他的线程在第一次synchronized那里,会发现说myObject对象的monitor锁的计数器是大于0的,意味着被别人加锁了,然后此时线程就会进入block阻塞状态,什么都干不了,就是等着获取锁。

2023-12-01 15:57:33 74 1

原创 synchronized在代码中的用法

synchronized可以对两种对象加锁:实例对象和类对象。第1是修饰static方法,第2种是直接锁类的class对象;

2023-11-25 18:58:01 107 1

原创 redisson支持高并发的RBucket

RBucket桶可存储任意对象,可在高并发场景下进行唯一更新。示例:创建20个线程并发更新桶对象,只有一个执行了更新操作。及rbucket相关的接口文档。

2023-11-16 15:10:39 523

原创 多线程环境下使用责任链,串链了

责任链串链的问题

2023-11-03 19:43:24 145

原创 volatile是如何保证有序性的

volatile的特性:①保证线程间共享变量的可见性;②防止指令重排序。

2023-10-20 18:41:20 177

原创 volatile为什么无法保证原子性

volatile不能保证原子性,为什么不能保证?

2023-10-13 19:58:30 184

原创 手写Demo体验volatile可见性的作用

在实际的系统运行过程中,如果多个线程,要共用一个变量,有一个线程专门负责修改这个变量;另外一个线程,专门负责读取这个变量的值。可能会产生一个问题:Thread1修改了变量flag的值,但是Thread0,没那么快能感知到flag的变更,可能Thread0用的还是之前的值。

2023-10-08 18:06:36 179

原创 push和pull数据交互模式

push和pull,longpolling长轮询。

2023-07-08 16:47:35 613

原创 dubbo服务请求超时

dubbo服务请求超时,Establishing SSL connection without server's identityverification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+requirements SSL connection must be established by default if explicit optionisn't set.

2023-03-19 10:58:04 710 1

原创 并发编程(一)内存模型

开始挖坑并发编程系列文章,那为什么要有并发编程,我们都知道是为了提高CPU的利用率:有的线程是CPU密集型,有的线程是IO密集型。在单核CPU的情况下,有时候为了提高IO密集型线程对CPU的利用率,采用多线程策略,让操作系统调度。如果是多核CPU,更要多个线程,利用每一个核。CPU的核数和线程个数的设置是有关系,既不要让CPU空余时间太多,又不要撑爆CPU,可以采用以下算法,也可以采用压测法,根据测试环境的数据去类比生产环境,进行评估。多线程场景中的并发问题包括可见性、原子性...

2021-06-27 00:00:46 182 2

原创 常见的算法排序

        无论是开发还是架构,是java还是人工智能,算法都是基础。每种算法的关键点,与其他算法的区别联系,都要宏观理解掌握。计算机算法排序包括内排序(内存)和外排序(磁盘IO),下文主要针对内排序,对比分析。        不同的排序算法有着不同的时间开销和空间开销,比如常用的快速排序和插入排序,需要对序列中的数据进行比较,这样的统称为“基于比较的排序”,它的时间下限是不能超越 O(N...

2018-12-07 15:53:13 362

原创 三门问题

三门问题被大众熟知是源于美国的一档电视游戏节目,因主持人的名字,又叫蒙提霍尔问题。参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机会?如...

2018-11-17 11:03:52 998 1

原创 学习金字塔

一、概念        第一种学习方式——“听讲”,也就是老师在上面说,学生在下面听,这种我们最熟悉最常用的方式,学习效果却是最低的,两周以后学习的内容只能留下5%。第二种,通过“阅读”方式学到的内容,可以保留10%。第三种,用“声音、图片”的方式学习,可以达到20%。第四种,是“示范”,采用这种学习方式,可以记住30%。第五种,“小组讨论”,可以记住50%的内容。第六种,...

2018-08-16 20:28:39 354 1

原创 物理四神兽-芝诺的龟

芝诺悖论:为什么阿喀琉斯永远追不上乌龟?永远是什么意思?芝诺钟和普通钟的区别?时间和时间度量。

2018-08-16 20:03:45 5548

原创 浅谈同步异步、阻塞非阻塞

同步就是:如果有多个任务或者事件要发生,这些任务或者事件必须逐个地进行,一个事件或者任务的执行会导致整个流程的暂时等待,这些事件没有办法并发地执行;异步就是:如果有多个任务或者事件发生,这些事件可以并发地执行,一个事件或者任务的执行不会导致整个流程的暂时等待。同步和异步着重点在于多个任务的执行过程中,一个任务的执行是否会导致整个流程的暂时等待;而阻塞和非阻塞着重点在于发出一个请求操作时,如果进行操作的条件不满足是否会返会一个标志信息告知条件不满足。

2017-08-31 21:15:49 337

原创 Java IO与NIO

NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。

2017-08-31 20:49:40 335

原创 GC算法与种类

Garbage Collection 垃圾收集。JVM的垃圾回收机制使开发者不必过多考虑内存的申请与释放,这样降低了软件开发的成本和语言的学习成本。GC算法包括:引用计数法、标记清除、标记压缩、复制算法。

2017-07-30 20:57:24 374

原创 jvm参数配置

针对jvm的Trace、堆、栈的一些基本参数配置,实用性和使用性佳。

2017-07-30 16:12:01 355

原创 SpringBoot 定时任务

定时任务的实现方式 (1)Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。 (2)使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。 (3) Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quar

2017-06-10 19:41:10 381 1

原创 模板引擎 freemarker

模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。

2017-06-10 19:19:54 491

原创 SpringBoot + devtools热部署

devtools是为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间。 更深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创

2017-06-10 19:08:37 607 1

原创 Spring Boot从原理到实战

Spring Boot是spring的升级版,但并不是对spring功能上的增强,而是提供了一种快速使用spring的方式:开箱即用,没有代码生成,也无需XML配置。

2017-06-10 18:59:21 17933 4

原创 spring quartz执行两次

描述:服务器部署了2个定时任务:签约、代扣。发现日志里的记录都是double;在本地开启定时任务,打印的日志正确,是一份;    定位:服务器部署的问题,造成double执行;服务器的tomcat配置server.xml文件,部分如下:<Host name="localhost" appBase="webapps" unpackWARs="true" auto

2017-03-24 12:37:44 622 1

原创 J2EE性能优化(三)Servlet

take a seat

2016-07-31 22:26:51 587 2

原创 J2EE性能优化(二)数据库

1、保证SQL返回的数据不超出内存限度  需要保证进行查询时的条件不会失效,如下代码就有可能出现查询条件失效的情况:// 已经获取到 Connection;String sql=" SELECT FILED1, FIELD2 FROM SOME_TABLE WHERE NAME LIKE ?";PreparedStatement ps=conn.prepareStatement(s

2016-07-31 22:24:36 649 2

原创 J2EE性能优化(一)

用java进行开发,尤其是一些大型企业项目,性能调优的工作很重要。在设计应用程序的时候,应该始终把性能放在考虑范围内。一些应用程序设计中的不当做法,在小数据量,执行次数少的情况下,可能对性能造成的影响并不明显。但是在大数据量、大量重复执行的生产环境中,对性能却会造成明显的负面影响。(一)String操作  用StringBuffer.append来代替String+=累

2016-07-31 22:08:25 581 1

原创 从ActiveMQ原理到实例

在介绍activemq之前,先简单介绍JMS,它是J2EE的13个规范之一,提供的是消息中间件的规范。JMS包括以下基本构件:连接工厂,是客户用来创建连接的对象,ActiveMQ提供的是ActiveMQConnectionFactory;连接connection会话session,是发送和接收消息的上下文,用于创建消息生产者,消息消费者,相比rocketMQ会话session是提供事务

2016-07-14 16:12:46 30980 2

原创 安全算法(二)对称加密和非对称加密

与对称加密算法不同,非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法。典型的RSA非对称加密。   RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MIT)的三位学着:Ron Rives

2016-06-30 20:35:59 1289 1

原创 web攻击手段(二)CRSF

CRSF是跨站请求伪造:Cross site request forgery,是一种对网站的恶意利用。它和XSS跨站脚本攻击的不同是,XSS利用站点内的信任用户;CRSF则是通过伪装来自信任用户的请求,来利用受信任的网站。举例就是:攻击者盗用了你的身份,以你的名义向第三方信任网站发送恶意请求,如发邮件,发短信,转账交易等。

2016-06-30 20:08:39 1567

原创 安全算法(一)数字摘要

数字摘要,也叫消息摘要。它是一种单向的,不可逆的加密算法。发送方:采用单向hash函数对消息进行计算,得到摘要。发送消息和摘要。接收方:把接收的消息,按着同样的hash函数计算,新产生的摘要和发送来的原摘要进行对比。如果2个摘要不一致,说明消息不完整了。

2016-06-20 17:04:03 3609 3

原创 web攻击手段(一)XSS

XSS攻击,跨站脚本攻击Cross Site Scripting,为了不和样式表的CSS的缩写混淆,所以跨站脚本攻击缩写为XSS。  它是指攻击者在网页中嵌入恶意脚本程序,当用户打开网页时,恶意脚本就开始在用户客户端的浏览器上执行,以盗取客户端的cookie、用户名密码,下载执行病毒木马程序,甚至获取客户端admin权限。

2016-06-07 11:08:52 486 2

原创 互联网安全与黑客

一个可以查询个人信息是否被泄露的地址。

2016-05-31 21:42:16 557 3

原创 互联网安全(一)摘要认证

经由HTTP协议进行通信的数据大多都是未经过加密的明文,包括请求参数、返回值、cookie、head等数据,因此,外界通过对通信的监听,便可以轻而易举地根据请求和响应双方的格式,伪造、修改、窃取信息。而且相对TCP来说,HTTP的通信更易于攻击。   所以,为了防止在通信的过程中,数据被中途拦截和修改;或者虚假的客户端冒充正常的客户端发起请求,非法获取数据;再或者是客户端与虚假的服务端进行通信,将个人信息泄露给恶意的攻击者,需要对请求和响应的参数及客户端的身份进行认证,以保住正确信息发送给了合法的接收者

2016-05-31 21:28:23 498 3

空空如也

空空如也

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

TA关注的人

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