Java学习路线 之 javase学习路线

风流意气都作罢 提交于 2020-11-23 02:49:43

学习java已经有三年左右了,最近在复习数据结构的知识,同时也在总结我个人的学习路线,以及方式这里我将这些年我是如何进行java学习的,我是如何坚持下去的。请慢慢看下去吧。
javase学习篇

2016年冬12月我大一上学期的枯燥的生活结束了。放寒假回家后买了台电脑,我书顺便给我哥要了套视频,拿到视频后有个java学习路线,我就是按照那个进行学习的不过在后来我也是有所改变。具体的学习方式可以去我上篇的文章。下面我将每个学习的章节技术点以黑体加粗展示


先是从认识面向对象开始,因为我学过了C语言但是不是特别的熟练,而C语言没有对象的概念,他是面向过程的语言,所以就是认识什么是对象对象,java编程思想中有这样一句 “一切皆对象”,也就是在使用语言时可以把每一个部分当做对象。其实主要了解什么是对象,自己心中有这个概念就可以。


开发环境,工具 是学习任何一门语言的必备的技能,你要想搞明白这个语言的使用,“工欲善必先利器” 你就必须先把环境搭建起来,好多人工作了几年都不能把jdk给正确的安装下来,还需要baidu,这个是基础的技能,所以当我们学习的时候一定熟练掌握,比如最简单的就是把jdk的bin目录直接配置到path目录下。开发工具,你可能看的视频很多开始都是在记事本上给你演示的,其实在真正的开发中是不可能这样使用的,你想想一个个项目有时沉淀了四五年,那代码量是多么的多,记事本能搞定吗,所以先是推荐Eclipse 因为开源免费,后序可以搞Idea进行使用,notePad++进行查看代码,Hbuilder用于写html,js这些,这样你的环境和工具都有了那么你是不是就能够进行学习了。


java基本数据类型 基本数据类型是这个语言的基础,java有八大基本数据类型,这些基本数据类型修饰变量后让其变量赋予真正的意义。我的前辈给我说他面试到一位工作三年的 java基本数据类型 都不能答得上来,所以我们学校时一定把基础给扎实。java八大基本数据类以及他的包装类这些都要熟练记忆,char ,boolean,byte,short,int,double,float,long. 这些给记牢以及对应的包装类是啥。有了这些基本数据类型看下他们默认值为什么,这个要牢记。学完这些后就可以去看运算符了。


操作符(运算符,关键字,修饰符,循环,条件语句) 基本类型掌握了我们就可以根据这些进行操作,比如 int 类型的+,-,*,/ ,%,的操作(加,减,乘,除,模) 然后循环语句,条件判断语句, 类中字段的修改符,private,public ,protect,默认。 关键字也是用于修饰变量的,比如 public static void main(){} 这个方法是开放的 ,静态的,返回值为空的。关键字就是 static ,还有很多关键字 比如下方,现阶段不要求全会,至少要保证以后要回,因为这些以后都要用到。


abstract 表明类或者成员方法具有抽象属性
assert 断言,用来进行程序调试
boolean 基本数据类型之一,声明布尔类型的关键字
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 声明一个类
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循[IEEE 754](https://baike.baidu.com/item/IEEE 754)算术规范
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中


面向对象:真正的了解到面向对象是从认识类开始的,类是什么 类是封装了对象的行为和属性。从上面一句是不是你要去了解 什么是行为,什么是属性。明白这个后就会继续学习 抽象类,静态类,内部类,接口,三大特性(封装,继承,多态), 到这个时候你就会了解 重载与重写的区别,为什么重载构造函数, 为什么重写 顺便稍微了解一下内存结构,对象存储位置 ,这样其实是数据结构中的,所以要去看数据结构的知识。

自动拆箱与装箱: 自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱。原始类型byte, short, char, int, long, float, double 和 boolean 对应的封装类为Byte, Short, Character, Integer, Long, Float, Double, Boolean。 这样是不是你会发现我在学习基本数据 类型时与这个包装类却别了


**数组:**  数组的特性 ,数组的创建,数组元素的查找,更新,删除。明白数组的存储。下面去了解java中的常用类。

java常用类: Object,String,StringBuffer,StringBuild,System,Math,Redom,Date,Date Format,BigDecimal,Pattern与Matcher类, Properties 去逐个了解上面的基本类的方法和特性,比如 String,StringBuffer,StringBuild的使用场景,不要了解太深去会用就可以。

异常:在上面的类使用时是不是idea有时会同时try catch包裹 这就是编译器告诉你程序可能会有异常 ,你去了解什么是异常, 异常的关键字,throw,throws,Exception类 运行时异常,非运行时异常

集合:了解完异常后来学习集合,明白集合的特性,两个顶级的接口Collection,Map,以及他们的不同的实现类List(ArrayList,LinkedList,Vector),Set(HashSet-LinkedHashSet,TreeSet),集合遍历Iterator,Hash操作Map(HashMap-LinkedHashMap,TreeMap),各个的特性

IO操作: 去学习流的两大顶级接口 输入流InputStream,Read,输出流OutputStream,Write,字符流(Read,Write),字节流(inputStream,OutputStream),File类,Chanel类 的操作。自己实现文件的读取和文件的写入。

多线程:去了解进程与线程的区别,并且牢记于心。多线程特性,实现多线程的方式(Thread,Runnable),线程的生命周期,应用 ,自己手写最有名的余票代码。

Swing: 这个选学,不过我当时学了好多,因为我用swing搞了个坦克大战看人家的视频,现在还可以使用的,项目地址在github上 javase 中。

网络编程:Socket,端口,协议, 这个我跟着视频做了qq聊天。简易的根据socket

注解: 学习完后去了解注解 元数据,基本注解,注解实现 等。这样你的javaSE基本上就可以学习完毕了 ,不过需要你大量的练习,练习以后才能够出效果。

我这里贴上我的se学习的代码在git上 https://github.com/kaysanshi/javase

学习完以上经过大量的练习去牢记代码,去明白其中的实现原理


加油去努力的记录每一个技术点,然后探索他们吧。

本文分享自微信公众号 - 面向对象Coding(codingeverything)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!