易截截图软件、单文件、免安装、纯绿色、仅160KB

读《JAVA新手通病》

一、算法和数据结构
★什么时候该用数组型容器、什么时候该用链表型容器?
★什么是散列函数?HashMap的实现原理是什么?
★什么是递归?如果你以前从来没写过递归函数,尝试着写一个(比如用递归函数进行目录树遍历)。
★什么是算法复杂度?
★你是否理解空间换时间的思想?
★写一个针对整数数组的冒泡排序函数,看看你要修改几次才能跑通。
★写一个针对整数数组的二分查找函数,看看你要修改几次才能跑通。
二、面向对象的基本功
★基于接口的继承和基于实现的继承各有什么优点、缺点?
★继承(包括extend和implement)有什么缺点?
★多态(polymorphism)有什么缺点?
★为什么Java可以多继承interface,而不可以多继承class?
★假如让你写一个小游戏(比如人机对战的五子棋),你会如何设计类结构?
★类结构设计时,如何考虑可扩展性?
三、JVM
★关于基本类型和引用类型
Java的基本类型和引用类型在本质上有什么区别。
◇这两种类型在内存存储上有什么区别?
◇这两种类型在性能上有什么区别?
◇这两种类型对于GC有什么区别?
★关于垃圾回收(Garbage Collection)
GC的实现机制。请看如下的问题:
◇GC是如何判断哪些对象已经失效?
◇GC对性能会有哪些影响?
◇如何通过JVM的参数调优GC的性能?
★关于字符串 
      对于Java提供的String和StringBuilder(StringBuffer),想必很多人都知道:String用于常量字符串,StringBuilder用于可变字符串。那Java当初为什么要这样设计?为啥不用一个类来统一搞定?
★关于范型(Generic Programming)
从JDK 1.5开始,Java引入了一个重量级的语法:范型。不过,很多仅仅知道范型的皮毛,而对于很多本质的东东,不甚了解。
◇GP是在编译时实现的还是在运行时实现的?为什么要这么实现?
◇GP的类型擦除机制是咋回事?有啥优点/缺点?
◇使用范型容器(相对于传统容器)在性能上有啥影响?为什么?
★关于多线程
几个关于多线程的问题。
◇synchronized关键字是怎么起作用的?
◇synchronized的颗粒度(或者说作用域)如何?是针对某个类还是针对某个类对象实例?
◇synchronized对性能有没有影响?为什么?
◇volatile关键字又是派啥用的?啥时候需要用这个关键字?


相关文档:

java中的动态代理

   Java在JDK1.3之后加入了可协助开发动态代理功能的API.使用动态代理,可以使一个处理者(代理)服务于各个对象。创建一个动态代理类只需实现java.lang.reflect.InvocationHandler接口。
  下面创建一个处理日志的动态代理类LogHandler去代理HelloSpeaker类
   首先创建HelloSpeaker的接口
pa ......

高质量JAVA代码编写规范

1. Java 命名约定
  除了以下几个特例之外,命名时应始终采用完整的英文描述符。此外,一般应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。
1.1 一般概念
  * 尽量使用完整的英文描述符
  * 采用适用于相关领域的术语
  * 采用大小写混合使名字可读
  * 尽量少用缩写,但如果 ......

四个有害的java编程习惯

John O'Hanley 的这篇文章列举了四个有害的java编码习惯,并提出了改正方案。
这四个习惯普遍存在于java程序员中,并且已经被广泛接受,大家都习以为常,流毒甚远。
1.对局部变量(local variables),字段(fields),参数(method arguments)这三种变量的命名没有区分,造成了代码的阅读困难,增加了代码的维护成本。
作者 ......

java nio在多线程环境下的恶梦之终结

有人说java nio在多线程环境下编程简直就是个恶梦,其实你如果能把握住java nio API的要领,你就可以将之驾驭.
0. 一个 channal 对应一个SelectionKey in the same selector.
e.g:
SelectionKey sk=sc.register(selector, SelectionKey.OP_READ, handler);
sk==sc.register(selector, SelectionKey.OP_WRITE, handl ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号