代码改变世界

文章分类 - JAVA(转)

[转载]RPC 的概念模型与实现解析

2016-05-23 22:27 by Rollen Holt, 1344 阅读, 收藏, 编辑
摘要: 原文地址: http://mp.weixin.qq.com/s?__biz=MzAxMTEyOTQ5OQ==&mid=2650610547&idx=1&sn=2cae08dbf62d9a6c2f964ffd440c0077 rd 文章写的很不错,如果各位对RPC比较感兴趣,强烈推荐看看,然后和dub 阅读全文

Set vs. Set<?>

2015-01-21 00:10 by Rollen Holt, 423 阅读, 收藏, 编辑
摘要: You may know that an unbounded wildcard Set can hold elements of any type, and a raw type Set can also hold elements of any type. What is the differen... 阅读全文

【转】程序员开发大型应用程序的技巧

2014-02-23 02:37 by Rollen Holt, 672 阅读, 收藏, 编辑
摘要: 假如你是一名Java开发者,正在开发和维护包含2000个类并使用了很多框架的应用程序。你要如何理解这些代码呢?在典型的Java企业项目小组中,大部分能够帮你的高级工程师看起来都很忙,文档也很少。你需要尽快交付成果,并向项目组证明自己的能力。你会如何处理这种状况呢?这篇文章为开始开发新项目的Java开发者提供了一些建议。1. 不要试图一下子搞懂整个项目仔细考虑一下,为什么你会想要先理解项目代码呢?大部分情况是有人要求你修复一个bug,或者增强系统已有功能。你要做的第一件事情不是理解整个项目的架构。当对项目进行维护时,这样做(理解整个项目架构)可能会对你造成巨大的压力。即便是有10年编程经验的Ja 阅读全文

eclipse编辑web.xml很卡的原因及解决办法

2012-11-27 09:09 by Rollen Holt, 6086 阅读, 收藏, 编辑
摘要: 转自:http://blog.csdn.net/opnmzxcvb/article/details/6959585eclipse很卡,快把我弄疯了。在网上找了很多资料都没有解决,什么修改eclipse.ini的配置文件,修改内存,禁用eclipse的许多插件功能都没有效果,关闭验证。我想难道是我的电脑不行了,该换了,不可能吧。我是I5处理器,4G内存耶,难道这配置跑eclipse都不行。所以我否定了以上所有的原因,及解决办法。折腾了一上午,最后看到国外的一篇帖子找到了原因及解决办法。还有个问题是电脑断网,eclipse就不卡了,这更加坚定的我的信念,web.xml肯定有问题。原来是web.xm 阅读全文

深入分析 Java I/O 的工作机制

2011-11-05 10:01 by Rollen Holt, 4682 阅读, 收藏, 编辑
摘要: 许 令波, Java 工程师, 淘宝网简介:I/O 问题可以说是当今互联网 Web 应用中所面临的主要问题之一,因为当前在这个海量数据时代,数据在网络中随处流动。这个流动的过程中都涉及到 I/O 问题,可以说大部分 Web 应用系统的瓶颈都是 I/O 瓶颈。本文的目的正是分析 I/O 的内在工作机制,你将了解到:Java 的 I/O 类库的基本架构;磁盘 I/O 工作机制;网络 I/O 的工作机制;其中以网络 I/O 为重点介绍 Java Socket 的工作方式;你还将了解到 NIO 的工作方式,还有同步和异步以及阻塞与非阻塞的区别,最后我们将介绍一些常用的关于 I/O 的优化技巧。Java 阅读全文

Java 动态代理机制分析及扩展

2011-10-30 12:12 by Rollen Holt, 502 阅读, 收藏, 编辑
摘要: 王 忠平, 软件工程师, IBM何 平, 软件工程师, IBM简介:本文通过分析 Java 动态代理的机制和特点,解读动态代理类的源代码,并且模拟推演了动态代理类的可能实现,向读者阐述了一个完整的 Java 动态代理运作过程,希望能帮助读者加深对 Java 动态代理的理解和应用。引言Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架。通过阅读本文,读者将会对 Java 阅读全文

NIO.2 入门,第 2 部分: 文件系统 API

2011-10-21 23:34 by Rollen Holt, 644 阅读, 收藏, 编辑
摘要: 简介:本文是介绍 More New I/O APIs for the Java™ Platform(NIO.2)的两部分系列文章的第二部分, 本文涵盖了在新的java.nio.file包及其子包中的大部分重要的类与功能。 正如在第一部分中对 NI0.2 异步通道 API 的讨论,在本文中,作者利用大量的代码示例来论证相关的概念。本文是介绍 Java 7 中的 More New I/O APIs for Java (NIO.2) 的两部分文章的第二部分。 正如在第一部分中探索的异通道 API 一样, NIO.2 的文件系统用以前 Java 版本处理 I/O 的相关方法,填补了一些重大的空白。 依 阅读全文

NIO.2 入门,第 1 部分: 异步通道 API

2011-10-21 23:33 by Rollen Holt, 605 阅读, 收藏, 编辑
摘要: 简介:Java 7 主要的新功能域之一是增加用于 Java™ Platform(NIO.2)的 More New I/O API,为该语言增加异步通道功能和新的文件系统 API。开发人员可以获得对平台独立文件操作、异步操作、以及多播套接字通道的支持。本文的第一部分重点关注 NIO.2 中的异步通道 API,第二部分将介绍新的文件系统功能。服务器在合理的时间之内处理大量客户机请求的能力取决于服务器使用 I/O 流的效率。同时为成百上千个客户机提供服务的服务器必须能够并发地使用 I/O 服务。Java 平台直到 JDK 1.4(也就是 Merlin)才支持非阻塞 I/O 调用。用 Java 语言写 阅读全文

实现非阻塞套接字的一种简单方法 使用 JSSE 和 NIO 实现非阻塞通信的一种快速方法

2011-10-21 11:41 by Rollen Holt, 608 阅读, 收藏, 编辑
摘要: Kenneth Ballard(kenneth.ballard@ptk.org), 计算机科学系学生, 珀鲁州立大学简介:尽管 SSL 阻塞操作――当读写数据的时候套接字的访问被阻塞――与对应的非阻塞方式相比提供了更好的 I/O 错误通知,但是非阻塞操作允许调用的线程继续运行。本文中,作者同时就客户端和服务器端描述了如何使用Java Secure Socket Extensions (JSSE) 和 Java NIO (新 I/O)库创建非阻塞的安全连接,并且介绍了创建非阻塞套接字的传统方法,以及使用JSSE 和 NIO 的一种可选的(必需的)方法。阻塞,还是非阻塞?这就是问题所在。无论在程序 阅读全文

JavaOne 2011战略主题:Java ME、SE和EE的未来规划

2011-10-19 17:48 by Rollen Holt, 260 阅读, 收藏, 编辑
摘要: Java EE的下个版本将支持云计算、多站点(multi-tenancy,多站点,多租户)、可扩展以及缓存等特性。在近日举行的JavaOne 2011大会上,来自Oracle团队的Adam Messinger、Hasan Rizvi和Cameron Purdy分别针对不同Java平台的产品路线图进行了介绍,其中包括移动版(ME,Micro Edition)、标准版(SE,Standard Edition)以及企业版(EE,Enterprise Edition)这三种Java平台。Cameron Purdy在演讲中提到了Java EE平台即将到来的新特性,其中就包含了对云计算的支持。他提到,现在 阅读全文

诊断 Java 代码: 提高 Java 代码的性能 尾递归转换能加快应用程序的速度,但不是所有的 JVM 都会做这种转换

2011-09-27 13:04 by Rollen Holt, 1709 阅读, 收藏, 编辑
摘要: 简介:很多算法用尾递归方法表示会显得格外简明。编译器会自动把这种方法转换成循环,以提高程序的性能。但在 Java 语言规范中,并没有要求一定要作这种转换,因此,并不是所有的 Java 虚拟机(JVM)都会做这种转换。这就意味着在 Java 语言中采用尾递归方法将导致巨大的内存占用,而这并不是我们期望的结果。Eric Allen 在本文中阐述了动态编译将会保持语言的语义,而静态编译则通常不会。他说明了为什么这是一个重要问题,并提供了一段代码来帮助判断您的即时(JIT)编译器是否会在保持语言语义的同时做尾递归代码转换。尾递归及其转换相当多的程序包含有循环,这些循环运行的时间占了程序总运行时间的很大 阅读全文

向Java开发者介绍Scala

2011-09-26 23:08 by Rollen Holt, 1662 阅读, 收藏, 编辑
摘要: Scala结合了面向对象编程与函数编程思想,使用一种能够完全兼容Java、可以运行在Java虚拟机上的、简洁的语法。对于函数编程风格的支持,尤其是对于Lambda表达式的支持,能够有助于减少必须要编写的逻辑无关固定代码,也许让它可以更简单的关注要面对的任务本身,而相对的Java中对Lamdba表达式的支持要到预定于2012年发布的JavaSE8才会实现。本文就是对于Scala介绍。相关厂商内容Flash Builder 4.5高级版试用版免费高速下载QClub(北京站)——《云计算与虚拟化在企业架构中的实施》(10月12日 晚7点)作为第一步,先安装好最新的Scala发布包Typesafe s 阅读全文

在 JNI 编程中避免内存泄漏

2011-09-22 09:47 by Rollen Holt, 450 阅读, 收藏, 编辑
摘要: 简介:本文详细论述如何在 JNI 编程中避免内存泄漏。论述了 JNI 编程中可能引发的明显的内存泄漏。本文的重点是阐述 JNI 编程中潜在的内存泄漏,希望读者通过本文对 Local reference 有更深刻的理解,了解 Local reference 表的存在,区分 Local reference 和局部变量,从而认识到 Local reference 可能引发的 native memory 内存泄漏JNI 编程简介JNI,Java Native Interface,是 native code 的编程接口。JNI 使 Java 代码程序可以与 native code 交互——在 Java 阅读全文

深入分析 Java 中的中文编码问题

2011-09-22 09:45 by Rollen Holt, 1027 阅读, 收藏, 编辑
摘要: 许 令波, Java 工程师, 淘宝网简介:编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换较多。本文将向你详细介绍 Java 中编码问题出现的根本原因,你将了解到:Java 中经常遇到的几种编码格式的区别;Java 中经常需要编码的场景;出现中文问题的原因分析;在开发 Java web 程序时可能会存在编码的几个地方,一个 HTTP 请求怎么控制编码格式?如何避免出现中文问题?几种常见的编码格式为什么要编码不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理 阅读全文

关于多线程编程您不知道的 5 件事 有关高性能线程处理的微妙之处

2011-09-18 09:15 by Rollen Holt, 2601 阅读, 收藏, 编辑
摘要: 虽然很少有 Java™ 开发人员能够忽视多线程编程和支持它的 Java 平台库,更少有人有时间深入研究线程。相反地,我们临时学习线程,在需要时向我们的工具箱添加新的技巧和技术。以这种方式构建和运行适当的应用程序是可行的,但是您可以做的不止这些。理解 Java 编译器的线程处理特性和 JVM 将有助于您编写更高效、性能更好的 Java 代码。在这期的5 件事系列中,我将通过同步方法、volatile 变量和原子类介绍多线程编程的一些更隐晦的方面。我的讨论特别关注于这些构建如何与 JVM 和 Java 编译器交互,以及不同的交互如何影响 Java 应用程序的性能。1. 同步方法或同步代码块?您可能 阅读全文

使用 Jtest:一款优秀的 Java 代码优化和测试工具

2011-09-18 09:10 by Rollen Holt, 6942 阅读, 收藏, 编辑
摘要: Jtest 简介Jtest 是 Parasoft 公司推出的一款针对 Java 语言的自动化代码优化和测试工具,它通过自动化实现对 Java 应用程序的单元测试和编码规范校验,从而提高代码的可靠性以及 Java 软件开发团队的开发效率。主要功能静态代码分析:静态代码分析是指不运行源程序,仅通过分析源程序的语法、结构、接口等来检查程序正确性,找出代码隐藏的缺陷之处。Jtest 的静态代码分析功能能够按照其内置的超过 800 条的 Java 编码规范自动检查并纠正这些隐蔽且难以修复的编码错误。同时,还支持用户自定义编码规则,帮助用户预防一些特殊用法的错误。自动化单元测试:Jtest 能自动建立测试 阅读全文

Java 序列化的高级认识

2011-09-18 09:09 by Rollen Holt, 410 阅读, 收藏, 编辑
摘要: 引言将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的读写。然而在有些情况下,光知道这些还远远不够,文章列举了笔者遇到的一些真实情境,它们与 Java 序列化相关,通过分析情境出现的原因,使读者轻松牢记 Java 序列化中的一些高级认识。回页首文章结构本文将逐一的介绍几个情境,顺序如下面的列表。序列化 ID 的问题静态变量序列化父类的序列化与 Transien 阅读全文

[转载]Java文件路径详解

2011-09-16 23:58 by Rollen Holt, 3103 阅读, 收藏, 编辑
摘要: ourceAsStream ()返回的是inputstreamgetResource()返回:URLClass.getResource("") 返回的是当前Class这个类所在包开始的为置Class.getResource("/") 返回的是classpath的位置getClassLoader().getResource("") 返回的是classpath的位置getClassLoader().getResource("/") 错误的!!======================================= 阅读全文

Java字节码(.class文件)格式详解(三)

2011-09-14 23:18 by Rollen Holt, 749 阅读, 收藏, 编辑
摘要: 转自:http://www.blogjava.net/DLevin/archive/2011/09/05/358035.html2.11在ClassFile、method_info、field_info中同时存在的Attribute2.11.1Synthetic AttributeSynthetic Attribute用于指示当前类、接口、方法或字段由编译器生成,而不在源代码中存在(不包含类初始函数和实例初始函数)。相同的功能还有一种方式就是在类、接口、方法或字段的访问权限中设置ACC_SYNTHETIC标记。Synthetic Attribute由JDK1.1中引入,以支持内嵌类和接口(ne 阅读全文

Java字节码(.class文件)格式详解(二)

2011-09-14 23:17 by Rollen Holt, 4999 阅读, 收藏, 编辑
摘要: 转自:http://www.blogjava.net/DLevin/archive/2011/09/05/358034.html2.9methodsmethods数组记录了类或接口中的所有方法,包括实例方法、静态方法、实例初始化方法和类初始化方法,但不包括父类或父接口中定义的方法。methods数组中每项都是method_info类型值,它描述了方法的详细信息,如名称、描述符、方法中的attribute(如Code Attribute记录了方法的字节码)等。method_infotypedescriptorremarku2access_flags记录方法的访问权限。见2.9.1u2name_i 阅读全文