关闭
当前搜索:

Android 代码检查工具SonarQube

代码检查工具能帮我们检查一些隐藏的bug,代码检查工具中sonar是比较好的一个。官网 Sonar 概述         Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBu...
阅读(1380) 评论(0)

[Java并发包学习九]Java中的阻塞队列

什么是阻塞队列 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。 阻塞队列提供了四种处理方法:...
阅读(503) 评论(0)

[Java并发包学习八]深度剖析ConcurrentHashMap

概述 还记得大学快毕业的时候要准备找工作了,然后就看各种面试相关的书籍,还记得很多面试书中都说到: HashMap是非线程安全的,HashTable是线程安全的。 那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什么是线程安全的,内部怎么实现的,通通不了解。 今天我们将深入剖析一个比Hash...
阅读(505) 评论(0)

[Java并发包学习六]Semaphore介绍

概述 emaphore字面意思是信号量。他主要用于控制有限的资源的访问数量。我们看一个生活中常常出现的场景: 一个厕所只有3个坑位,但是有10个人来上厕所,那怎么办?假设10的人的编号分别为1-10,并且1号先到厕所,10号最后到厕所。那么1-3号来的时候必然有可用坑位,顺利如厕,4号来的时候需要看看前面3人是否有人出来了,如果有人出来,进去,否则等待。同样的道理,4-10号也需要...
阅读(329) 评论(0)

[Java并发包学习五]CountDownLatch和CyclicBarrier介绍

概述 JDK中提供了一些用于线程之间协同等待的工具类,CountDownLatch和CyclicBarrier就是最典型的两个线程同步辅助类。下面分别详细介绍这两个类,以及他们之间的异同点。 CountDownLatch类 CountDownLatch顾名思义:倒计数锁存器。没错,他就是一个计数器,并且是倒着计数的。他的应用场景如下: 一个任务A,他需要等待其他的一些任...
阅读(307) 评论(0)

[Java并发包学习四]Future和FutureTask

概述 Future主要用来表示线程异步执行的结果,他提供了检查异步执行的程序是否已经执行完毕、是否已经被取消,并且获取执行结果的方法。它是一个接口,接口的定义如下: 1 2 3 4 5 6 7 8 public interface Future { boolean cancel(boolean mayInterruptIfRunning); ...
阅读(573) 评论(0)

[Java并发包学习三]ThreadFactory介绍

概述 ThreadFactory翻译过来是线程工厂,顾名思义,就是用来创建线程的,它用到了工厂模式的思想。它通常和线程池一起使用,主要用来控制创建新线程时的一些行为,比如设置线程的优先级,名字等等。它是一个接口,接口中只有一个方法: 1 2 3 4 5 6 7 8 9 /** * Constructs a new {@code Thread}. Im...
阅读(474) 评论(0)

[Java并发包学习二]Executors介绍

概述 Executors类是JDK 1.5开始自带的一个非常强大的主要用于创建各类线程池的工具类。 常用方法介绍 newFixedThreadPool newFixedThreadPool方法有两种函数签名: 1 2 public static ExecutorService newFixedThreadPool(int nThreads)...
阅读(618) 评论(0)

[Java并发包学习一]Executor和ExecutorService

本文介绍jdk8并发包中的Executor/ExecutorService这两个接口。 Executor接口 概述 该类提供一个提交任务的方法,提交的任务可以在提交程序本线程运行,也可以在不同的线程运行,也可以在一个线程池中的线程运行,全看如何使用。 However, the {@code Executor} interface does not strictly req...
阅读(642) 评论(0)

[Java并发包学习七]解密ThreadLocal

概述 相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误的认知! 看看JDK中的源码是怎么写的: This class provides thr...
阅读(490) 评论(0)

ThreadLocal 内部实现和应用场景

很多人都知道java中有ThreadLocal这个类,但是知道ThreadLocal这个类具体有什么作用,然后适用什么样的业务场景还是很少的。今天我就尝试以自己的理解,来讲解下ThreadLocal类的内部实现和应用场景,如果有什么不对之处,还望大家指正。 首先明确一个概念,那就是ThreadLocal并不是用来并发控制访问一个共同对象,而是为了给每个线程分配一个只属于该线程的对象(这么粗暴...
阅读(6740) 评论(4)

maven install时surefire报错

maven install时surefire报错 错误信息如下: 警告: Error injecting: org.apache.maven.plugin.surefire.SurefirePlugin java.lang.NoClassDefFoundError: org/apache/maven/surefire/util/NestedCheckedException at jav...
阅读(1437) 评论(0)

关于struts2 中result type="stream"

struts2中 result="stream",可以实现文件的下载功能。 这里有两篇比较清楚和基础的文章:http://kin111.blog.51cto.com/738881/167475                                                                 http://developer.51cto.com/art/20...
阅读(2013) 评论(0)

String.getBytes()

在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不通OS下,返回的东西不一样!  String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如  byte[] b_gbk = "中".getBytes("GBK");  byte[] b_utf8 ...
阅读(711) 评论(1)

nodejs中流(stream)的理解

nodejs的fs模块并没有提供一个copy的方法,但我们可以很容易的实现一个,比如: var source = fs.readFileSync('/path/to/source', {encoding: 'utf8'}); fs.writeFileSync('/path/to/dest', source); 这种方式是把文件内容全部读入内存,然后再写入文件,对于小型的文本文件,这没有多...
阅读(1384) 评论(0)
71条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:8567823次
    • 积分:72328
    • 等级:
    • 排名:第24名
    • 原创:258篇
    • 转载:2781篇
    • 译文:3篇
    • 评论:752条
    文章分类
    最新评论