Java应用篇
JR_Way
这个作者很懒,什么都没留下…
展开
-
Java多线程之Executor、ExecutorService、Executors、Callable、Future与FutureTask
1. 引子初学Java多线程,常使用Thread与Runnable创建、启动线程。如下例:Thread t1 = new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()); }});t1.st...转载 2018-07-14 23:19:58 · 413 阅读 · 0 评论 -
23种设计模式介绍以及在Java中的实现
原创不易,转载请注明出处:http://blog.csdn.net/anxpp/article/details/51224293,谢谢! 文章比较长,读者可以通过顶端的目录选择要了解的模式,然后通过文章右边的按钮快速返回顶部重新选择一个新的模式浏览 博主精心准备了大量的示例代码。文章尽量提供与编程相关的例子,而不是像多数其他介绍的文章一样,提供一些感觉挺滑稽的例子(那样的例子可能看完觉...转载 2018-07-13 01:15:00 · 366 阅读 · 0 评论 -
基于redis的分布式锁实现
关于分布式锁很久之前有讲过并发编程中的锁并发编程的锁机制:synchronized和lock。在单进程的系统中,当存在多个线程可以同时改变某个变量时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该...转载 2018-07-13 00:52:35 · 1392 阅读 · 0 评论 -
如何使用RedisTemplate访问Redis数据结构
Redis 数据结构简介Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。下面来对这5种数据结构类型作简单的介绍:结构类型结构存储的值结构的读写能力String可以是字符串、整数或者浮点数对整个字符串或者字符串的其中一部分执行操作;对象和浮点数执行自增(incremen...转载 2018-07-12 00:53:29 · 521 阅读 · 0 评论 -
浅谈java中BigDecimal的equals与compareTo的区别
这两天在处理支付金额校验的时候出现了点问题,有个金额比较我用了BigDecimal的equals方法来比较两个金额是否相等,结果导致金额比较出现错误(比如3.0与3.00的比较等)。【注:以下所讲都是以sun jdk 1.4.2版本为例,其他版本实现未必一致,请忽略】首先看一下BigDecimal的equals方法:?1234567public boolean equals(Object x){ ...转载 2018-07-02 00:41:32 · 1256 阅读 · 0 评论 -
【Java关键字-Interface】为什么Interface中的变量只能是 public static final
三个关键字在接口中的存在原因:public:接口可以被其他接口继承,也可以被类实现,类与接口、接口与接口可能会形成多层级关系,采用public可以满足变量的访问范围;static:如果变量不是static的,那么接口必须实例化才可以访问自己的变量,接口不能被实例化,故非static的变量是无效的;final:如果变量不是final的,而方法是abstract的,因此接口中的方法又不可以修改变量值,...转载 2018-07-02 00:40:02 · 787 阅读 · 0 评论 -
Eclipse Java注释模板设置详解以及版权声明
网上的Eclipse注释模板,在这里稍稍整理一些比较常用的。编辑注释模板的方法:Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍:1.文件(Files)注释标签:/** * All rights Reserved, Designed B...转载 2018-07-02 00:14:36 · 258 阅读 · 0 评论 -
Java 枚举(enum) 详解7种常见的用法
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。大师兄我又加上自己的理解,来帮助各位理解一下。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color { ...转载 2018-07-02 00:13:50 · 186 阅读 · 0 评论 -
java类中serialversionuid 作用 是什么?举个例子说明
serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastEx...转载 2018-05-31 17:03:21 · 233 阅读 · 0 评论 -
Java 枚举7常见种用法
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color { RED, GREEN, BLANK, ...转载 2018-06-07 16:57:45 · 255 阅读 · 0 评论 -
Java中NIO和IO区别和适用场景
NIO是为了弥补IO操作的不足而诞生的,NIO的一些新特性有:非阻塞I/O,选择器,缓冲以及管道。管道(Channel),缓冲(Buffer) ,选择器( Selector)是其主要特征。概念解释:Channel——管道实际上就像传统IO中的流,到任何目的地(或来自任何地方)的所有数据都必须通过一个 Channel 对象。一个 Buffer 实质上是一个容器对象。Selector——选择器用于监听...转载 2018-05-24 15:02:11 · 1183 阅读 · 0 评论 -
什么是分布式系统中的幂等性
最近很多人都在谈论幂等性,好吧,这回我也来聊聊这个话题,光看着俩字,一开始的确有点一头雾水,语文不好嘛,词太专业嘛,对吧 现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能再服务器处理完毕后返回结果的时候挂掉,这个时候用户端发现很久没有反应,那么...转载 2018-05-22 09:24:29 · 223 阅读 · 0 评论 -
log4j中Logger.getLogger与LogFactory.getLog的区别
Logger来自log4j自己的包。如果用Logger.getLogger,需要一个log4j的jar包,用此方式你只能依靠log4j:LogFactory来自common-logging包。如果用LogFactory.getLog,你可以用任何实现了通用日志接口的日志记录器替换log4j,而程序不受影响。apache的common-logging包是通用日志接口,通过这个中间层,你可转载 2016-03-07 16:27:12 · 322 阅读 · 0 评论 -
Log4j使用总结(全面)一
一、介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志转载 2016-03-07 16:28:48 · 294 阅读 · 0 评论 -
Log4j使用总结(全面)二
上接 Log4j使用总结(全面)一。。。。。。四、Log4j比较全面的配置 LOG4J的配置之简单使它遍及于越来越多的应用中了:Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了。 log4j.rootLogger=DEBUG,CONSOLE,A1,im转载 2016-03-07 16:29:34 · 310 阅读 · 0 评论 -
在同一台机器上安装多个版本jdk,修改环境变量不生效
本机已经安装了jdk1.6,而比较早期的项目需要依赖jdk1.5,于是同时在本机安装了jdk1.5和jdk1.6. 安装jdk1.5前,执行java -version得到java version "1.6.0_38"Java(TM) SE Runtime Environment (build 1.6.0_38-b05)Java HotSpot(TM) 64-Bit Ser转载 2016-04-18 11:32:52 · 448 阅读 · 0 评论 -
高并发场景下System.currentTimeMillis()的性能问题的优化 以及SnowFlakeIdWorker高性能ID生成器
package xxx;import java.sql.Timestamp;import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicLong;/** * 高并发场景下System.currentTimeMillis()的性能问题的优化 * <p><p> * System...转载 2018-11-01 14:57:09 · 1225 阅读 · 0 评论