`
wjm251
  • 浏览: 108616 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论
文章列表
关于几种新并发容器或类的通俗理解 SynchronousQueue 没有容量,两个线程一个来put,另一个take才会交换,只有一个请求时阻塞,和exchanger有点像 CountDownLatch obj = new CountDownLatch(n); obj.await(); obj.countDown() 初始化需要个int形参数,可以想象一个赛马场的闸门控制系统。 马进赛道前关在闸门里。 每个驭手在准备好的时候,调用系统的await表示我准备好了。 n表示系统倒数几个数,每countDown一次表示倒数一次,5--4---3---2---1 此刻闸门同时打开,开始万马奔腾 ...
之前的部分都没有记录了,从这里开始,所看过的自己意识中并非理所当然的东西记录一下,以后再看看笔记就复习一遍。 4.5. Documenting Synchronization Policies 应该在文档中明确表明wether our class is thread safe,so our user or maintainer will be feel better. Some library code like JDBC or Servlet framwork does not specific whether they are threadsafe, from a designer's p ...
今天同学让看下这个题目,折腾了两个多小时,设计了个巨复杂的算法,漏洞百出。 回来的路上忽然想起来其实很简单啊,贴一下代码。 感叹一下,以后什么都要想好了再动手,那怕什么都不做,光思考了一大半时间,很多时候也比没想清楚急匆匆得开始干好得多。 import java.util.regex.Pattern; public class num2pinyin { public static String numArray[] = {"Ling","Yi","Er","San","Si&q ...
class Holder { private int n; public Holder(int n) { this.n = n; } public void assertSanity() { if (n != n) throw new AssertionError("This statement is false."); } } public class test { public Holder holder; public void initializ ...
之前订阅了英孚英语的每天在线5分钟小视频,感觉不错,每天会收到个邮件,里头有链接, 比如 http://members.englishtown.com/community/channels/lesson2.aspx?hash=AGMAdAByACUAMwBkAGMAbgAlADIANgBsAG4AZwAlADMAZABjAHMAJQAyADYAcAB0AHIAJQAzAGQARABpAGMAdAAlADIANgBzAHMAJQAzAGQARQBFACUAMgA2AHMAaQBkACUAMwBkADEANQA1ADEAOAA1ADYAJQAyADYAbABlAHMAcwBvAG4AXwBpAGQA ...
有了远程调试,调试java代码就方便多了,不用在eclipse中配置那么多参数,最复杂的也就是在被调试程序的命令行中加点参数而已 有两种方法 1. 先用以下命令启动被调试程序 java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8765,suspend=n -jar test.jar eclipse的debug中创建remote java application,选socket attach的连接方式,点击调试, 2. eclipse的debug中创建remote java application,选socket ...
postgres  --version -h host 缺省主机是本地主机或环境变量PGHOST声明的值。 -p port 缺省端口是环境变量PGPORT 创建数据库集群   initdb -D data -E utf-8 1.启动数据库 postgres\bin\pg_ctl.exe  -D "d:\vts\data"  start  -l "log.txt" 启动pgbouncer 到pgbouncer目录下 pgbouncer.exe [-v] pgbouncer.ini 2.停数据库的过程 taskkill /F /FI ...
native2ascii用法 这个实际上不能完全归于java,native2ascii是个相当有用的工具,和语言无关,只是恰好放在了jdk下。 几年前看过网上的一篇文章讲native2ascii的用法(以native2ascii搜索,中文多半都是这一篇),以“熔岩”这两个汉 ...
这个例子实际上就是官方来的(暂时没除法,当然加一个也非常简单),就是演示下这个工具的强大之处, 之前项目中对用户输入的表达式(当然不适简单的四则运算,包括用户函数的)。 琢磨了两三天官方的英文文档,google也能零散的搜索到一些中文资料。 主要是前一篇提了下表达式求值,所以这个正好也是个解法,就算个呼应吧。 没心情长篇大论地介绍antlr了。零星提一点能记起来的概念, 基于编译原理,EBNF范式,LL(*)文法, Lexer,Parser,TreeParser, Lexer将所入的字符留转换成后序分析用的token,Parser接收token产生树(再由TreeParser处理这个树来产生 ...
http://sms.api.bz/fetion.php?username=137********&password=xx&sendto=137********&message=短信内容
====== 表达式求值 ====== 表达式求值基本有两种算法,算法优先和语法分析 通常我们写的2+3×4叫中缀表达式,算法优先算法很依赖于和中缀表达式等价的后缀表达式,而借助二叉树求值本质也是一样的。 中缀转后缀的基本步骤 有个操作符栈opStack,保留暂时的优先级比较低的操作符,比如3+2*4,当碰到3时就要先入栈 碰到左括号(就一定进opStack,等再碰到左括号)时,将栈中直到左括号为止的所有操作符出栈使用,(使用指的是参与计算或拼二叉树,或拼后缀表达式) 碰到操作符,将栈顶开始往下的所有优先级大于等于本操作符的操作符出栈使用,本操作符入栈。 碰到操作数,直接使用。 ...
#coding=cp936 temppath = u"D:\\你好新建文件夹\\a" import shelve cache = shelve.open(temppath, 'c') cache["hi"] = "ss" cache.close() 这是个简单的方法,shelve.open的模式'c' 表示没有就创建示 cache有着和dict一样的接口,非常好用。 项目中使用(Windows XP ...
首先申明,思想来自下面两个网页 http://coolshell.cn/?p=2704 http://blog.stevenlevithan.com/archives/algebra-with-regexes 我自己改造成python代码并加了下注解,遂成。 也许数据大了性能有问题,但确实太酷了。 #coding=utf-8 import re def isPrime(num): pa = re.compile(r"""^1?$ #匹配空串或1 | ^ (11+?)#匹配1再加1个或多个1(这里是不贪婪的,可能贪婪的 ...

万能的toString

    博客分类:
  • java
在http://leon-a.iteye.com/blog/476212看到有个“万能toString” 忽然想起自己之前也写过一个,这玩意在调试程序时确实还是不错的, 也贴上来吧,
起因: python源文件头都设置了coding=cp936 locale设置的是zh_CN.GBK, samba的配置文件中没有与字符集有关的设置 用户通过samba共享放入一个含中文名的文件夹“中国”,然后在linux系统下使用os.path.exists(“中国”)会返回false,但人工 ...
Global site tag (gtag.js) - Google Analytics