`
文章列表
前面我们介绍了Java当中多个线程抢占一个共享资源的问题。但不论是同步还是重入锁,都不能实实在在的解决资源紧缺的情况,这些方案只是靠制定规则来约束线程的行为,让它们不再拼命的争抢,而不是真正从实质上解决他们 ...
Java监视器支持两种线程:互斥和协作 。 前面我们介绍了采用对象锁和重入锁来实现的互斥。这一篇中,我们来看一看线程的协作。 举个例子:有一家汉堡店举办吃汉堡比赛,决赛时有3个顾客来吃,3个厨师来做,一个服务员负责协调汉堡的数量。为了避免浪费,制作好的汉堡被放进一个能装 有10个汉堡的长条状容器中,按照先进先出的原则取汉堡。如果容器被装满,则厨师停止做汉堡,如果顾客发现容器内的汉堡吃完了,就可以拍响容器上的闹铃, 提醒厨师再做几个汉堡出来。此时服务员过来安抚顾客,让他等待。而一旦厨师的汉堡做出来,就会让服务员通知顾客,汉堡做好了,让顾客继续过来取汉堡。 这里,顾客其实 ...
在上一节中, 我们已经了解了Java多线程编程中常用的关键字synchronized,以及与之相关的对象锁机制。这一节中,让 我们一起来认识JDK 5中新引入的并发框架中的锁机制 。 我想很多购买了《Java程序员面试宝典》之类图书的朋友一定对下面 这个面试题感到非常熟悉: 问:请对比synchronized与java.util.concurrent.locks.Lock 的异同。 答案:主要相同点:Lock能完成synchronized所实现的所有功能      主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释 ...
在上一篇中,我们讲到了多线程是如何处理共享资源的,以及保证他们对资源进行互斥访问所依赖的重要机制:对象锁 。 本篇中,我们来看一看传统的同步实现方式以及这背后的原理。 很多人都知道,在Java多线程编程中,有 ...
众所周知,在Java多线程编程中,一个非常重要的方面就是线程的同步问题。 关于线程的同步,一般有以下解决方法: 1. 在需要同步的方法 的方法签名中加入synchronized关键字 。 2. 使用synchronized块 对需要进行同步的代码段进行同步。 3. 使用JDK 5中提供的java.util.concurrent.lock 包中的Lock对象。 另外,为了解决多个线程对同一变量进行访问时可能发生的安全性问题,我们不仅可以采用同步机制,更可以通过JDK 1.2中加入的ThreadLocal 来保证更好的并发性。 本篇中,将详细的讨论Java多线程同步机制,并 ...
/** * 参考java中HashMap * 基本上实现Map接口 * @author chitianxiang $Date: July 5, 2012 - Thursday - 11: 28 AM */ function HashMap(){ this._table = {}; this._size = 0; if (typeof HashMap._initialized == "undefined") { //返回 key-value 映射的数量 ...
select * from table where binary name like '%name%'   select * from table where name like '%name%' COLLATE utf8_bin
location.hash = id; 下拉菜单通过$("#" + id).slideup("normal"); 在页面上虽然闭合了但还是会占用空间,所以经常定位不准 。 原因: 经过研究是因为隐藏的height属性影响的。 解决方法: var height = $("#" + id).css("height"); $("#" + id).css("height", 0);  //(1) location.hash = id; $( ...
注:[Tab]代表按键 在文本模式(终端)下 man全称manual手册指南的意思 1.可以查看多少条指令   [chtx8798@localhost ~]$ [Tab][Tab] 2.查看指令的详细信息man page   [chtx8798@localhost ~]$ man 指令3.man page中第一行指令后数字含义 数字 含义 1 用户在shell环境中可以操作的指令或可执行文件 2 系统核心可呼叫的函数与工具等 3 ...
1.关联类 ThreadLocal: 线程局部变量 Thread:线程对象 2. Thread与ThreadLocal如何关联?  ThreadLocal类:   /** * Variant of set() to establish initialValue. Used instead * of set() in case user has overridden the set() method. * * @return the initial value */ ...
方法:sun.reflect.Reflection.getCallerClass(int i) 其中i为0-----i++ 实例:类A,B,C,D,Reflection 关系:A-->B-->C-->D-->Reflection  (-->表调用) 1.  i == 0 class sun.reflect.Reflection 2.  i == 1 class D 3.  i == 2 class C 4.  i == 3 class B 5.  i == 4 ...

java读取excel

    博客分类:
  • java
1. 下载poi库 http://poi.apache.org/download.html 2.将poi核心文件取出放入myeclipse的lib中 3.测试代码 package test5; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream ...
/** * 判断是否是手机 * @param tel 电话号码 * @author chitianxiang $Feb 4th, 2012 */ static private boolean isMobile(String tel) { boolean matchFlag = false; if (null != tel && !"".equals(tel)) { //手机号码,以1开始,13,15,18,19,为合法,后跟9位数字 String regEx="[1]{1}[3,5,8,6 ...
/** * 将不完整的网址转换成完整网址 * <pre> * example: * sourceUrl = "http://www.wed114.cn/jiehun/shishanghunli/hunlicehua/"; * toConvertUrl = "/jiehun/shishanghunli/hunlicehua/201106/1496.html"; * latestUrl = "http://www.wed114.cn/jiehun/shishanghunli/hunlicehua/ ...

Jsoup抓取

1.下载Jsoup核心库   地址: http://jsoup.org/download  
Global site tag (gtag.js) - Google Analytics