java基础学习Java基础学习知识点汇总java基础知识点csdn




java基础学习Java基础学习知识点汇总java基础知识点csdn

2022-07-21 2:25:35 网络知识 官方管理员

java基础学习(Java基础学习知识点汇总)(1)

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

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

Java基础学习

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

  • 环境和工具准备
  • Java基础入门
  • Java核心技术

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

  • 准备一台电脑,要能联网
  • 下载、安装JDK,配置Java开发环境
  • 下载、配置Maven
  • 下载、安装IntelliJIDEA
  • 准备一个GitHub仓库(或者码云),管理Java源代码

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

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

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

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

  • 如果英语功底不太好的话,建议安装这两款IDEA插件:chinese和translation。
  • 如果注重编码规范的话,建议安装这两款IDEA插件:Alibaba和SonarLint。

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

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

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

  • 视频的话,推荐看这个动力节点的Java零基础,适合Java小白入门,基础+进阶都有。

www.bilibili.com/video/BV1Rx411876f

第二个阶段:Java基础入门

1)基本数据类型

  • 8种基本数据类型(boolean、char、byte、short、int、long、float、double)
  • 整形中byte、short、int、long的取值范围
  • 单精度和双精度
  • 为什么不能使用“==”比较浮点数
  • 基本类型和包装类型的区别
  • 自动拆箱与装箱
  • Integer的缓存机制

2)操作符

  • 算术运算符
  • 逻辑运算符
  • 比较运算符

3)流程控制语句

  • 条件分支(if/else/elseif、三元运算符、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
  • NIO2.0

8)序列化

  • 什么是序列化和反序列化
  • Java如何实现序列化和反序列化
  • Serializbale和Externalizable
  • serialVersionUID

9)泛型

  • 什么是泛型?
  • 类型擦除
  • 泛型带来的问题
  • 泛型中KTVE这些特殊字幕的含义
  • 通配符
  • 上下界限定符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)Java8新特性

  • Lambda表达式
  • Stream流
  • Optional

14)源码阅读

  • String
  • Integer
  • ArrayList
  • LinkedList
  • CopyOnWriteArrayList
  • HashMap
  • TreeMap
  • LinkedHashMap
  • ConcurrentHashMap
  • CopyOnWriteArrayList


发表评论:

最近发表
网站分类
标签列表