Java百问

程序员经常可以通过搜索或者记忆来完成代码,但是许多时候并不真正理解为什么那样写。也就是说,有一定经验的程序员不会犯一些低级的语法错误,但是因为不深入理解有可能造成一些高级错误,比如说运行无效率,代码难Debug,等等。下面是一些常见的理解性问题,每一个问题尽量用图或代码去描述。带着问题去看有图的内容是一种娱乐和消遣。内容全部来自“码河网”(programcreek.com),包括基本语法、数组、集合类、泛型、面向对象、垃圾回收、异常控制、输入输出和内存。不断更新,欢迎大家提出有趣味的问题和意见。

  1. 从Hello World中你可以学到什么?
  2. 如何创建自己的库?
  3. 类如何初始化?
  4. 包和路径
  5. Static Type Checking
  6. --数据类型

  7. 关于double的一个常见问题
  8. String不变性?
  9. 为什么String有不变性?
  10. String是如何传递的?
  11. length vs length()
  12. 什么是null?
  13. --通用类和方法

  14. 比较Comparator与Comparable
  15. hashCode()和equals()之间的协议
  16. --面向对象

  17. Overloading vs Overriding
  18. 什么是instance initializer?
  19. Fields能不能被Overridden?
  20. 4种内部类
  21. 什么是内部接口?
  22. Constructors of Sub and Super classes?
  23. 访问权限
  24. Private构造方法有什么作用?
  25. Some notes for SCJP
  26. Some notes about Declaration, Initialization and Scoping
  27. -- 异常处理

  28. 异常处理介绍
  29. 异常处理类结构
  30. -- 文件

  31. 一行一行读取文件
  32. 一行一行写入文件
  33. close()放在try-catch-finally哪里?
  34. Date Formatting
  35. How to use properties file?
  36. Examples of operating files
  37. -- 多线程

  38. 多线程对日常编程有什么用?
  39. 一个图来演示Java处理多线程的原理
  40. Multithread through Overriding
  41. join()
  42. notify()和wait()
  43. -- Collections & Maps

  44. Collection和Map类以及接口
  45. TreeSet Example
  46. 深入理解Arrays的排序方法sort
  47. 比较不同的List
  48. 比较不同的Set
  49. 比较不同的Map
  50. 怎样写一个有效率的计数器?
  51. HashMap常用的方法:循环,打印,按值排序
  52. 什么是类型擦除?
  53. 为什么Java引进泛型Generics的概念?
  54. Set vs. Set<?>
  55. Arrays.sort()
  56. What's the best way of converting Array to ArrayList?
  57. -- 反射

  58. Java是值传递还是址传递?为什么这样设计
  59. 为什么需要反射Reflection? (1)
  60. 为什么需要反射Reflection? (2) Example List
  61. 什么是框架Framework?为什么到处都是它?
  62. Why need Web framework?
  63. -- JVM

  64. 什么是JVM?
  65. JVM运行时是什么样子?
  66. 垃圾收集器是如何工作的?
  67. 简单数据类型在内存中是什么形式?
  68. 数组在内存里是什么情况?
  69. Java如何处理Aliasing?
  70. 运行时对象在内存中是什么样的?
  71. 什么是内存泄漏?
  72. --有关应用的一些概念

  73. 什么是Servlet Container? Tomcat是什么?
  74. 为什么需要软件测试?
  75. 什么是面向方面编程
  76. 库与框架的区别
  77. 理解框架的一个小例子
  78. 把jar转化成exe
  79. -- 一些理论问题

  80. 循环与递归
  81. Java与计算机核心课程
  82. 编译器是如何工作的?
  83. Type Checking for Object Oriented Features
  84. Generate Code for Overloaded and Overridden Methods?
  85. 8分钟了解什么是正则表达式
  86. 怎样用动态规划方法计算两字符串间的距离?
  87. -- 一些库的简单示例

  88. Guava
  89. Log4j
  90. JSoup
  91. Spring
  92. Open Source Projects Using Spring Framework
  93. Struts 2
  94. Swing
  95. Eclipse RCP
  96. How CVS works?
  97. How to use Eclipse JDT to do code analysis?
  98. --Top 10

  99. 图说Java
  100. 数组10大常用方法
  101. String常见10大问题
  102. 正则表达式常见10大问题
  103. 异常处理常见10大问题
  104. Collection常见的10个问题
  105. Map常见的10个问题
  106. --推荐收藏

  107. Java常用库汇总
  108. Java代码实例查询
  109. 讲故事理解设计模式
  110. 对Java高级程序员有益的10大网站
  111. 对Java高级程序员有益的10本书
  112. 编程面试10大算法概念汇总
  113. 优秀Java程序员博客汇总
  114. -- 娱乐

  115. Java vs. Python: Basic Syntax, Date Types
  116. How to write a crawler in Java?
  117. 周末找点乐趣
  118. SWOT Analysis for Websites
  119. Blogging Tips
Category >> Others  
If you want someone to read your code, please put the code inside <pre><code> and </code></pre> tags. For example:
<pre><code> 
String foo = "bar";
</code></pre>