![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javase
文章平均质量分 64
liyebing
这个作者很懒,什么都没留下…
展开
-
java并发 wait,notify,notifyAll,synchronized(一)
首先,调用一个Object的wait与notify/notifyAll的时候,必须保证调用代码对该Object是同步的,也就是说必须在作用等同于synchronized(obj){......}的内部才能够去调用obj的wait与notify/notifyAll三个方法,否则就会报错: java.lang.IllegalMonitorStateException:curre...原创 2013-11-14 01:05:02 · 60 阅读 · 0 评论 -
配置linux下的java开发环境
1、下载 jdk-8u45-linux-x64.gz 2、解压 tar zxvf jdk-8u45-linux-x64.gz 3、配置环境变量 编辑 /etc/profile 写入: export JAVA_HOME=/usr/java8/jdk1.8.0_45 export PATH=$P...原创 2015-06-22 13:01:07 · 121 阅读 · 0 评论 -
判断某个类是否实现了某个接口或者继承了某个父类的方法
一、背景:有的时候需要动态判断一个类是否实现了某个接口或者继承了某个父类。其实java里面已经有方法了,只是平时用的机会很少,在此mark一下 二、上代码import java.io.Serializable;public class IsAssignableFromTest implements Serializable{ /** 序列号 */ pr...原创 2014-08-24 13:33:03 · 4552 阅读 · 0 评论 -
关于URLConnection对象
开始的目的是为了检测一个URL指向的文件是否存在。代码如下: try{ String filePath="http://*****013-09-25_03.csv"; URL furl=new URL(filePath); furl.getContent(); }catch(FileNotFoundException e){ ///// ...原创 2013-09-27 14:13:49 · 77 阅读 · 0 评论 -
缓冲区Buffer与通道Channel
一、一般来说缓冲区和通道结合在一起使用,写入文件的时候,需要先存放在缓冲区,然后通过通道写入。读取文件的时候也类似,通过通道读取在缓冲区。然后通过缓冲区获取文件内容。 Buffer针对每一种java基本类型都有实现。Channel针对不同的使用对象也有不同的实现,一般常见的为FileChannel与SocketChannel两类。 Buffer底层实现为数组,有三个重要的参...原创 2014-03-02 13:27:49 · 291 阅读 · 0 评论 -
java数据传输常用编码方式总结
在开发中常常遇到一种场景,一个系统向另一个系统提交数据的时候,可能是通过json方式提交,也可能先写到html页面的form表单里面提交,这样就会带来几个问题,比如,json格式里面含有疑似XSS攻击的恶意字符串,或者含有与HTML语义相同的标签字符。在这种情况下,就需要对所提交的字符串进行编码了。然后接收方进行解码。 编码的常见方式总结如下:一、unicode编码 ...原创 2014-02-22 10:22:58 · 508 阅读 · 0 评论 -
Map的排序
今天工作中需要用到一个保持插入顺序的键值对的数据结构。遂想到了Map中的 JDK中map的LinkedHashMap 能满足需要。顺便做了下面的整理。 排序都是依据key来排序的。如果要依据Value来排序,需要自己来实现相关的Map类,有兴趣的可以试试看。 LinkedHashMap 会保持插入时候的顺序,但是相同的key插入多次,默认以第一次插入的顺序为准,...原创 2013-11-25 18:40:23 · 94 阅读 · 0 评论 -
java并发 CompletionService (八)
一、CompletionService的实现类:ExecutorCompletionService 相当于ExecutorService与BlockingQueue的组合,即能够将一组任务的运行结果按结果的先后顺序放入阻 塞队列中,以便逐一取出 二、适用场景: 假定有针对某个问题的一组求解程序,每个求解程序都能返回某种类型的 Result ...原创 2013-11-17 21:05:35 · 99 阅读 · 0 评论 -
java并发 Semaphore(七)
一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。 Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。 获得一项前...原创 2013-11-17 21:04:03 · 328 阅读 · 0 评论 -
java并发 Exchanger (六)
(待续)原创 2013-11-17 21:03:02 · 52 阅读 · 0 评论 -
java并发 CountDownLatch (五)
CountDownLatch是不可以重复使用的。每次都需要new一个出来。 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,awa...原创 2013-11-17 20:31:49 · 73 阅读 · 0 评论 -
java并发 CyclicBarrier (四)
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CyclicBarrier 支持一个可选的 Runnable 命令,在一组线程中的最后一个线程...原创 2013-11-17 20:13:19 · 74 阅读 · 0 评论 -
java并发 locks包:ReentrantReadWriteLock(三)
在使用某些种类的 Collection 时,可以使用 ReentrantReadWriteLock 来提高并发性。通常,在预期 collection 很大,读取者线程访问它的次数多于写入者线程,并且 entail 操作的开销高于同步开销时,这很值得一试。例如,以下是一个使用 TreeMap 的类,预期它很大,并且能被同时访问 代码实例: import java.util....原创 2013-11-16 01:25:03 · 107 阅读 · 0 评论 -
java并发 locks包:Condition(二)
本文基本是JDK文档中的说明内容,但是已经很好的解释了Condition对象的使用方法。 Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set(wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Condi...原创 2013-11-15 01:49:47 · 73 阅读 · 0 评论 -
Date的类复制问题
在开发过程中涉及到日期循环,这就涉及到Date类拷贝的问题。Date实现了Clonable接口,且实现了深拷贝。验证代码如下: public static void main(String[] args) { SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); Date d1=...原创 2015-07-31 15:19:59 · 449 阅读 · 0 评论