博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java新手的通病
阅读量:4156 次
发布时间:2019-05-25

本文共 1190 字,大约阅读时间需要 3 分钟。

算法与数据结构

★什么时候该用数组型容器、什么时候该用链表型容器?
★什么是散列函数?HashMap 的实现原理是什么?
★什么是递归?如果你以前从来没写过递归函数,尝试着写一个(比如用递归函数进行目录树遍历)。
★什么是算法复杂度?
★你是否理解空间换时间的思想?
★写一个针对整数数组的冒泡排序函数,看看你要修改几次才能跑通。
★写一个针对整数数组的二分查找函数,看看你要修改几次才能跑通

面向对象

★基于接口的继承和基于实现的继承各有什么优缺点?
★继承(包括 extend 和 implement)有什么【缺点】?
★多态(polymorphism)有什么【缺点】?
★为什么 Java 可以多继承 interface,而不可以多继承 class?
★假如让你写一个小游戏(比如人机对战的五子棋),你会如何设计类结构?
★类结构设计时,如何考虑可扩展性?

★关于基本类型和引用类型

很多新手不理解Java的基本类型和引用类型在本质上有什么区别。请看如下的问题:

◇这两种类型在内存存储上有什么区别?
◇这两种类型在性能上有什么区别?
◇这两种类型对于 GC 有什么区别?
  关于前两个问题,请看之前的帖子“Java性能优化[1]:基本类型 vs 引用类型”。

★关于垃圾回收(Garbage Collection)

  很多新手不理解 GC 的实现机制。请看如下的问题:

◇GC 是如何判断哪些对象已经失效?
◇GC 对性能会有哪些影响?
◇如何通过 JVM 的参数调优 GC 的性能?
  关于 GC 的问题,可以参见之前的帖子“Java性能优化[3]:关于垃圾回收(GC)”。

★关于字符串

  对于 Java 提供的 String 和 StringBuilder,想必很多人都知道:String 用于常量字符串,StringBuilder 用于可变字符串。那 Java 当初为什么要这样设计捏?为啥不用一个类来统一搞定捏?

★关于范型(Generic Programming)

  从 JDK 1.5开始,Java 引入了一个重量级的语法:范型。不过捏,很多新手仅仅知道范型的皮毛,而对于很多本质的东东,不甚了解。

◇GP 是在编译时实现的还是在运行时实现的?为什么要这么实现?
◇GP 的类型擦除机制是咋回事?有啥优点/缺点?
◇使用范型容器(相对于传统容器)在性能上有啥影响?为什么?

★关于多线程

  另外,多线程也是大部分 Java 新手的短板。所以俺最后再来提几个关于多线程的问题。

◇synchronized 关键字是怎么起作用滴?
◇synchronized 的颗粒度(或者说作用域)如何?是针对某个类还是针对某个类对象实例?
◇synchronized 对性能有没有影响?为什么?
◇volatile 关键字又是派啥用滴?啥时候需要用这个关键字捏?

转载地址:http://wqwxi.baihongyu.com/

你可能感兴趣的文章
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
JSP的内置对象及方法
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Spring MVC和Struts2的比较
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
LOCAL_PRELINK_MODULE和prelink-linux-arm.map
查看>>
Simple Guide to use the gdb tool in Android environment
查看>>
Netconsole to capture the log
查看>>
Build GingerBread on 32 bit machine.
查看>>
How to make SD Card world wide writable
查看>>
Detecting Memory Leaks in Kernel
查看>>
Linux initial RAM disk (initrd) overview
查看>>
Timestamping Linux kernel printk output in dmesg for fun and profit
查看>>
There's Much More than Intel/AMD Inside
查看>>
CentOS7 安装MySQL 5.6.43
查看>>