随笔分类 -  Java之路

在一回首间,才忽然发现,原来,我一生的种种努力,不过只为了周遭的人对我满意而已。为了搏得他人的称许与微笑,我战战兢兢地将自己套入所有的模式所有的桎梏。走到途中才忽然发现,我只剩下一副模糊的面目,和一条不能回头的路。 ​​​​
摘要:一、概念 二、NIO和IO的主要区别 下表总结了Java IO和NIO之间的主要区别: 1、面向流与面向缓冲 Java IO和NIO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外, 阅读全文
posted @ 2018-04-20 18:10 天涯过者 阅读(255) 评论(0) 推荐(0)
摘要:idea大小写转换:ctr+shift+u ctrl+alt+b,跳转到接口的方法实现处 阅读全文
posted @ 2018-04-13 11:17 天涯过者 阅读(146) 评论(0) 推荐(0)
摘要:"==" 操作符的作用: 1、用于基本数据类型的比较 2、判断引用是否指向堆内存的同一块地址。 equals的作用: 用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,返回值为布尔类型 在class文件中有一部分 来存储编译期间生成的 字面常量以及符号引用,这部分叫做class文件常量 阅读全文
posted @ 2018-03-15 15:41 天涯过者 阅读(280) 评论(0) 推荐(0)
摘要:ActiveMQ官网下载地址:http://activemq.apache.org/download.html ActiveMQ的目录: bin存放的是脚本文件 conf存放的是基本配置文件 data存放的是日志文件 docs存放的是说明文档 examples存放的是简单的实例 lib存放的是act 阅读全文
posted @ 2018-03-09 11:27 天涯过者 阅读(221) 评论(0) 推荐(0)
摘要:首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并 阅读全文
posted @ 2018-03-08 10:10 天涯过者 阅读(153) 评论(0) 推荐(0)
摘要:在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。 没上锁的 Integer ++ ,执行多几次,得到的数值大多数都是小于200000,但是这个是我们不想得到的结果 可以不 阅读全文
posted @ 2018-03-02 19:23 天涯过者 阅读(354) 评论(0) 推荐(0)
摘要:举个例子:A想要从自己的帐户中转1000块钱到B的帐户里。那个从A开始转帐,到转帐结束的这一个过程,称之为一个事务。在这个事务里,要做如下操作:1. 从A的帐户中减去1000块钱。如果A的帐户原来有3000块钱,现在就变成2000块钱了。2. 在B的帐户里加1000块钱。如果B的帐户如果原来有200 阅读全文
posted @ 2018-03-02 18:47 天涯过者 阅读(586) 评论(0) 推荐(0)
摘要:ReadWriteLock管理一组锁,一个是只读的锁,一个是写锁。读锁可以在没有写锁的时候被多个线程同时持有,写锁是独占的。 所有读写锁的实现必须确保写操作对读操作的内存影响。换句话说,一个获得了读锁的线程必须能看到前一个释放的写锁所更新的内容。 读写锁比互斥锁允许对于共享数据更大程度的并发。每次只 阅读全文
posted @ 2018-03-01 15:11 天涯过者 阅读(162) 评论(0) 推荐(0)
摘要:第一题:现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印完这些日志对象。原始代码如下: 实现的代码: 第二题:现成程序中的Test类中的代码在不断地产生数据,然后交 阅读全文
posted @ 2018-02-20 09:29 天涯过者 阅读(351) 评论(0) 推荐(0)
摘要:CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。CyclicBarrier默认的构造方法是 CyclicBarri 阅读全文
posted @ 2018-02-18 15:24 天涯过者 阅读(180) 评论(0) 推荐(0)
摘要:Lock,那是对synchronized的一种更为面向对象的替代,在原来的synchronized内部,我们可以调用object的wait与notify方法 condition一方面是对lock功能的补充(也就是说,你用了lock,为了保证线程的通信,就得用condition) 另一方面,synch 阅读全文
posted @ 2018-02-18 15:05 天涯过者 阅读(326) 评论(0) 推荐(0)
摘要:CompletionService用于提交一组Callable任务,其take方法返回已完成的一个Callable任务对应的Future对象。 如果你向Executor提交了一个批处理任务,并且希望在它们完成后获得结果。为此你可以将每个任务的Future保存进一个集合,然后循环这个集合调用Futur 阅读全文
posted @ 2018-02-18 14:57 天涯过者 阅读(223) 评论(0) 推荐(0)
摘要:Future就是对于具体的Runnable或者Callable任务的执行结果进行取消、查询是否完成、获取结果。必要时可以通过get方法获取执行结果,该方法会阻塞直到任务返回结果。 Future类位于java.util.concurrent包下,它是一个接口: cancel方法用来取消任务,如果取消任 阅读全文
posted @ 2018-02-18 14:51 天涯过者 阅读(146) 评论(0) 推荐(0)
摘要:我们创建一个可扩展大小的线程池,并且需要在线程池内同时让有限数目的线程并发运行时,就需要用到Semaphore(信号灯机制),Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目,它是一个计数信号量,从概念上讲,信号量维护了一个许可集合,如有必要,在许可可用前会阻塞每一个acq 阅读全文
posted @ 2018-02-18 11:04 天涯过者 阅读(696) 评论(0) 推荐(0)