java新手需知的技能!
多线程并发
多线程是Java中普遍认为比较难的一块。多线程用好了可以有效提高cpu使用率, 提升整体系统效率, 特别是在有大量IO操作阻塞的情况下;但是它也是一柄双刃剑, 如果用不好,系统非但提升不大,或者没有提升,而且还会带来多线程之间的调试时等问题。在多线程中内容有很多,只是简单说明一下Java中初步使用多线程需要掌握的知识点,以后有机会单独再详细介绍一些高级特性的使用场景。
集合框架
这个是一个需要多加掌握的部分,做java开发,可以说没有不用到集合框架的,这很重要。但是这里的知识点并不难,但是对于集合最好要了解内部的实现方式,因为这样有助于你在各个不同的场景选择适合的框架来解决问题,比如有1W个元素的集合,经常要进行contains判断操作,知道了集合的特性或者内部实现,就很容易做出正确的选择。这里包括了如下内容(并发相关不包含在内):集合框架的体系: 基础Collection ,Map
具体集合实现的内容, List ,Set ,Map 具体的实现,内部结构, 特殊的方法, 适用场景等集合相关的工具类 Collections 等的用法.
面向对象编程的概念
这是一个java的核心概念,对于任何java开发者都需要熟练掌握。Java中很多特性或者说知识点都是和java面向对象编程概念相关的。在我的理解, 一个好的开发者不仅仅需要了解这些特性(知识点)本身,也更需要知道这些对象在java的面向对象编程概念中是如何体现出来的,这样更有利于开发者掌握 java这门开发语言,以及其他面向对象编程的语言。主要的知识点包括有:面向对象三大特性:封装,继承,多态; 各自的定义概念,有哪些特性体现出 来,各自的使用场景静态多分派,动态单分派的概念重载的概念和使用继承:接口多实现,基类单继承抽象,抽象类,接口多态:方法覆盖的概念和使用接口回调静态属性在java日常开发中也是经常使用,需要了解和 static 关键字相关的用法,还有和其他关键字的配合使用, 如是否可以和 abstract, final 等关键字联合使用。
主要需要掌握的有:静态属性的定义,使用,以及类加载时如何初始化
静态方法的定义和使用
静态类的定义和使用
静态代码块的定义和初始化时机
JVM相关(包括了各个版本的特性)
对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深, 对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。
JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。我在面试有超过3年Java经验的开发者的时候, JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证java开发能力的高低。在JVM这个大类中,我认为需要掌握的知识有:JVM内存模型和结构GC原理,性能调优
调优:Thread Dump, 分析内存结构class 二进制字节码结构, class loader 体系 , class加载过程 , 实例创建过程
方法执行过程:Java各个大版本更新提供的新特性(需要简单了解)