自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java中方法引用与Lambda区别——为什么方法引用会报空指针,而Lambda不会

Java中方法引用和lambda表达式之前的区别,实例化的时机

2024-09-25 16:21:57 234

原创 湛江旅游整理

湖光、绿树、奇花、异草,深受游人骚客的喜爱。螺岗小镇属于湛江遂溪岭北,螺岗岭分南北两峰,海拔分别为220、233米,位于广东省湛江市西南25公里、遂溪县城南15公里处207国道旁,北自岭北镇南药场起,往南一直到迈坦附近,东自岭北圩起,往西至螺岗岭西麓,分布在岭北、城月、洋青三镇和雷州林业局,面积约1000亩,其中水果种植和园地800亩,特产手信街、餐厅、别墅客栈占地200亩。位于市区霞山海滨大道南端东侧,这里有细白的沙滩,湛蓝的挺拔的椰树,如茵的芳草,鲜艳的花卉,富有亚热带海洋风光,被称为湛江市客厅”。

2023-07-31 14:24:18 1331 1

原创 项目的架构

随着项目规模的变大,单体架构越来越复杂,开发发布周期变长;微服务架构可以独立部署,服务变小了,更容易维护,更容易独立扩展;故障之后也能更好的故障隔离;

2022-11-25 11:07:14 224 1

原创 Win10无法保存hosts,程序员的解决方案

程序员的方式解决无法修改hosts文件的问题

2022-10-08 16:50:21 554

原创 一网打尽各种常量池

一网打尽各种常量池

2022-07-15 22:27:38 242

原创 Redis面试总结

个人觉得下面这个总结是比较全的:参考链接:(74条消息) 2W字!详解20道Redis经典面试题!(珍藏版)_互联网全栈架构的博客-CSDN博客https://blog.csdn.net/weixin_44742132/article/details/120558955?spm=1001.2014.3001.550220道Redis经典面试题!(珍藏版) - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/427496556...

2022-05-24 15:18:02 109

原创 RocketMQ面试题总结(持续补充)

RocketMQ发送延时消息时先把消息按照延迟时间段发送到指定的队列中(rocketmq把每种延迟时间段的消息都存放到同⼀个队列中)然后通过⼀个定时器进⾏轮训这些队列,查看消息是否到期,如果到期就把这个消息发送到指定topic的队列中,这样的好处是同⼀队列中的消息延时时间是⼀致的,还有⼀个好处是这个队列中的消息时按照消息到期时间进⾏递增排序的,说的简单直⽩就是队列中消息越靠前的到期时间越早。2.为什么RocketMQ不用Zookeeper而要自己实现一个NameServer来进行注册?

2022-05-11 22:16:20 1441

原创 RedLock存在的问题

问题1: 宕机重启之后,2个客户端拿到同一把锁。假设5个节点是A, B, C, D, E,客户端1在A, B, C上面拿到锁,D, E没有拿到锁,客户端1拿锁成功。 此时,C挂了重启,C上面锁的数据丢失(假设机器断电,数据还没来得及刷盘)。客户端2去取锁,从C, D, E 3个节点拿到锁,A, B没有拿到(还被客户端1持有),客户端2也超过多数派,也会拿到锁。解决方案- 延迟重启问题2: 时钟跳跃刚上面讨论的方案严格依赖时钟,而5台机器上面的时钟是可能有误差的。时钟跳跃的意思就是:实际时间只过

2022-04-27 21:02:27 2311

原创 Redisson分布式锁原理及自定义分布式锁

Redisson实现Redis分布式锁的底层原理网上很多关于Redisson实现Redis的分布式原理的分析文章,我这里就不重复写了,看到的比较好的一遍文章如下http://t.csdn.cn/VagLh;基于Redis自定义实现分布式锁鉴于目前基于redission的封装过重,并且开发同学使用redission需要自己释放锁,为了尽可能的避免问题,我们自己定义一套分布式锁模板。但是redis锁不一定靠谱(主从切换时有问题),如果考虑可靠性的话建议使用zk实现的分布式锁。我没使用StringRe

2022-04-27 11:31:58 314

原创 logback控制台输出导致进程假死引发的血案

记一次线上logback日志的问题,微服务调用时客户端调用服务端超时,检查线上机器后发现机器没有什么问题,GC也正常,于是使用jstack排查一下通过HeapDump - Java线程Dump分析分析工具分析dump文件,发现大量线程等待锁“0x000000008089bab8”,而该锁被线程“XNIO-1 task-4”占用,如下图进一步查看线程“XNIO-1 task-4”,发现是控制台输出网上查询后,发现logback打印到console确实会出现死锁现象,原因在于buffer

2022-03-11 09:15:23 2002

原创 网络数据转换为图片

base64数据转换为jpg:public void genJpg() throws IOException {// base64 数据 String imgData="iVBORw0KGgoAAAANSUhEUgAAAMEAAAF6CAYAAACgODyeAAAAAXNSR0IArs4c6QAAIABJREFUeF7tXQV4VEcXvbhDkEKhuJfipbi7O8GTQEiCBA0aPLgFSHCCB3d3p1ihOBQo2tLiTgX9v3PT9/7dZJPdtyQvy8u

2021-12-24 16:14:07 7845

原创 Java 文件读写

使用try-with-resource方法:public static void main(String[] args) throws Exception { String oldfile = "E:\\oldfile.txt"; String newfile = "E:\\newfile.txt"; try(FileInputStream fin = new FileInputStream(oldfile); FileOutputStream fout=new FileOutputStre

2021-10-16 22:05:17 78

原创 java -jar启动jar包时携带参数不起效的解决办法

在测试springCloud例子的时候,将项目打成jar包,并通过java -jar xxxxx.jar --spring.profiles.active=xxx不能实现命令行控制通过各种资料的查询,发现要将命令改成这样子:java -Dspring.profiles.active=xxx -jar xxx.jar原因分析:命令行的参数是通过 main函数中的args参数接收的,立马去查看启动类,果然。public class EjlerpSaleOrderDtsSer.

2021-07-27 10:42:02 2236

原创 Java 时间戳转换为时间的坑

请看下图:如果时间格式字符串中的小时使用小写的“h”,则对12点进行转换时,会将12点转换为00;如果将小写“hh”换成大写的“HH”则不会有此问题;

2021-07-02 16:13:44 690

原创 Maven工程下的某一个Module无法编译resources中的xml文件到classes目录下

如下图所示,我在编译该Moudle时,无法将resources下的beans.xml文件自动编译到target/classes目录下,导致我的工程无法启动,找不到beans.xml文件。Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [beans.xm

2021-01-06 21:28:15 491 1

原创 访问共享的可变数据

对可变共享数据的访问如果不能同步,可能会出现预料之外的结果。但是下面这个例子就很容易导致误判,且很多帖子上的解释不是那么的准确。public class StopThread { private static boolean stopRequested; public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(new Runnable

2020-11-26 21:27:12 115

原创 公平锁和非公平锁如何理解

非公平锁与公平锁的主要区别是看在加锁时会不会去抢锁;公平锁:当线程到来时,首先去判断当前线程是否有资格加锁(即判断是否有线程在等待队列,如果没有,则有资格);如果没有资格,则再次尝试是否有资格,没有资格则进入等待队列;非公平锁:当线程到来时,先去尝试加锁(不管是否有线程在等待队列),如果加锁失败,则再次尝试加锁,若加锁失败,则进入等待队列;只要进入等待队列就没有公平和非公平之分了,之后获取锁的顺序就是队列的出队顺序了。(synchronized是倒序唤醒——唤醒的时候是按阻塞顺序倒序唤醒的,Re

2020-11-21 20:38:21 349

原创 生产者消费者

public class ProducerConsumer<T> { final private LinkedList<T> lists = new LinkedList<>(); final private int MAX = 10; private int count = 0; private Lock lock = new ReentrantLock(); private Condition producer = lock.

2020-11-18 10:16:25 99

转载 算法系列:求幂算法

1.快速求幂算法在这篇文章我会展示怎样通过求一个数的幂的基本思路,来引导我们发现一些抽象的东西比如半群和含幺半群。有一个很有名的对一个数求幂的算法,也就是说,求一个数x的n次方或者这样简单表示:x^n。Donald Knuth在TAOCP的4.63节 求幂值中提出这个算法。这个算法很简单的实现就是x乘以自己n次,但是在这里当然会提供一种比这种方式更快的算法。正在谈论的算

2014-08-07 21:06:50 1443

转载 B/S、C/S、SaaS到底有什么区别?

这个世界变化实在是快,各种新名词层出不穷,让人眼花缭乱。IT业更是不甘落后,不断发明出各种新名词、新概念,让企业摸不着头脑。目前大大小小的软件公司都在谈B/S,C/S,SaaS,并都极力鼓吹自己所采用架构的好处,极力数落其它架构的种种不好,让人分不清到底哪种观点是正确的。事实上事情没有这么复杂,透过现象看本质,你会恍然大悟,原来很多东西只不过新瓶装老酒而已。B/S(Browser/Server

2014-07-17 10:37:28 3234

简易聊天系统

这是一个非常简单的聊天系统,自己写的一个小项目。

2013-06-28

swing 树形菜单显示系统文件目录

利用swing组件来显示系统文件的目录树,不使用JFileChooser类。

2013-01-04

空空如也

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

TA关注的人

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