12月 042015
 

注意:本文章主要依据BCEL官方手册进行阐述,大部分内容都是从该手册直接翻译过来的,并做了一定的简化,同时还参考了《深入理解Java虚拟机》(周志明著)。笔者在下面阐述的时候也会给出相应的章节,如果读者有不清楚的地方请参考BCEL官方手册或是BCEL API,以及《深入理解Java虚拟机》。

BCEL是什么?

相信搜索到这篇文章的读者应该知道BCEL是啥,不过还是简要提一下吧:BCEL(Byte Code Engineering Library)原本是Apache Jakarta的一个子项目,目前已成为Apache Commons的一个子项目,主要用于分析、创建、操纵Java  class文件。 Continue reading »

12月 042015
 

虽然用Java编程已经有几年了,但一直没好好看Java的各种语法细节,都是碰上问题就去网上搜,最近打算重新看一下Java核心技术(Core Java)这本书,毕竟很久之前看过,有不少东西都忘记了,顺便做一下读书笔记,摘录一下自己在书中看到的比较“新鲜”的Java语法。我觉得应该有不少人和我一样平时只是用Java,但没想到或是忘记Java还有这样那样的用法,于是贴在自己的博客上给大家分享一下。
下面给出链接(将会不断更新): Continue reading »

12月 042015
 

5.1 类、超类和子类
Java中,所有继承都是公有继承,没有C++中的私有继承、保护继承。
子类不能直接访问超类的私有域,应该用super.getXXX()的方式来获取。
子类中可以增加域、方法或是覆盖超类的方法,但绝不能删除继承的任何域与方法。
如果子类的构造器没有显式地调用超类的构造器,则将自动地调用超类默认(没有参数)的构造器。如果超类没有不带参数的构造器,并在子类的构造器中又没有显式地调用超类的其他构造器,则Java编译器将报告错误。 Continue reading »

12月 042015
 

4.1 面向对象程序设计概述
4.1.3 识别类
设计面向对象的系统时首先从设计类开始,然后每个类中添加方法。
识别类的简单规则是在分析问题的过程中寻找名词,而方法对应着动词。——“名词与动词”原则只是一种粗略的方法,还依赖于个人的开发经验。 Continue reading »

12月 042015
 

3.3 数据类型
Java有一个能表示任意精度的算术包,通称“big number”,该包中的用于表示大的数值。
3.3.1 整型
Java中整型的范围与运行Java代码的机器无关,已经规定了各种数据类型所使用的字节数和取值范围(int、short、long、byte依次占用4、2、8、1个字节)。Java中没有任何unsigned type。
PS:C/C++中int表示的整型与目标机器有关。读《C和指针》的时候我记得读到过这么一句:C语言规范只规定了int的最小取值范围。 Continue reading »

12月 032015
 

有这么一道java题目,让人觉得很费解:

int i = 0;
i = i++;
System.out.println(i);

i打印出的结果是0!!相同的表达式在C中则是我们所想象的1!!这个问题从字节码角度考虑就比较容易理解了。下面给出我搜到的一个分析的比较清楚的帖子,给大家看看:
原帖地址:http://piaoboqiu.blog.163.com/blog/static/123127827200910192122472/
具体测试一下以说明问题: Continue reading »

8月 142011
 

最近做项目把JDK的版本升到了1.6,但是问题也就随之而来。
首先,在eclipse中启动Tomcat服务器,始终不能启动
clip_image002
java.lang.NoClassDefFoundError: jdk1/6/0/10
开始以为是版本不兼容,但是直接发布在Tomcat目录下,直接点击Tomcat的StartUp.bat是可以启动的,运行正常。
于是写了一个测试类,在eclipse中运行这个类,只是输出几个字符,居然也不可以,报错信息一样。 Continue reading »

2月 062011
 
初学java,对于环境变量的配置想来却总觉得不是很清楚,总结一下自己的理解,让头脑清楚一些。
下载好的JDK是一个可执行安装程序,双击安装。将安装路径改为:C:jdk1.6.0(当然其他路径也可以)。
JDK安装完成之后我们来设置环境变量:
我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量: Continue reading »