代老师的博客 https://github.com/daichangya

Java深度历险(一)——Java字节代码的操纵

在一般的Java应用开发过程中,开发人员使用Java的方式比较简单。打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了。这种开发模式背后的过程是:开发人员编写的是Java源代码文件(.java),IDE会负责调用Java的编译器把Java源代码编译成平台无关的字节代码(byte code),以类文件的形式保存在磁盘上(.class)。Java虚拟机(JVM)会负责把Java字节代码加载并执行。Java通过这种方式来实现其“编写一次,到处运行(Write once, run anywhere)” 的目标。Java类文件中包含的字节代码可以被不同平台上的JVM所使用。Java字节代码不仅可以以文件形式存在于磁盘上,也可以通过网络方式来下载,还可以只存在于内存中。JVM中的类加载器会负责从包含字节代码的字节数组(byte[])中定义出Java类。在某些情况下,可能会需要动态的生成 Java字节代码,或是对已有的Java字节代码进行修改。这个时候就需要用到本文中将要介绍的相关技术。首先介绍一下如何动态编译Java源文件。

daicy daicy 发布于 2019-04-17

IBM Rational 助您轻松完成自动化功能测试

简介: 本文将向读者介绍 IBM Rational Functional Tester 的强大的功能和良好的易用性,以及如何帮助测试人员轻松的完成自动化的功能测试。

daicy daicy 发布于 2019-04-17

如何写一个不可变类?

不可变的对象指的是一旦创建之后,它的状态就不能改变。String类就是个不可变类,它的对象一旦创建之后,值就不能被改变了。 不可变对象对于缓存是非常好的选择,因为你不需要担心它的值会被更改。不可变类的另外一个好处是它自身是

daicy daicy 发布于 2019-04-17

Spring Richclient — 企业级富客户端开发框架介绍

简介: 本系列文章的第 1 部分主要讲述了如何使用 Spring Richclient 构建企业级胖客户端应用,本文是该系列文章的第 2 部分,主要讲述与 Spring Richclient 架构相关的知识,从而使您更深入的了解该框架的设计思想。

daicy daicy 发布于 2019-04-17

常见的Java问题排查方法

以下是Java应用在运行时常见的一些问题,总结了运行时黑盒方式的一些排查方法,也希望看到的同学能给予补充,无论是补充碰到的问题,还是补充解决方法。 类装载的相关问题 写过Java代码的同学估计都碰到过ClassNotFoundException/NoClassDefFoundError/NoSuchMethodException(还有一个常见的ClassCastException就不在这里

daicy daicy 发布于 2019-04-17

Java 网页浏览器组件介绍

简介: 使用 Java 开发客户端应用有时会需要使用到浏览器组件,本文将介绍在 Java 用户界面中使用浏览器的四种方法,并且比较它们各自的优点与不足,便于 Java 开发者在实际开发过程中选择。

daicy daicy 发布于 2019-04-17

Java深度历险(二)——Java类的加载、链接和初始化

在上一篇文章中介绍了Java字节代码的操纵,其中提到了利用Java类加载器来加载修改过后的字节代码并在JVM上执行。本文接着上一篇的话题,讨论Java类的加载、链接和初始化。Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是java.lang.Class类的对象。一个Java类从字节代码到能够在JVM中被使用,需要经过加载、链接和初始化这三个步骤。这三个步骤中

daicy daicy 发布于 2019-04-17

JAVA上加密算法的实现用例

通常,使用的加密算法 比较简便高效,密钥简短,加解密速度快,破译极其困难。本文介绍了 MD5/SHA1,DSA,DESede/DES,Diffie-Hellman的使用。第1章基础知识 1.1. 单钥密码体制单钥密码体制是一种传统的加密算法,是指信息的发送方和接收方共同使用同一把密钥进行加解密。通常,使用的加密算法比较简便高效,密钥简短,加解密速度快,破译极其困难。但是加密

daicy daicy 发布于 2019-04-17

100个高质量Java开发者博客

原文中还没有100个。作者希望大家一起来推荐高质量的Java开发博客,然后不段补充到这个列表。欢迎你也参与推荐优质的Java开发博客。(声明一下:我们的数学不是体育老师教的!:) ) 本文的主要目的是收集全球范围内100个高质量Java开发者博客

daicy daicy 发布于 2019-04-17

最常用的Java库一览

1) 本文列出的名单是根据我自己的调查,并结合个人的经验。有可能是它们不恰恰是最流行的,但至少众所周知的。 2) 我会不断更新这个列表,使之更加完整和准确。感谢您的意见。

daicy daicy 发布于 2019-04-17

JDK6和JDK7中的substring()方法

substring(int beginIndex, int endIndex)在JDK6与JDK7中的实现方式不一样,理解他们的差异有助于更好的使用它们。为了简单起见,下面所说的substring()指的就是substring(int beginIndex, int end

daicy daicy 发布于 2019-04-17

java之PO,VO,TO,BO,DAO,POJO名词介绍

java之PO,VO,TO,BO,DAO,POJO名词介绍

daicy daicy 发布于 2019-04-17

关于Java性能的9个谬论

Java的性能有某种黑魔法之称。部分原因在于Java平台非常复杂,很多情况下问题难以定位。然而在历史上还有一种趋势,人们靠智慧和经验来研究Java性能,而不是靠应用统计和实证推理。在这篇文章中,我希望拆穿一些最荒谬的技术神话。 1.Java很慢 关于Java的性能有很多谬论,这一条是最过时的,可能也是最为明显的。 确实,在上世纪90年代和本世纪初处,Java有时是很慢。

daicy daicy 发布于 2019-04-17

java socket (回顾)

最近做项目,回想起了socket,做一个小例子回顾下,长期没有使用,忘记的差不多了。 预期目标:客户端向服务器端发送消息,服务器端读取信息,回复客户端,循环往复。

daicy daicy 发布于 2019-04-17

EJB 工作原理

前两天在这个版块的精华区里翻到了Robbin关于EJB的调用原理的分析,受益非浅,但感觉用纯文字来表达效果似乎不够直观,而且对RMI的阐述也略嫌少了些。这里我根据自己的一点体会,在Robbin帖子的基础上再来说说这个话题,供大家参考。  首先,我想先说说RMI的工作原理,因为EJB毕竟是基于RMI的嘛。废话就不多讲了,RMI的本质就是实现在不同JVM之间的调用,工作原理图如下:

daicy daicy 发布于 2019-04-17

剖析float型的内存存储和精度丢失问题

问题提出:12.0f-11.9f=0.10000038,"减不尽"为什么?                  new Float(55442.345),输出55442.344为什么?(单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。双精度型,有效位为十六位) 现在我们就详细剖析一下浮点型运算为什么会造成精度丢失? 1、小数的二进制

daicy daicy 发布于 2019-04-17

Java你不知道的那些事儿—Java隐藏特性

每种语言都很强大,不管你是像我一样的初学者还是有过N年项目经验的大神,总会有你不知道的东西。就其语言本身而言,比如Java,也许你用Java开发 了好几年,对其可以说是烂熟于心,但你能保证Java所有的用法你都知道吗?今天没事就来整理下Java中有哪些隐藏的特性呢?

daicy daicy 发布于 2019-04-17

影响Java EE性能的十大问题

本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和JVM技术。他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一下常见的10个影响Java EE性能问题。 1.缺乏正确的容量规划 容量规划是一个全面的和发展的过程标准,预测当前和未来的IT环境容量需求。制定合理的容量规划不仅会确保和跟踪当前IT生产能力和稳定性,同时也会确保新项目以最小的风

daicy daicy 发布于 2019-04-17

推荐给初级Java程序员的3本进阶书

原作者在这篇文章中介绍3本不错的技术书籍。作者认为这些书籍对新手或者学生而言尤其有帮助。通过一些基础性的教程入门后,我们可以使用Java做基础性的编程。然而,当我们需要从初级提升更高的一个层次时,大多数的人却不知道从何入手。一些好的书籍在这个阶段可以很好地帮助初级开发人员。

daicy daicy 发布于 2019-04-17

Java编程:常见问题汇总

该页面收集了一些不好的代码,对于初学者来说看起来似乎并不那么糟糕。初学者经常在语言语法上挣扎。他们对标准JDK类库以及如何最好地利用它也不了解。实际上,我已经从日常初级代码中收集了所有示例。我已经修改了原始代码,为它提供了示例字符,从而突出了问题所在。SonarQube可以很容易地发现许多这些问题。我强烈推荐此工具。

daicy daicy 发布于 2019-04-17