Java
Java开发
dijkstral
这个作者很懒,什么都没留下…
展开
-
java多线程学习(二)
Atomic包是Java.util.concurrent下的另一个专门为线程安全设计的Java包,包含多个原子操作类。这个包里面提供了一组原子变量类。其基本的特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性。标量类:AtomicBoolean,AtomicInteger,AtomicLong,AtomicReference数组类:AtomicIntegerA原创 2016-10-26 00:42:11 · 282 阅读 · 0 评论 -
sleep、wait争用锁
线程在调用sleep()时,不放弃对对象的加锁,wait()会放弃,直到notify或是超过时间后重新获取对象锁。但是如果一个线程在先调用wait后紧接着调用了sleep,是否会重新获取对象锁呢? 写了个Demo,证实是可以的。package demos.multiThreadDemo;/** * java中的sleep()和wait()的区别 * * @date 2013-12-10原创 2017-06-11 15:47:00 · 270 阅读 · 0 评论 -
java锁概念总结
1.读写锁 http://ifeve.com/read-write-locks/总结下java的锁的概念自旋锁 自旋锁是采用让当前线程不停地的在循环体内执行实现的,当循环的条件被其他线程改变时 才能进入临界区。 http://ifeve.com/java_lock_see1/ http://ifeve.com/java_lock_see2/阻塞锁 http://ifeve.com/ja转载 2017-06-19 10:32:20 · 663 阅读 · 0 评论 -
装箱拆箱
public class BoxDemo { public static void main(String[] args) { Boolean i1 = false; Boolean i2 = false; System.out.println(i1 == i2);// true Integer a = Integer.value原创 2017-07-10 09:29:12 · 219 阅读 · 0 评论 -
jvm调试问题
1.jps找不到 linux下jps command not found 今天在linux下查看进程,使用命令jps,可是却提示找不到命令,这条命令是在jdk下的bin目录下的一个可执行文件,我查看了一下我的jdk目录,发现有jps可执行文件,但是只是没有放在环境变量里面而已,环境变量可以通过etho PATH命令查看。所以就要自己加上去,以root身份vi/etc/profile,然后在下面转载 2017-07-11 11:50:39 · 253 阅读 · 0 评论 -
java问题汇总
一,ubuntu环境下java环境配置:1.下载jdk包,放在合适的位置,一般放在/usr/lib/jvm/目录下;2.使用tar解压,注意-C使用方法3.修改/etc/profile文件,设置全局变量,注意事先做好profile文件的备份:export JAVA_HOME=/usr/lib/jvm/jdkXXXexport JRE_HOME=${JAVA_HOME}/jre原创 2015-12-04 15:37:00 · 432 阅读 · 0 评论 -
Set与线程安全
Collections.newHashSetFromMap原创 2017-09-08 09:50:59 · 28957 阅读 · 0 评论 -
java中缓存切入方式
java中对缓存的实现有多重方式,从技术角度来讲我觉得可以分为两类:分布式缓存和本地缓存;前者多使用redis、memcache等分布式数据库实现,后者主要是map、loadingCache实现;无论采用哪种实现方式,都需要比较好的缓存切入点,总结了下java中实现缓存比较常用的几个切入点:Mybatis的Cache接口 Mybatis的Interceptor接口 Spring的S原创 2017-09-25 12:28:39 · 319 阅读 · 0 评论 -
Spring的Cache使用
Spring在3.x中提供了缓存功能,可以使用注解对方法执行结果进行缓存。核心注解使用 @Cacheable 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存@CacheEvict 主要针对方法配置,能够根据方法的请求参数对其结果进行清理制定的缓存@CachePut 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存更新@CacheConfig 针对类,制定类中所有原创 2017-09-26 13:58:09 · 307 阅读 · 0 评论 -
jdk Atomic包
原子操作类可以分为4类。 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ; 2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ; 3. 引用类型: AtomicReference, AtomicStampedRerence, AtomicMarkableRe原创 2017-06-19 09:24:03 · 259 阅读 · 0 评论 -
kafka学习记录
1.kafka入门 http://www.cnblogs.com/likehua/p/3999538.html原创 2017-05-07 19:18:18 · 291 阅读 · 0 评论 -
java多线程学习(一)
最近在完成项目需求时,发现自己对java中多线程的知识基本是一知半解。准备抽出一段时间,学习一下java的多线程。学习主要从jdk中的concurrent包以及其他java线程相关的类学习。1.ThreadLocal类:ThreadLocal是java.lang包的一个类,这个类为其中的每个线程都创建了一个变量的副本。其有四个public方法:get()方法,jdk原创 2016-10-25 00:31:57 · 308 阅读 · 0 评论 -
Gradle相关资料,待整理
http://www.infoq.com/cn/news/2011/04/xxb-maven-6-gradlehttp://my.oschina.net/enyo/blog/369843转载 2016-09-06 23:15:14 · 234 阅读 · 0 评论 -
多线程中注入javabean
spring的javabean在注册后是单例模式,对于多线程中来讲并不是太好。但是线程中或多或少都需要调用一些service之类的bean。总结了下,有如下可以在线程中注入bean的方法。注意:需要十分小心bean的全局变量,否则会有线程安全问题;1.使用静态方法直接获取spring容器中的bean对象;示例代码:package demos.multiThreadDemo.原创 2017-03-26 14:35:05 · 1588 阅读 · 0 评论 -
jacocoData
埋点打印日志的时候,使用反射进行递归打印SmartRequest时发现一直打出栈地址信息。经过排查后发现里面有JacocoData属性。JacocoData是公司进行覆盖率检查的工具,平时是synthetic状态。本机打印应该没有这个变量,但是发到线上后就会有。http://www.eclemma.org/jacoco/trunk/index.html原创 2017-03-26 14:37:21 · 3796 阅读 · 3 评论 -
java同步机制的几种实现方式
ThreadLocal为每个使用变量的线程提供独立的变量副本,这样每个线程就可以独立改变自己的副本,不会影响其他的线程;InheritableThreadLocal在原有基础上进行了扩展,包括其子线程在内的线程都可以实现数据的同步;synchronizedsynchronized修饰的代码块或是方法都可以看作是一个原子操作;一个线程执行互斥代码的过程:1.获得同步锁;2原创 2017-03-26 14:38:43 · 3612 阅读 · 0 评论 -
java中MD5混淆
网站的密码等都需要进行加密后存入数据库,流行的方法采用的是MD5混淆,下面就这种方法做个简单的使用介绍。 public static String stringMD5(String input) { try { // 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”) MessageDigest messageDi转载 2017-03-26 14:39:52 · 881 阅读 · 0 评论 -
StringUtils比String中多的方法
StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法:1. 检查字符串是否为空:static boolean isBlank(CharSequence str) 判断字符串是否为空或null;static boolean isNotBlank(CharSequence str) 判断字符串是否非空或非null;2. 缩进字符串:static St原创 2017-03-26 14:40:24 · 849 阅读 · 0 评论 -
Servlet总结
Servlet容器的工作过程是:当客户请求某个资源时,Servlet容器使用ServletRequest对象把客户的请求信息封装起来,然后调用Java Servlet API中定义的Servlet的一些生命周期方法,完成Servlet的执行,接着把Servlet执行的要返回给客户的结果封装到 ServletResponse对象中,最后Servlet容器把客户的请求发送给客户,完成为客户的一次服务过程原创 2017-05-07 15:19:46 · 300 阅读 · 0 评论 -
java知识点总结
ArrayList和LinkedList的区别ArrayList是用数组实现;插入时需要整体将插入位置后的数据后移,效率较低;查找效率较高;当前空间不满足时,会增加50%的空间量,空间消耗大,可以在初始化时指定空间; LinkedList使用链表实现;任何位置插入删除开销相同;查找效率较低;2.HashSet、HashMap、HashTable区别原创 2017-06-04 16:53:26 · 780 阅读 · 1 评论