java
文章平均质量分 82
xingjiarong
本科生,IT男,单身狗,喜欢足球
展开
-
java Robot 类模拟键盘按键和鼠标点击(全局模拟)
java Robot 类模拟键盘按键和鼠标点击(全局模拟)原创 2014-08-19 21:33:57 · 14753 阅读 · 1 评论 -
Java多线程之Callable和Future
转自:http://blog.csdn.net/ghsau/article/details/7451464Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值,下面来看一个简单的例子转载 2016-02-07 12:05:04 · 1437 阅读 · 0 评论 -
java多线程(一)Race Condition现象及产生的原因
转载请注明出处http://blog.csdn.net/xingjiarong/article/details/47603813 什么是Race Condition首先,什么是Race Condition呢,Race Condition中文翻译是竞争条件,是指多个进程或者线程并发访问和操作同一数据且执行结果与访问发生的特定顺序有关的现象。换句话说,就是线程或进程之间访问数据的先后顺序决定了数据修改原创 2016-01-28 16:11:44 · 18188 阅读 · 7 评论 -
ubuntu14.04 配置java jdk环境
第一步:从oracle官网现在jdk,注意带有x64字样的是64位的,只有x86字样的32的位,根据系统的位数选择对应的版本,不知道自己的系统是多少为位的请参考:http://blog.csdn.net/xingjiarong/article/details/46885621oracle jdk 下载界面:http://www.oracle.com/technetwork/java/javase/d原创 2015-10-25 11:35:47 · 2396 阅读 · 0 评论 -
java 多线程(三)条件对象
在上一篇博客中,我们学会了用ReentrantLock来控制线程访问同一个数据,防止出现Race Condition。这一次呢,我们继续深入的学习,学习一下java中的条件对象,条件对象在多线程同步中用到的比较多。首先,我们来介绍一下临界区。临界区:在同步的程序设计中,临界区指的是一个访问共用资源的程序片段,而这些共用资源又具有无法同时被多个线程访问的特性。 当有线程进入临界区时,其他线程或是进程必原创 2015-08-19 08:19:37 · 4078 阅读 · 15 评论 -
java多线程(二)锁对象
在上一篇博客中,我们讨论了Race Condition现象以及它产生的原因,现在我们知道它是不好的一种现象了,那么我们有什么方法避免它呢。最直接有效的方式就是放弃多线程,直接改为使用单线程但操作数据,但是这是不优雅的,因为我们知道有时候,多线程有它自己的优势。在这里我们讨论两种其他的方法——锁对象和条件对象。锁对象java SE5.0之后为实现多线程的互斥引入了ReentrantLock类原创 2015-08-17 08:24:53 · 3035 阅读 · 1 评论 -
java多线程(十)使用线程安全的集合
在多线程中,如果要并发的修改一个数据结构,那么很有可能会破坏这个数据结构。例如,一个线程可能要向一个散列表中插入一个元素,假如在调整各个桶之间的链接关系时被剥夺了控制权,而此时正好有另外一个线程正在遍历链表,则可能会产生异常或者死循环。可以通过锁来保护共享的数据结构,但是选择线程安全的实现作为替代可能更容易一些。一、旧的线程安全的集合任何集合类都可以通过使用同步包装器变成线程安全的:原创 2015-08-29 08:52:21 · 38822 阅读 · 1 评论 -
java多线程(九)阻塞队列
前边的博客中我们介绍了如果用对象锁和条件锁以及更加方便的synchronized关键字来实现多线程的同步和互斥,也许你会觉得使用synchronized关键字已经非常方便了,但是使用者必须真正的理解synchronized的用法,而且要有一定的多线程的编程的经验,否则很难做到全面的考虑问题而造成意想不到的问题。其实在java中还有比原创 2015-08-28 08:30:16 · 2547 阅读 · 0 评论 -
java多线程(七)提高锁的效率——使用读写锁
之前我们讲过ReentrantLock,这种锁不区分读操作和写操作,如果有一个线程在执行读操作,那么其他的所有的线程不能进行任何的读操作或者写操作。这样可以保证程序的互斥性,但是降低了程序的并发性,使执行效率降低,没有有效的发挥多线程的优势。比如说,有一个系统,主要是以读操作为主,比如有10个线程负责读数据,只有一个线程负责写数据。如果用我们之前的ReentrantLock方法,这10个线程中没有原创 2015-08-27 09:10:20 · 5207 阅读 · 2 评论 -
java多线程(八)为什么弃用stop和suspend
初始的java版本中定义了一个stop方法来终止一个线程还定义了一个suspend方法来阻塞一个线程,直到另一个线程调用resume方法。这两个方法在Java SE 1.2之后就被弃用了,因为这两种方法都不安全,下面我们分别来讨论一下为什么不安全和应该怎样做才是安全的。一、stop方法为什么不安全其实stop方法天生就不安全,因为它在终止一个线程时会强制中断线程的执行,不管原创 2015-08-27 09:12:23 · 13955 阅读 · 2 评论 -
java多线程(六)深入理解volitale关键字
我们继续来讨论java的多线程编程,今天我们一起来学习一下java多线程中的另一个关键字——volitale。一、java内存模型与多线程编程中的三个感念1、原子性原子性是指一些操作或者全都执行,要么或者全都不执行,整个操作作为一个整体是不可分割的,例如,一个银行中有两个账户A,B,现在要从A账户中转账500元到B账户,那么一共可以分为两个步骤: 1、从A账户取出500元:A = A原创 2015-08-26 09:12:19 · 7899 阅读 · 7 评论 -
java多线程(五)synchronized关键字修饰代码块
在上一篇博客中我们介绍了原创 2015-08-26 09:11:11 · 7143 阅读 · 2 评论 -
java中getClass( )和class()的联系和区别
java有两个获得类名的方法getClass()和class(),这两个方法看似一样,实则不然。这两个方法涉及到了java中的反射。反射所谓反射,可以理解为在运行时期获取对象类型信息的操作。传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代码。严格地说,反射并非编程语言的特性,因为在任何一种语言都可以实现反射机制原创 2015-08-24 08:51:20 · 38561 阅读 · 3 评论 -
java多线程(四)synchronized关键字修饰方法
在之前的博客中我们介绍了条件对象和锁对象,两者结合使用才能起到比较好的互斥与同步效果,大家可能觉得有些麻烦,有没有将两者结合起来的工具呢,有!java提供了synchronized关键字来实现线程的互斥和同步,其达到的效果相当于条件对象和锁对象结合起来的效果。synchronized关键字有两类用法,一类是修饰方法,一类是修饰代码块,这篇博客主要介绍一下synchronized关键字修饰方法时的用原创 2015-08-24 08:49:30 · 14425 阅读 · 3 评论 -
java字符串缓冲池分析
java的虚拟机在内存中开辟出一块单独的区域,用来存储字符串对象,这块内存区域被称为字符串缓冲池。那个java的字符串缓冲池是如何工作的呢?String a = "abc";String b = "abc";String c = new String("xyz");例如上边的代码: String a = “abc”; 创建字符串的时候先查找字符串缓冲池中有没有相同的对象,如果有相同的对原创 2015-07-12 16:16:31 · 4400 阅读 · 8 评论 -
java调用python方法总结
转载自:http://blog.sina.com.cn/s/blog_64e467d60100uhls.htmlhttp://sourceforge.net/projects/jython/下载jython包,把其中的jython.jar添加到工程目录1.在java类中直接执行python语句import org.python.util.PythonInterpreter;public class原创 2016-02-09 10:06:47 · 32948 阅读 · 6 评论