
Core Java
文章平均质量分 54
iteye_4479
这个作者很懒,什么都没留下…
展开
-
为什么Java在因特网时代那么地流行?
我以前读《计算机网络-自顶向下的方法与特色》一书时见到作者一段话,认为Java编程即将成为或者事实上成为了网络编程的标准。但是没有很仔细地进行深入解释。后来写了不少socket编程的程序,我才明白传统的C/C++语言协议栈中通信非常麻烦,Java使用面向对象类库将这些繁琐的操作非常优雅地封装了起来。 在互联网时代,RIA成为一种趋势,但是标准的通讯语言HTML只能做...原创 2012-07-22 14:14:38 · 173 阅读 · 0 评论 -
Java中的泛型
填坑,未完。2012-06-19 21:38:41 · 99 阅读 · 0 评论 -
Java中的异常处理
一、 基本概念 Java的基本理念是“结构不佳的代码不能运行”。Java属于强类型、强检查语言,即编译器会处理大量的的安全和基本的语法错误问题。但还是有一些错误巧妙地隐藏了起来,只有在运行时才被发现。 老式的程序设计语言,例如C的多重错误处理模式,往往建立在约定俗成的基础上,并不是语言的一部分。大致上,通过一个函数返回某个特殊值或设置某个标志来通知接收者,出错...原创 2012-06-18 13:39:09 · 186 阅读 · 0 评论 -
Java中的输入输出流
1 FileInputStream f = new FileInputStream("a.txt"); FileOutputStream f = new FileOutputStream("a.txt");2 ObjectOutputStream o = new ObjectOutputstream(f); ObjectInputStream o = new ObjectIn...原创 2012-04-25 15:24:33 · 121 阅读 · 0 评论 -
收集到的有趣的面试题与答案
1class Something { final int i; public void doSomething() { System.out.println("i = " + i); }} 和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗? 答案: 错。final int i是个final...原创 2012-04-25 15:19:03 · 312 阅读 · 0 评论 -
Java中的泛型与C++中的模板
以前都没有注意到Java中的泛型有那么复杂!功能还比C++中的模板差那么多。这绝对是Java中最失败的一个地方。改天要专门写一写这方面的东西,现在先挖个坑。 C++中的混型允许直接继承类型而不是具体的类,这是Java做不到的。 template <typename T>class A : public T{}; 这样A类就...2012-04-20 16:29:26 · 187 阅读 · 0 评论 -
为什么现在我不喜欢C++而喜欢Java
1 C++为了兼容C的语法,保留了很多破坏面向对象特性的关键字。简而言之,C++在OO上不够纯正。 2 C++里随时都存在一个sliced object的陷阱,我个人还没有找到一个明确的编码原则来避免这些错误。 3 Java能够在一片连续的内存中安置各式各样的对象,而C++总是力图做到精简的布局,抹杀了多样性--比如C++ 不支持不规则的多维数组、不规...原创 2012-04-12 13:01:39 · 348 阅读 · 0 评论 -
反射中若干问题
一 获取类引用的方法 (1) getClass() 获取已经初始化的对象的一个Class引用。 (2) Class.forName() 告诉编译器,如果类没有加载,就加载它。 (3) .class 字面常量 这个性能会更好,第一它增加了编译时的类型强制检查,第二它没有做对forName()方法的调用。 二 巧妙地利用编译器为我们做一些Class引用的类型检查...2012-04-10 15:55:45 · 101 阅读 · 0 评论 -
我眼中比较有意思的Java语言问题
1 说说&和&&的区别。 &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于i...原创 2012-04-09 14:43:38 · 114 阅读 · 0 评论 -
与虚拟机加载器有关,对象的加载与销毁
一 Java和C++的一个显著不同之处在于,它的对象是动态加载的,C++无法模仿。 JVM有一个组成部分--原生类加载器。它只加载可信类(比如Java API类库)。如果有WebStart类型的应用需求,或者企业级应用(RMI通信等等),则可能会在加载器链条上放上一些别的加载器。 二 什么时候类会被加载呢? 当一个类第一次被使用的时候,它最早可以...原创 2012-04-09 08:46:48 · 82 阅读 · 0 评论 -
空对象、模拟对象和桩
一个空对象,指的是一个没有赋值过,但是却在内存中存在,为了在逻辑上表示“没有这个对象但是却为这个对象准备了一个位置”,在物理上代替null所准备的对象。 在任何一个使用引用的地方,都有可能出现空指针异常,所以在没有办法确认是否一定可以得到引用的地方,就一定要做null检查,这本身是枯燥乏味,没有任何意义的。空对象因为在内存中存在,所以即使它在逻辑上没有任何意义,也可以在物...原创 2012-04-08 20:03:12 · 549 阅读 · 0 评论 -
实现RTTI的很多种方式(Java版本)
一、Java中的RTTI种类: 1 隐式的自动的上转型 2 显式的强制的下转型 3 instanceof 额外的方式 4 反射 二、RTTI的优点: 在C++这样的程序设计语言中,做动态类型检查是一件非常危险的事情,可以说是一种hacked的行为。它只能使用一些强制类型转换的操作符来做一些类型...原创 2012-04-08 19:40:06 · 123 阅读 · 0 评论 -
总结一下反射的一个应用--动态代理
把《Java核心技术》与《Java编程思想》翻过去。反射一部分讲的大同小异。总体来说《Java核心技术》讲得比较拖沓,但是比较全面,《Java编程思想》讲得比较简略,第一遍看可能看不懂。 因为之前有仔细研究过几个框架中XML配置文件的语法,发现反射中代理类的应用在框架中虽然是透明的,但是我依然能够感受它的存在。我甚至怀疑AOP的对象不是由编译器生成合成对象实现的,而是由代...2012-04-08 17:46:42 · 74 阅读 · 0 评论 -
Java中的集合框架
Java的集合类库中的迭代器与其他类库(其实是其他语言中)中的迭代器有着重要的差别。在传统的类库中,例如C++的标准模板库中,迭代器是根据数组索引建模的。【不需要查找指定元素,就可以任意移动迭代器】。Java中的迭代器,则把迭代器的移动与查找工作严格绑定在一起。要移动迭代器,就必须先检查hasNext(),免得出异常。如果移动迭代器--next(),就必然返回一个element。要删...原创 2012-06-19 21:54:13 · 109 阅读 · 0 评论