程序员经常可以通过搜索或者记忆来完成代码,但是许多时候并不真正理解为什么那样写。也就是说,有一定经验的程序员不会犯一些低级的语法错误,但是因为不深入理解有可能造成一些高级错误,比如说运行无效率,代码难Debug,等等。下面是一些常见的理解性问题,每一个问题尽量用图或代码去描述。带着问题去看有图的内容是一种娱乐和消遣。内容全部来自“码河网”(programcreek.com),包括基本语法、数组、集合类、泛型、面向对象、垃圾回收、异常控制、输入输出和内存。不断更新,欢迎大家提出有趣味的问题和意见。
–数据类型
关于double的一个常见问题 String不变性? 为什么String有不变性? String是如何传递的? length vs length() 什么是null?–通用类和方法
比较Comparator与Comparable hashCode()和equals()之间的协议–面向对象
Overloading vs Overriding Fields能不能被Overridden? 4种内部类 什么是内部接口? 构造函数如何使用? 访问权限 Private构造方法有什么作用?– 异常处理
异常处理介绍 异常处理类结构– 文件
一行一行读取文件 一行一行写入文件– 多线程
多线程对日常编程有什么用? 一个图来演示Java处理多线程的原理 join() notify()和wait()– Collections & Maps
Collection和Map类以及接口 比较不同的List 比较不同的Set 比较不同的Map 怎样写一个有效率的计数器? HashMap常用的方法:循环,打印,按值排序 什么是类型擦除? 为什么Java引进泛型Generics的概念?— 反射
Java是值传递还是址传递?为什么这样设计 为什么需要反射Reflection? (1) 为什么需要反射Reflection? (2) Example List 什么是框架Framework?为什么到处都是它? Why need Web framework?— JVM
什么是JVM? JVM运行时是什么样子? 垃圾收集器是如何工作的? 简单数据类型在内存中是什么形式? 数组在内存里是什么情况? Java如何处理Aliasing? 运行时对象在内存中是什么样的? 什么是内存泄漏?–有关应用的一些概念
什么是Servlet Container? Tomcat是什么? 为什么需要软件测试? 什么是面向方面编程 库与框架的区别 理解框架的一个小例子 把jar转化成exe– 一些理论问题
循环与递归 Java与计算机核心课程 编译器是如何工作的? 8分钟了解什么是正则表达式 怎样用动态规划方法计算两字符串间的距离?– 一些库的简单示例
Guava JSoup Spring Struts 2 Swing Eclipse RCP–Top 10
图说Java 数组10大常用方法 String常见10大问题 正则表达式常见10大问题 异常处理常见10大问题 Collection常见的10个问题 Map常见的10个问题–推荐收藏
Java常用库汇总 Java代码实例查询 讲故事理解设计模式 对Java高级程序员有益的10大网站 对Java高级程序员有益的10本书 编程面试10大算法概念汇总 优秀Java程序员博客汇总– 娱乐
周末找点乐趣