`
labile
  • 浏览: 42099 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论
文章列表
用 java.lang.reflect.Proxy 简化加锁代码,用 ReadWriteLock 以提高并行性 有一个 CoreManager 接口,用来代表一个服务,每个方法对应服务的一个子功能。 方法 startup() 要求服务在 stoped 状态。方法 shutdown() 要求服务在 started 状态。方法 isStarted() 要求服务在 stoped/started 状态。其它方法,要求服务在 started 状态。  
 如果你写的 Java 应用程序是中间件等性能敏感,自实现多线程的应用程序。那么,内存、线程的监视将是重要的。你可以重新发明自己的轮子,如果你有必要。但从 JDK 5.0 起。已经有了 Java 内置的 JMX Management Bean。本机(本地)监视:在 java 起动命令中加入:-Dcom.sun.management.jmxremote如:java -Dcom.sun.management.jmxremote -jar Notepad.jar然后起动:JDK_HOME/bin/jconsole.exe或:在 JDK_HOME/lib 目录下执行:java -jar jconsole ...
用 java.lang.reflect.Proxy 制作类似AOP 的方法调用 Log 层 个人认为,java.lang.reflect.Proxy 简直是懒人必备的工具。 如,我负责编写一个分布式系统的一个服务,别的应用要调用我的服务的 RMI接口方法。而多人开发有着一个必然的缺点:每人负责的模块均对外提供接口,但事情往往会因为接口的定义者、实现者、使用者间对接口理解的偏差,而在软件的开发中引出不少麻烦。于是,接口调用日志就有作用了。特别是 RMI Interface 的日志。  import java.lang.refle ...
交互测试接口的简单实现 1.       问题或者你已经习惯了写 Hardcode JUnit Test Case。但这里有问题:l         你写的代码要经过 Java compiler 才可运行,但实际的环境下不一定允许这样l         很难用于交互测试与开发期的错误跟踪。不能要求你的交互测试环境总有一个 Java IDE。 上述问题在 Java Application 的 RMI 接口测试和错误跟踪时就更明显。  2.       解决方法要做交互测试与错误跟踪,要面对的情况是不可料的,故很难用 Hardcode 的静态语言 Java 去做。但我对动态语言(如 BeanShel ...
2006年的春节,我带着剪刀和细绳,踏进了离开了已经2年的大学园。准备参加一年一次的宿舍聚会。时间还早,我还是先去看你吧。<o:p> </o:p>远远就看到花园了,离你越近,我的心跳就越快。我怕,怕这一年下来,寒风、暴雨、干旱、寂寞,你都熬得过吗?谢天谢地,你还好好的呆在那,已经有<st1:chmetcnv tcsc="1" numbertype="3" negative="False" hasspace="False" sourcevalue="1" unitnam ...
背景:从大2到现在,我一直在考虑,为什么自己制订的软件,总是一次又一次地夭折。在软件功能设计阶段,总是激情澎湃地想象软件要有什么功能,如果软件广为众人接受以后,又如何地名成利就。于是,我马上开始程序的建模、填入代码、发现问题后重构模型。大约数天后,我就陷入代码泥潭中,兴奋点也随时间锐减。结果,最多一个月,项目就被放弃。我想,这种情况在程序员中普遍存在。<o:p> </o:p>我一直认为,这是自己的技术问题,也与自己对市场的不了解有关。年前,我开始觉得,这不是问题的关键。问题可以分为以下几个方面:1.缺乏足够的耐性2.没有核心的功能特性,创新性的功能才能让自己写得开心,用户 ...
 1       硬件配置l         设备一个FAX机、一个外置(内置或可,我没有尝试)Modem(支持FAX功能的,一般均支持)、一条双水晶头电话线。l         连接Modem按正常的连接方式与电脑连接(通常为COM1口)双头电话线的一头连上FAX机的Line口,另一头连上Modem的Line口2       软件配置我用的传真软件是32Bit FAX。我用过Bitware(网上已有相关的打印、扫描应用文章),在我的机器中只能扫描不能打印
去年的7月份,我的一切在顺理成章地进行着。和同学的朋友,阿锋,合租了一间房子。学校就要求毕业生三天后要搬家了。我只好“奢侈”花了150¥,请搬家公司把自己的东西搬到刚租的房子。乘上搬家车出校门时。中心百感交集,自豪、好奇、壮志、恐惧。全部感觉一下压到心底。       东西都放到了“新房”了。我呢。今晚就一个人在房子睡觉吗……还是不要了。一下只从热热闹闹的宿舍,到这空无一人的新环境,新地方。真无法忍受。于是又回学校过了一晚。后来的一个月,因为学校宿舍已经关闭,阿锋也未搬过来。我只能一个人在房子过了。门锁了一层又一层。心里还很不踏实。       如果这些对于我这个刚踏入“社会大学”的新生来说是祸 ...
1.用MS VC++ IDE入门学习C++    VC IDE可以为编写代码、编译程序提供一个方便的集成环境。“方便”同时意味着隐藏细节。 而这个细节是最不应该对初学者隐藏的——编译与链接。cl.exe是什么?编译与链接是怎样完成的?VC IDE有是怎样调用它的。相信在大学里刚用VC IDE学C++的人没几个可以回答!对于入门,cl.exe + notepad 可能是Windows下的一个合适的搭配!请把IDE和编译器分开    2.认为 C++ = VC    C++是一个标准,实现这个标准的不只是VC,还有GCC等。    3.未懂学懂C++标准功能,就C++/MFC/Windows Pla ...
我相信,很多程序员和我一样。都喜欢新技术,有时甚至“贪新忘旧”在学习新技术的过程中我们都喜欢编一些DEMO程序。这些DEMO程序或是简单到一个main函数,复杂到一个有一定实用性的简单软件。但毫不例外的,都是只能用于DEBUG的软件。我觉得Debug/DEMO与Release之间有一条鸿沟。但毫不例外的,我满怀希望的用新学到的技术开始设计、编码自己心目中有趣的软件。毫不例外的,过了一段时间,我被考虑不周的设计、随心所欲的变更、莫名其妙的错误折腾得情绪低落。毫不例外的,又过了一段时间,我发觉这软件并不有趣、沉长的代码(特别是GUI部分更特别是MFC的时候)需要一次一次的重构。随心所欲的变更、未成型 ...
    最近跑了HSBC和Tencent两家企业。都成“拒无霸”了。企业对社会人员和学生的要求是不同的。在基础方面,学习能力方面,我是非常自信的。但当被问到工作经验时,就只能用那几个小小的J2SE Application撑撑场面了。用了什么技术啊?OOP/Designe Pattern/正则表达式/UML Modeling。熟悉Oracle/Socket/J2EE/事务,吗?有了解过,做过DEMO程序。对不起,我们只要有经验的……    总结下来就事,自己过去只重视做个好的程序员,不懂得做一个好的技术员。    不过,作为企业,我觉得,这样的用人方法也是值得深思的。作为小企业,以生存为目标,这是 ...
/** * Create only by new operator, delete by owner * joinable m_thread */class LaThread {    private:    boost::thread* m_thread;     static static_run(LaThread* This) {       This->run();    } protected:    virtual void run() = 0; public:    LaThread() : m_thread(NULL) {}    /**     * Requires: t ...
       我一直是个宗诚的OOP信徒,或者说,是OOP的极左完美主义者。半年前,有幸拜读GOF的《Design Pattern》(以下简称《GOF》),和《PSA》,有茅塞顿开之快。作为一个刚毕业不到一年的程序员,我接手的都是一个人就可以完成的小项目。但在每个项目中,我都借鉴了大师们的经验(模式)来建模。       前段时间。终于有机会和一位老员工合作项目。项目中要用到一个分布式的事件响应服务。在事件的类型上,我和他达成了共识,但在事件的响应方面。我尝试着向他推销满足DEMO版需求的反应器/观察者模式。       一开始,我在纸上画响应器注册、反应器处理事件的框图,向他解释这个模式的实现 ...
挂在sourceforge.net上的好几个网站:http://www.boost.orghttp://www.wxwindows.org均无法访问你可以用:http://boost.sourceforge.net/http://wxwindows.sourceforge.net/代替,我也不清楚是不是DNS的问题了。nslookup的结果:> www.boost.orgServer:  dns.guangzhou.gd.cnAddress:  202.96.128.68Non-authoritative answer:Name:    www.boost.orgAddress:  66. ...
Global site tag (gtag.js) - Google Analytics