Java 新手入门需要关注的一些问题

声明:本文所有列举的问题都来源于 《编程随想》的博客,这个博客的博主知识渊博,编程方面的一些文章质量很高,给人醍醐灌顶的感觉。

算法和数据结构

  • 什么时候该用数组类型容器,什么时候该用链表型容器,如何合理的使用数据类型

  • 什么是散列函数,HashMap的实现原理是什么

  • 什么是递归,使用递归实现目录树遍历

  • 什么是算法复杂度

  • 是否理解空间换时间的思想

  • 写一个针对整数数组的冒泡排序,

  • 写一个针对整数数组的二分查找函数

面向对象

  • 基于接口的继承和基于实现的继承各有什么优缺点

  • 继承(extend implement) 有什么缺点

  • 多态有什么缺点

  • 为什么 Java 可以多继承interface,不可以多继承 class

  • 假如让你写一个小游戏,如五子棋人机对战,如何设计类结构

  • 类结构设计时,如何考虑可扩展性

编程习惯(应当避免)

  • 随意的命名

  • 习惯于代码的 copy & paste

  • Magic Number 满天飞

  • 代码耦合度太大

  • 被 GC 宠坏(资源不懂回收)

异常处理使用不当

  • 空 catch 语句块

  • 没有使用 finally

  • 笼统的 catch 语句块

  • 使用函数返回值做错误处理

  • 不清楚 Checked Exception 和 Runtime Exception的区别

Checked Exception 表示可恢复的异常,也就是必须检查的异常
Runtime Exception 表示不可恢复的异常

Java 虚拟机 JVM

  • 基本类型和引用类型

    • 基本类型和引用类型在内存存储上有什么区别

    • 这两种类型在性能上有什么区别

    • 这两种类型对于 GC 有什么区别

  • 垃圾回收机制

    • GC 是如何判断哪些对象已经失效

    • GC 对性能有哪些影响

    • 如何通过 JVM 参数调优 GC 性能

  • 关于字符串

    • String 和 StringBuilder的区别,为啥要设计两种类型

  • 关于泛型

    • GP 是在编译时还是在运行时实现的,为什么要这么实现

    • GP 的类型擦除机制是咋回事,有啥优缺点

    • 使用泛型容器在性能上有啥影响,为什么

  • 关于多线程

    • synchronized 关键字起什么作用

    • synchronized 的作用域如何,是针对某个类还是针对某个对象实例

    • synchronized 对性能的影响,为什么

    • volatile 关键字什么用途,什么时候需要这个关键字

你可能感兴趣的:(java,新手)