[转]Java synchronized详解
摘要:http://www.cnblogs.com/devinzhang/archive/2011/12/14/2287675.html第一篇:使用synchronized在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。在程序中我们使用了一个简化版本的Account类,代表了一个银行账户的信息。在主程序中我们首先生成了1000个线程,然后启动它们,每一个线程都对
阅读全文
posted @
2013-03-19 10:08
kkmm
阅读(266)
推荐(0) 编辑
Iterator中hasNext(), next()
摘要:在Iterator类中,我们经常用到两个方法: hasNext(), next(),具体含义: next(), 是返回当前元素, 并指向下一个元素。 hasNext(), 则是判断当前元素是否存在,并指向下一个元素(即所谓的索引)如: 枚举工号 Map map = new HashMap(); map = new HashMap(); map.put("1155669", "Tom"); map.put("1155689", "Jane"); map.put("1165669", "K
阅读全文
posted @
2013-03-18 10:55
kkmm
阅读(23467)
推荐(2) 编辑
[转]Win7下Eclipse中文字体太小
摘要:http://www.cnblogs.com/newdon318/archive/2012/03/23/2413340.html最近新装了Win7,打开eclipse3.7中文字体很小,简直难以辨认。在网上搜索发现这是由于Eclipse 3.7 用的字体是 Consolas,显示中文的时候默认太小了。 解决方式有两种:一、把字体设置为Courier New操作步骤:打开Elcipse,点击菜单栏上的“Windows”——点击“Preferences”——点击“Genneral”——点击“Appearance”——点击“Colors and Font”——在右侧框展开“Basic”文件夹--双击
阅读全文
posted @
2013-03-15 10:11
kkmm
阅读(566)
推荐(0) 编辑
Java实现IOS推送(Javapns2.2)
摘要:此程序需要Javapns 2.2版本。import java.util.ArrayList;import java.util.List;import javapns.Push;import javapns.devices.Device;import javapns.devices.implementations.basic.BasicDevice;import javapns.notification.AppleNotificationServerBasicImpl;import javapns.notification.PushNotificationManager;import javap
阅读全文
posted @
2013-03-13 16:38
kkmm
阅读(18956)
推荐(1) 编辑
Java实现IOS推送(利用javapns1.6)
摘要:import java.util.HashMap;import java.util.Iterator;import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator; import javapns.back.PushNotificationManager;import javapns.back.SSLConnectionHelper;import javapns.data.Device;import javapns.data.PayLoad;public class MainApnsSend { pu...
阅读全文
posted @
2013-03-13 13:48
kkmm
阅读(4908)
推荐(0) 编辑
[转]浅谈多核CPU、多线程与并行计算
摘要:http://blog.csdn.net/delacroix_xu/article/details/59281210.前言最近发觉自己博客转帖的太多,于是决定自己写一个原创的。笔者用过MPI和C#线程池,参加过比赛,有所感受,将近一年来,对多线程编程兴趣一直不减,一直有所关注,决定写篇文章,算是对知识的总结吧。有说的不对的地方,欢迎各位大哥们指正:)1.CPU发展趋势核心数目依旧会越来越多,依据摩尔定律,由于单个核心性能提升有着严重的瓶颈问题,普通的桌面PC有望在2017年末2018年初达到24核心(或者16核32线程),我们如何来面对这突如其来的核心数目的增加?编程也要与时俱进。笔者斗胆预测
阅读全文
posted @
2013-03-13 13:40
kkmm
阅读(11728)
推荐(2) 编辑
关于select的字段加别名的语法
摘要:有的时候,对于数据库中的数据进行select后,对于某些字段名出于某些原因要命个别名(alias),那么有2种方式:1、select columnA as AA from table;2、select columnA AA from table;注意:columnA和AA之间用"as"或者" "都对(在Oracle下做过试验),只是"as"更加标准一些而已。用起来没有区别。
阅读全文
posted @
2013-03-11 11:20
kkmm
阅读(3236)
推荐(0) 编辑
java解析properties文件的几种方法及用法
摘要:1、使用java.util.Properties类的load()方法示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));Properties p = new Properties();p.load(in);2、使用java.util.ResourceBundle类的getBundle()方法示例: ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());3、使用java.util.PropertyResourceB
阅读全文
posted @
2013-03-06 11:48
kkmm
阅读(3611)
推荐(0) 编辑
log4j在eclipse下使用
摘要:1、下载log4j***.jar,放到工程lib文件夹下,并使用add external jars导入工程2、建立配置文件log4j.properties并写入如下内容:### set log levels ###log4j.rootLogger = stdout , D, E### 输出到控制台 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Threshold = DEBUGlog4j.appender.stdout.Target = System.outlog4j.appen
阅读全文
posted @
2013-03-06 10:12
kkmm
阅读(1939)
推荐(1) 编辑
[转]Netty初探
摘要:http://freewind.me/blog/20110912/67.html本来打算这几天好好研究Netty的源代码的,真做起来发现还是缺少充足的动力。最开始还算认真的看了其buffer包,但是到了后来,就变成看javadoc了,知道有哪些类、类中有哪些方法就知足了。毕竟有500多个java文件,看起来真够累的。好在基本理解了nio 之后,看netty也不是很难。Netty跟Mina结构上相当的相似,据说性能略优、在细节上更完善一些,但是我的直观感觉就是,Netty的文档和例子相当不错,让人很理解起来容易一些(以前学Mina时,费不了少工夫)。这里简单的总结一下,技术含量不高(因为没有深入
阅读全文
posted @
2013-03-05 16:54
kkmm
阅读(360)
推荐(0) 编辑
[转]Java nio 初体验
摘要:http://freewind.me/blog/20110912/66.htmlJava的nio是jdk5推出的东西,距现在已经五六年了。我虽然曾经使用过Mina(一个使用事件驱动的nio框架)做过一些项目,但实际上对nio的了解还是很模糊,只是知道它的特点是“非阻塞”。近期打算研究一下Netty(它跟Mina很像,是同一个作者的作品),所以先研究下Nio。网上的中文资料相当少,大多讲得不清不楚,给的示例代码更是看得人头晕。好在群友“羊八井”推荐了我一本好书:《Java network programming 3rn edition》,它的第12章就是专讲nio的。这本书写得不错,详细而清晰,
阅读全文
posted @
2013-03-05 16:53
kkmm
阅读(374)
推荐(0) 编辑
[转]Socket的阻塞模式和非阻塞模式
摘要:http://blog.csdn.net/VCSockets/阻塞模式 Windows套接字在阻塞和非阻塞两种模式下执行I/O操作。在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里。相反,在非阻塞模式下,套接字函数会立即返回,而不管I/O是否完成,该函数所在的线程会继续运行。在阻塞模式的套接字上,调用任何一个Windows Sockets API都会耗费不确定的等待时间。图所示,在调用recv()函数时,发生在内核中等待数据和复制数据的过程。当调用recv()函数时,系统首先查是否有准备好的数据。如果数据没有准备好,那么系统就处于等待状态。.
阅读全文
posted @
2013-03-05 14:53
kkmm
阅读(12084)
推荐(1) 编辑
[转]Reactor模式,或者叫反应器模式
摘要:http://daimojingdeyu.iteye.com/blog/828696Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些。通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或者叫召唤兽。并发系统常使用reactor模式,代替常用的多线程的处理方式,节省系统的资源,提高系统的吞吐量。先用比较直观的方式来介绍一下这种方式的优点,通过和常用的多线程方式比较一下,可能更好理解。以一个餐饮为例,每一个人来就餐就是一个事件,他会先看一下菜单,然后点餐。就像一个网站会有很多的请求,要求服务器做一些事
阅读全文
posted @
2013-03-05 11:31
kkmm
阅读(326)
推荐(0) 编辑
[转]java 接口与抽象类的区别
摘要:http://www.cnblogs.com/fanqimeng/archive/2009/05/13/1456183.html一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了。当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 呢,面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用,是不是一下子感觉自己对复用理解的高度又上升了一层?^_^说到了抽象,我就不能不提到曾让我头痛的Java接
阅读全文
posted @
2013-03-05 10:51
kkmm
阅读(182)
推荐(0) 编辑
[转]《JAVA与模式》之责任链模式
摘要:http://www.cnblogs.com/java-my-life/archive/2012/05/28/2516865.html在阎宏博士的《JAVA与模式》一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。从击鼓传花谈起 击鼓传花是一种热闹而又紧张的饮酒游戏。在酒宴上..
阅读全文
posted @
2013-03-05 10:30
kkmm
阅读(202)
推荐(0) 编辑
class.forname().newInstance()
摘要:Class.forName(xxx.xx.xx)返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new不一样,要分清楚)。至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点。Aa=(A)Class.forName("pacage.A").newInstance();这和你Aa=newA();是一样的效果。关于补充的问题答案是肯定的,jvm会执行静态代码段,你要记住一个概念,静态代码是和class绑定的,class装载成功就表示执
阅读全文
posted @
2013-03-05 09:42
kkmm
阅读(680)
推荐(0) 编辑
使用jdbc调用Oracle报错:ORA-00911 无效字符
摘要:这种是由于sql语句写错了,例如:1、数据库sql不需要写分号,但是在java中写分号了;2、数据库sql需要写分号,但是在java中没有写分号;3、sql中写了中文的字符,例如中文分号;
阅读全文
posted @
2013-03-04 16:16
kkmm
阅读(488)
推荐(0) 编辑
[转]Java连接oracle数据库实例
摘要:http://www.cnblogs.com/yanpeng/archive/2009/01/17/1943367.html建立和分析java程序和oracle数据库交互的两种方法。 第一种应该是比较古老的方法了。 Windows下采用JDBC-ODBC Bridge连接oracle数据库 1、 安装oracle客户端程序,在tnsnames.ora中配置好相应的数据库连接串文件,此处设连接串名为“dbora”。 2、 在windows的控制面板->“数据库源ODBC”中,建立相应的用户或者系统DSN,具体方法:在安装的数据源的驱动程序选择“Microsoft ODBC for Ora.
阅读全文
posted @
2013-03-04 09:37
kkmm
阅读(365)
推荐(0) 编辑
[转]Win7 x64 PL/SQL 连接 Oralce 提示 Could not initialize "%ORACLE_HOME%\bin\oci.dll"
摘要:http://blog.csdn.net/hemingwang0902/article/details/7027543今天在 x64 的 Win7 上重新安装了 Oralce 后,通过 PL/SQL 连接数据库时,提示如下错误信息环境windows7 64bitOracle win64 11gR2PL/SQL v9.0详细错误信息[plain]view plaincopyInitializationerrorCouldnotinitialize"C:\oracle\product\11.2.0\dbhome_1\bin\oci.dll"Makesureyouhavethe3
阅读全文
posted @
2013-03-04 09:25
kkmm
阅读(446)
推荐(0) 编辑