- 博客(15)
- 资源 (4)
- 问答 (2)
- 收藏
- 关注
原创 分布式应用并发解决方案以及注意事项
背景 现在大部分应用差不多都是微服务架构,服务之间至少是双节点,那么就会出现并发的场景。举个例子,支付当中的账务服务,部署了双节点,同一个商户同一时刻有多笔订单入账,两台服务收到请求的概率相同,这时候我们就需要考虑并发问题。下面将阐述如何去解决。 核心代码主要业务逻辑: 1、查询账户(非必要) 2、获取账户锁(同步...
2019-05-06 21:45:06
519
原创 Java实现排序算法(冒泡排序、选择排序、插入排序、希尔排序、快速排序)
分享冒泡排序、选择排序、插入排序、希尔排序、快速排序算法代码实现,如有错误请指正。由于描写排序算法的文章比较多,而且都写的不错,这里不再阐述理论部分,这里只分享自己的代码实现,觉得有两篇博客理论写的不错,推荐给大家。 博客地址:http://www.cnblogs.com/ysocean/p/8032632.html h...
2018-05-24 16:03:23
715
原创 Java利用Redis实现分布式锁(核心代码实现)
摘要:读完本章您将知道如何利用Redis设计分布式锁 在Java中利用Redis实现分布式锁主要利用jedis API(Jedis类) 提供的以下几个方法: Long setnx(final byte[] key, final byte[] value); 往redis服务器中设置值,如果key已存在,设置失败返回0;如果key不存在,设置...
2018-05-14 16:04:27
3429
原创 Java NIO学习指南
摘要:读完本章,您将了解什么是NIO,NIO的基本原理,NIO的基本用法。 概念:直贴百度百科上的描述 NIO主要涉及Channel、Buffer、Selector。Channel译为通道,类似流,主要负责数据的传输;Buffer译为数据缓存区,Channel上的数据只能通过Channel提供的read()或者write()方法读...
2018-05-11 14:17:23
381
原创 Java网络编程UDP与TCP(Socket编程)
摘要:读完本章您将对Java网络编程有一定的了解,知道UDP与TCP的区别,会用Java实现UDP、TCP传输数据。 一、什么是UDP、TCP。 网络编程顾名思义就是利用编程语言实现不同终端之间的通信,这其中包括发送端(客户端)通过规定好的协议组装包,在接收端(服务端)将包进行解析,从而提取出对应的信息,实现通信的目的。这里的协议主要有UDP与TCP协议...
2018-05-06 15:48:24
5347
3
原创 多线程死锁经典案例,必定会发生死锁
Java线程死锁是一个经典的多线程问题,因为不同的线程都在等待根本不可能被释放的锁,从而导致所有的任务都无法继续完成。换言之只要互相等待对方释放锁就有可能出现死锁。下面将用一个简单的例子加以说明,如有问题,请多多指教。 某日AB两位壮士各获一张一模一样的藏宝图,他们相距甚远,互不认识。两位壮士不仅武艺双全,还富有谋略,细读藏宝图,壮士得知宝藏就在某处,但是需要两把钥匙...
2018-05-03 23:04:32
925
原创 《大型网站技术架构核心原理与案例分析》读书笔记之RAID技术
RAID(廉价磁盘冗余阵列)技术主要是为了改善磁盘的访问延迟,增强磁盘的可用性和容错能力。目前服务器级别的计算机都支持插入多块磁盘(8块或者更多),通过使用RAID技术,实现数据在多块磁盘上的并发读写和数据备份。 假设服务器有N块磁盘。 RAID0 数据在从内存缓冲区写入磁盘时,根据磁盘数量将数据分成N份,这些数据同时并发写入N块磁盘,使得...
2018-04-28 21:02:27
171
原创 简述JAVA IO流以及IO流中的适配器模式、装饰模式
摘要:读完本章节,您对java 的IO流有更清晰深刻的认识,对适配器模式、装饰模式也有初步的了解。 一、关于流引用百度百科上的解释: 流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,亦称读操作;而向流中添加数据的操作称为插入操作,亦称写操作。用来进行输入输出操作的流就称为IO流...
2018-04-28 17:35:51
2711
2
原创 eclipse 部分实用快捷键
1、ctrl + shift + r ,打开当前工作空间的资源文件2、ctrl + shift + t ,有人解释说这是打开类型,我再解释的简单一点,比如你想快速查看jar包下的源码,可以用这个快捷键快速帮你找到,而不用先在eclipse上写一行代码然后再按ctrl + 鼠标点击进去。3、先敲ctrl + 2,然后再敲l,调用某方法如果你不知道它的返回值类型,可用此快捷键,它会自动帮你补全,屡试不...
2018-04-20 10:43:35
161
原创 java反射与动态代理
一、反射 1、概念 java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。通俗的讲就是调用某个方法间接获取类的属性以及方法。这是比较官方的解释,我个人理解就是通过某种方法拿到类的字节码对象(即Class),字节...
2018-04-19 15:25:37
379
原创 《Effective Java中文版》第二版 读书笔记
《Effective java》第二版基于Jdk1.5,虽然现在最新的jdk是jdk10,但书中内容主要介绍的是Java的一些编程规范、java编程思想,所以依然值得大家去读,可供大家学习的地方还很多。以下是自己对这本书的一些总结,由于篇幅原因,只做简单介绍,让大家知道有这么一个概念。 正如书的引言所说,本书的目的是帮助读者最有效地使用Java程序设计语言及其基本类库:java.l...
2018-04-14 16:39:36
1111
原创 BigDecimal类 setScale()方法java.lang.ArithmeticException: Rounding necessary
BigDecimal调用setScale方法时当未设置舍入模式时,系统会给个默认ROUND_UNNECESSARY(int 值为7)值,如果小数点后不为零,而且要保留的小数位数小于旧小数位数,那么此时会抛出异常java.lang.ArithmeticException: Rounding necessary。BigDecimal的setScale方法提供了三种方式分别是: s...
2018-04-11 17:03:20
5642
转载 JDK10新特性 官方文档翻译
来自开源社区jdk 10新特性 中英对照翻译文档JDK10 包含 12 个JEP (改善提议):【286】局部变量类型推断 :对于开发者来说,这是 JDK10 唯一的真正特性。它向 Java 中引入在其他语言中很常见的 var ,比如 JavaScript 。只要编译器可以推断此种类型,你不再需要专门声明一个局部变量的类型。一个简单的例子是: var x = new ArrayL...
2018-04-11 09:37:39
1591
原创 WIN10环境下如何设置环境变量
由于我的桌面删的干干净净,刚开始不知道入口在哪,特截了几个步骤供大家参考:1、win + E进入文件资源管理器,点击此电脑2、点击左上角属性,打开系统属性页面:3、打开属性,高级系统设置,选择高级,点击环境变量到环境变量设置页面,注意一个是系统环境变量一个是用户环境变量,作用域不一样。4、设置变量名为“JAVA_HOME”(复制我引号内的内容就可以了,不含引号,下同),变量值,必须是自己装jdk时...
2018-04-03 21:26:55
4054
原创 poi操作word文档,以07版本为参考,将word文档中图片替换为文本(替换文本也一样),读图片可选文字内容
1、先简单介绍下word07版本以后的存储格式,word 07版本以后主要是以xml格式存储。如果想查看详情可将后缀名改为zip,再查看压缩文件可查看到各种文件,其中document.xml就是word主要展现给我们大家所看到的内容。2.根据第一步的描述,我查看了document.xml,如果有图片,xml文件里会有w:drawing节点。解题思路就从这里来,把这个节点去掉,再替换成为一个文本节点...
2015-10-28 18:53:26
1559
毕业设计android开发手机天气预报
2013-01-11
db2递归结果集作为查询条件时报错
2016-05-04
poi操作07版word,将图片替换为文本
2015-10-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人