项目里遇到一个问题:由于安全性的需要,必须由一个程序专门负责查询某一数据库,然后通过安全的信道(例如HTTP)将查询结果传到安全区域之外的application。为了解决这个小小的remoting问题,我们差点要动用EJB。不过幸亏朋友推荐,找到了Hessian这个轻量级的remotingonhttp工具。Hessian其实很像webservice,只不过它的协议不是SOAP,而是它自己规定的binary协议。Hessian的server端提供一个serv
系统 2019-08-12 01:32:33 2190
本文从典型的MonitorObject设计模式入手,从一个新的视角,来探讨Java语言的同步机制。
系统 2019-08-29 23:01:04 2189
欢迎点击此处订阅本Blog
系统 2019-08-29 22:40:39 2189
1.ExecutorServiceJava从1.5开始正式提供了并发包,而这个并发包里面除了原子变量,synchronizer,并发容器,另外一个非常重要的特性就是线程池.对于线程池的意义,我们这边不再多说.上图是线程池的主体类图,ThreadPoolExecutor是应用最为广泛的一个线程池实现(我也将在接下来的文字中详细描述我对这个类的理解和执行机制),ScheduledThreadPoolExecutor则在ThreadPoolExecutor上提供
系统 2019-08-29 22:17:08 2189
由于java程序需要调用C或C++的代码,不得不使用JNI。C的代码在Win32和Linux下都有相同功能的不同实现,就像JDK分几种平台版本(win32,linux,solaris等)。首先,看一看首先,看一看win32下调用dll文件。1,新建HelloWorld.java1publicclassHelloWorld2{3static4{5try6{7//此处即为本地方法所在链接库名8System.loadLibrary("HelloWorld");9
系统 2019-08-29 23:39:19 2188
1.Cache定义,命中率,存储成本,获取成本,失效,替换策略,优化的替换策略,缓存算法,分布式缓存,缓存度量http://www.jtraining.com/blogs/intro-to-caching-caching-algorithms-and-caching-frameworks.htmlCache系统概要图:缓存算法:LeastFrequentlyUsed(LFU):LeastRecentlyUsed(LRU)...分布式缓存:2.缓存的替换算法
系统 2019-08-29 23:13:18 2188
Java.sql包中的java.sql.Driver,jdbc.sql.Connection等提供给程序开发人员统一的开发接口,数据库提供商提供相应的实现,对程序开发人员来讲只要知道这些接口都有哪些方法就可以了。但我们可以深入一些看看到底这里面都做了那些事,同时也可以学习其中的编程模式(如Interface模式等)。1、Class.forName(Stringclassname)的源码为:publicfinalclassClassimplementsjav
系统 2019-08-29 22:24:51 2188
八、覆盖equals时请遵守通用约定:对于Object类中提供的equals方法在必要的时候是必要重载的,然而如果违背了一些通用的重载准则,将会给程序带来一些潜在的运行时错误。如果自定义的class没有重载该方法,那么该类实例之间的相等性的比较将是基于两个对象是否指向同一地址来判定的。因此对于以下几种情况可以考虑不重载该方法:1.类的每一个实例本质上都是唯一的。不同于值对象,需要根据其内容作出一定的判定,然而该类型的类,其实例的自身便具备了一定的唯一性,如
系统 2019-08-29 22:02:39 2188
一、Java的故事1、Java的诞生让我们把时空切换到1982年,那一年一个伟大的公司诞生于美国斯坦福大学校园,它的名字叫SunMicrosystems,直译的话叫太阳微系统公司,我们平时就叫他Sun,事实上Sun是StanfordUniversityNetwork的缩写。Sun在行业中被认为是最具创造性的企业。是极少数几个同时拥有自己微处理器、电脑系统、操作系统的公司。然而,1990年的一天,Sun的总裁麦克尼利(McNealy)听说他最好的一个工程师詹
系统 2019-08-29 23:03:38 2187
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(RegularExpression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?本文写作时,一个包含了用
系统 2019-08-29 22:51:55 2187
Jni中C++和Java的参数传递如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章:利用VC++6.0实现JNI的最简单的例子JNI入门教程之HelloWorld篇SUNJNITutorial这些资料的例子中,大多数只是输入一些简单的参数,获取没有参数。而在实际的使用过程中,往往需要对参数进行处理转换。才可以被C/C++程序识别。比如我们在C++中有
系统 2019-08-29 22:48:06 2187
本文为原创,如需转载,请注明作者和出处,谢谢!
系统 2019-08-29 23:44:34 2186
Java作为支持多平台的高级程序设计语言自然要支持多种编码方式才能满足程序设计的需要。但是在处理中文&其他编码之间的转换问题时往往出现各种问题,另程序员大伤脑筋。本文着重阐述了Java中文与Unicode编码之间进行相互转化的机理&方法,以求抛砖引玉。关键字:Java中文Unicode编码转换约定:本文中的编码(encoding)和字符集(charset)概念相同一、Appetite在进行详细的编码转换原理阐述之前,我们要作两件事情:1。首先检查操作系统用
系统 2019-08-29 23:03:54 2186
摘要虽然Java虚拟机(JVM)及其垃圾收集器(garbagecollector,GC)负责管理大多数的内存任务,Java软件程序中还是有可能出现内存泄漏。实际上,这在大型项目中是一个常见的问题。避免内存泄漏的第一步是要弄清楚它是如何发生的。本文介绍了编写Java代码的一些常见的内存泄漏陷阱,以及编写不泄漏代码的一些最佳实践。一旦发生了内存泄漏,要指出造成泄漏的代码是非常困难的。因此本文还介绍了一种新工具,用来诊断泄漏并指出根本原因。该工具的开销非常小,因
系统 2019-08-29 23:05:05 2185
《笔者带你剖析大规模分布式Java平台JVM性能调优基础》前言其实说到对JVM进行性能调优早已是一个老生常谈的话题,如果你所在的技术团队还暂时达不到淘宝团队那样的高度,无法满足在OpenJDK的基础之上根据自身业务进行针对性的二次开发和定制调优,那么对于你来说,唯一的选择就是尽可能的熟悉JVM的内存布局,以及熟练掌握与GC相关的那些选项配置,否则JVM的基础性能调优不是痴人说梦?目录一、性能调优的一些概念和目标;二、性能调优的基本原则;三、新生代的性能调优
系统 2019-08-12 09:30:36 2185