天天动画片 > 八卦谈 > Java基础学习知识点汇总,Java从入门到精通

Java基础学习知识点汇总,Java从入门到精通

八卦谈 佚名 2024-02-12 08:27:19

Java的基础知识就像我们所住的房子的地基,如果地基不稳,上面所盖的楼房再宏伟,也是没人敢去入住的,同理Java的基础不牢固,以后也很难成为真正意义上的高手或独当一面的工程师。



Java语言自身来看,主要的学习难点集中在基础部分,所以通常Java基础部分的学习是整个Java语言学习的重点。



Java基础学习


Java基础的学习我总结为三个阶段:

  • 环境和工具准备

  • Java基础入门

  • Java核心技术



第一个阶段:环境和工具准备

  • 准备一台电脑,要能联网

  • 下载、安装 JDK,配置 Java 开发环境

  • 下载、配置 Maven

  • 下载、安装 IntelliJ IDEA

  • 准备一个 GitHub 仓库(或者码云),管理 Java 源代


既然要学 Java,JDK 是必须要先安装的,否则 Java 程序就没法编译和执行。


Maven 也是需要提前安装和配置的,因为后面进阶的话,需要一些练手项目,它们通常都需要 Maven 来加载第三方类库。


使用集成开发环境 IntelliJ IDEA 来敲 Java 代码吧,比 Eclipse 更流行。千万不要使用记事本编写源代码了,对于小白来说,时间是宝贵的,记事本不适合小白用来编程(入门)。

有了 IDEA,后面学习源码的话,就会方便很多,包括反编译字节码。

  • 如果英语功底不太好的话,建议安装这两款 IDEA 插件:chinese 和 translation。

  • 如果注重编码规范的话,建议安装这两款 IDEA 插件:Alibaba 和 SonarLint。

为什么还需要GitHub 仓库或者码云仓库呢?它们可以用来在线云同步源代码,防止版本丢失。学到最后,还可以形成一套自己的工具库,轮子就有了,上班的时候工作效率就会高很多,能直接用的代码再也不用重新写了。

  • 书的话,我推荐两本,一本《Java 核心技术卷》,一本《Head First Java》。



  1. 《Java 核心技术卷》分为上下两册,上册的难度较低,可以在最短时间内刷完,尤其是有了 C语言的编程基础后,再刷这本书可以说是手到擒来。下册涉及到的内容有流与文件(☆)、XML、网络(☆)、数据库编程、国际化、Swing、AWT、JavaBean、安全(☆)、脚本编译和注解处理、分布式对象、本地方法(☆),没有标星的内容我认为可以略过。

  2. 《Head First Java》更有趣一些,里面有很多小游戏,很活泼的一本书。



两本书之间的风格差别比较大,之前就有读者给我反馈说,《Head First Java》有点驾驭不了,那就挑《Java 核心技术卷》。



  • Java在线学习教程,动力节点的的Java零基础,适合Java小白入门,基础+进阶都有。



Java全套学习资料需要的小伙伴,私信扣“1”



第二阶段:Java 基础入门



1)基本数据类型



  • 8 种基本数据类型(boolean、char、byte、short、int、long、float、double)

  • 整形中 byte、short、int、long 的取值范围

  • 单精度和双精度

  • 为什么不能使用“==”比较浮点数

  • 基本类型和包装类型的区别

  • 自动拆箱与装箱

  • Integer 的缓存机制



2)操作符



  • 算术运算符

  • 逻辑运算符

  • 比较运算符



3)流程控制语句



  • 条件分支(if/else/else if、三元运算符、switch)

  • 循环或者遍历(for、while、do-while)

  • break 和 continue



4)包



  • 创建包

  • 导入包

  • 包全名



5)main 方法详解



  • public 关键字

  • static 关键字

  • void 关键字

  • main 方法

  • 字符串数组参数(String[] args)



6)数组



  • 什么是数组?

  • 访问数组

  • 遍历数组

  • 打印数组

  • 可变参数

  • 数组排序

  • 数组转成 Stream

  • 数组转成 List

  • 数组搜索

  • java.util.Arrays

  • 数组越界



7)注释



  • 单行注释

  • 多行注释

  • 文档注释

  • 注释真的不会被执行吗?

  • 优秀的程序员真的不写注释吗



8)字符串



  • 双引号字符串和 new 字符串对象

  • 字符串为什么是不可变的?

  • String、StringBuilder 和 StringBuffer 之间的区别

  • 字符串拼接的几种方式

  • 字符串常量池

  • 关于 intern

  • 字符串比较(== 和 equals)

  • 字符串拆分

  • 字符串操作小技巧

  • 字符串转整形

  • 生成 UUID

  • 字符串可以引用传递吗?

  • 字符串长度

  • 关于 substring



第三阶段:Java 核心技术



1)面向对象



  • 面向对象和面向过程

  • 封装

  • 继承

  • 多态

  • 接口

  • 抽象类

  • 重写和重载

  • 构造方法

  • 局部变量、成员变量、静态变量、常量

  • 值传递还是引用传递

  • final 关键字

  • this 关键字

  • super 关键字

  • 不可变对象

  • equals() 和 hashCode()

  • 打印 Java 对象

  • NullPointerException



2)常用工具类



  • 字符串相关的工具类

  • 日期时间相关的工具类

  • 枚举

  • 随机数

  • 正则表达式

  • Apache-commons 工具库

  • Guava 工具库



3)集合框架



  • ArrayList

  • LinkedList

  • ArrayList 和 LinkedList 之间的区别

  • 不可变 List

  • CopyOnWriteArrayList

  • HashMap

  • LinkedHashMap

  • TreeMap

  • ConcurrentHashMap

  • fail-fast



4)反射机制



  • 什么是反射?

  • 反射有什么用?

  • Class 类



5)异常处理



  • 为什么需要异常处理机制?

  • Error 和 Exception

  • try-catch-finally

  • try-with-resource

  • 自定义异常

  • 尽量捕获原始异常

  • 不要打印堆栈后再抛出异常

  • 不要用异常处理机制代替判断

  • 不要过早捕获异常



6)注解



  • 注解是什么?

  • 注解的生命周期

  • 注解装饰的目标

  • 自定义注解

  • 使用注解



7)IO 流



  • 字符流、字节流

  • 输入流、输出流

  • 同步、异步

  • 阻塞、非阻塞

  • BIO、NIO 和 AIO

  • NIO 2.0



8)序列化



  • 什么是序列化和反序列化

  • Java 如何实现序列化和反序列化

  • Serializbale 和 Externalizable

  • serialVersionUID



9)泛型



  • 什么是泛型?

  • 类型擦除

  • 泛型带来的问题

  • 泛型中 K T V E 这些特殊字幕的含义

  • 通配符

  • 上下界限定符 extends 和 super

  • 不要在集合中使用 Java 原始类型



10)单元测试



  • Junit

  • TestNG



11)编码方式



  • ASCII

  • Unicode

  • UTF-8

  • GBK、GB2312

  • 如何解决乱码问题



12)并发编程



  • 什么是并发

  • 什么是并行

  • 什么是线程

  • 什么是进程

  • 线程的状态

  • 线程的优先级

  • 创建线程

  • 创建线程池

  • 什么是线程安全

  • 多级缓存和一致性问题

  • CPU 时间片和原子性问题

  • 指令重排和有序性问题

  • 线程安全和内存模型

  • happens-before

  • 可重入锁

  • 阻塞锁

  • 乐观锁

  • 悲观锁

  • 分布式锁

  • CAS

  • ABA

  • 偏向锁

  • 轻量级锁

  • 重量级锁

  • 自旋锁

  • 什么是死锁

  • 如果避免死锁

  • synchronized

  • volatile

  • ThreadLocal

  • Executors

  • CountDownLatch

  • Thread

  • Runnable

  • Callable

  • ReentrantLock

  • ReentrantReadWriteLock

  • Atomic 相关类



13)Java 8 新特性



  • Lambda 表达式

  • Stream流

  • Optional



14)源码阅读



  • String

  • Integer

  • ArrayList

  • LinkedList

  • CopyOnWriteArrayList

  • HashMap

  • TreeMap

  • LinkedHashMap

  • ConcurrentHashMap

  • CopyOnWriteArrayList



按照以上的基础知识路线学完了,就可以继续学数据库...后边再分享给大家数据库的学习



技术是没有终点的,也是学不完的。



最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。



自学最怕的就是缺乏自驱力,一定要自律,杜绝“三天打鱼两天晒网”,到最后白忙活一场。



高度自律的同时,要保持耐心,不抛弃不放弃,切勿自怨自艾,每天给自己一点点鼓励,学习的劲头就会很足。



本文标题:Java基础学习知识点汇总,Java从入门到精通 - 八卦谈
本文地址:www.ttdhp.com/article/47995.html

天天动画片声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
扫码关注我们