2020年4月15日这一天
刘小爱同学开始了Java的自学之旅
从此走向了一条不归路
01都说万事开头难,Java的开头还是蛮简单的。
不仅简单,还挺有趣的:
带着这些问题,很开心地学完了前几天的知识点。
接着就是Java的介绍以及第一个程序的编写。
从此之后,我也是写过程序的人了。
大概HelloWorld是每一个程序员接触到的第一个程序吧。
仿佛感觉程序一下子有了生命,在和世界问好:
02无论是常量、变量以及数据类型的介绍;还是运算符和流程控制语句的接触。
一个多星期的学习下来,感觉还是蛮简单的。说白了不就是一些数学知识么?
难怪说学编程需要具备一定的数学基础呢,英语反而还是次要的了,毕竟有各种翻译软件。
正当我对后面的学习充满憧憬时,数组出现了…
咦,怎么和数学里的数组不一样?
咦,怎么别的变量控制台输出都是值,你输出的是一串看不懂的字符?
哦,原来这个是引用的地址值,数组是引用数据类型。
行吧,你说是地址就地址吧,我也不太懂,我也不敢问。
好在问题不算大,大不了死记硬背背下来。
然而紧接着的面向对象将我吓了一跳。
03什么?面向对象编程?不会吧……没有对象连Java都不能学么?
都说程序员群体里鄙视链很严重可问题是我这不是才刚开始学么……
经过一天的学习才发现:哦,原来此对象非彼对象。
在Java里面一切万物都是类,而对象就是类的实例化。
也就是说我岂不是可以new无数个对象?
以后520情人节什么终于不用担心没对象了……
对象输出的时候,我晕,又是一串字符,和数组很相似。
看来这次不能再敷衍了,得将引用数据类型弄明白。
引用数据类型,这个引用,到底什么叫引用啊?
哦,原来引用是这么个意思,就好比是一个快捷方式。
地址本身并没有内容,有内容的是地址指向的对象。
哎哟,原来如此,嘛,我也不知道这样说明对不对,反正这么一想后,确实好理解些了。
04学到这儿虽然磕磕碰碰,好在有惊无险,问题不大。
再加上学了几个很好玩的API:
以上种种的接触,也算是没有磨灭我学习Java的激情,
05面向对象三大特性:封装、继承以及多态。
我很长一段时间对封装的概念一直都是很模糊的,说不出它具体有什么作用,不就一个private关键字么?
使类更加地安全,那是个什么样的安全法呢?懵懵懂懂…
正当我还在纠结封装到底有何用时,继承来了。
父类可以有很多子类,但子类只能有一个父类。
就好比:父亲可以有很多儿子,但儿子只能有一个亲爹。
有趣有趣,而接下来接口的学习让其更加地有趣了起来:
儿子只能有一个亲爹,但是可以有多个干爹。所以一个类可以实现多个接口。
接口中的抽象方法就好比一个作文题目:
写作文的过程不就相当于实现接口重写方法的过程么?
谁说学编程挺枯燥乏味的?这不是挺有趣的嘛?
接下来就是多态,什么叫多态?
一种行为多种形态。同样是吃,猫吃鱼狗吃肉奥特曼吃小怪兽,这还不好理解,简单呀。
很长一段时间我也是这么觉得的,直到我学了函数式编程,才发现自己想的太简单了。
06不管我情不情愿,我还是迎来了学Java的一道大坎:匿名内部类。
本来类里面再放一个类就感觉有点懵,现在还是匿名内部类,没有名字看得更加的一脸懵逼了。
内部类,累不累?
嘛,没办法,还是得继续学,毕竟是自己的选择,爬都要给我爬下去。
好在接下来两天学习还算简单,算是找回了一点信心。
接着就是集合了,这都还好说。毕竟前面学过ArrayList这个集合。
但是数据结构真的是学的我一个头两个大。
堆栈、队列、数组、甚至是链表都还好说,这个树结构光看着都头痛,主要是太多了:
什么2-3-4树、B-树、B 树、B*树、Trie树(字典树) ……就连最常见的红黑树都没弄太明白。
行吧,反正这个对写代码影响不算大,不懂就不懂吧。
07再往后就是异常和多线程了:
遇到异常怎么办?死了都要try,不抓住异常不痛快。
原来我们常说的BUG就是这个异常?看来写代码的过程就是不断地和异常做斗争……
多线程,每次看到线程我就会莫名地想起“平行世界”。
本来我同一时间只能做一件事,现在多一个平行世界我就能同时做两件事,那我多个几十万个岂不是无敌?
Java的多线程准确来说是伪线程,硬件配置才是真线程。
所以理论上Java线程是可以创建很多很多个的,但是多了程序会崩,而如何保证程序不崩就需要不停地优化了。
IO流,用来传输文件的存在,难道是不算太难,就是流太多太多了有点记不住。
后来我痛定思痛,终于领悟了一招IO流的终极绝学“万流归宗”,才算勉强过关。
08有人说:你现在所欠下的,将来都得换回来。
以前我对这句话是嗤之以鼻的,但是自从开始学函数式编程时,我相信这句话了。
第一次看到lambda表达式,仿佛跟天书一般的存在,本来匿名内部类就是因为省略了类名搞不清楚。
现在lambda表达式不仅类名没有,连方法名都没有了…
也就是说要看懂lambda表示式得对接口中的抽象方法了如指掌,同时对匿名内部类也要很熟悉。
等我以为这已经是最难懂了的时候,方法引用又出来了。
现在不仅方法名省了,连方法参数、方法体都省了。
天啦,这啥都没有,我怎么知道表示的是啥……
正当我以为方法引用是最抽象的时候,反射又出来了。
反射偏不,它偏要反着来:
没看过射雕英雄传么?欧阳锋就是反着练九阴真经所以走火入魔了的?
更可气的是反射它还就是牛逼,一般应用于框架。
更巧的是欧阳锋虽然走火入魔了也反而更厉害了。
莫非金庸老先生也是程序员?
还是说什么这世间很多事情反着来就会很牛逼?
09动态代理,无疑是JavaSE里最难的存在。也就是这天,我感受到了被动态代理所支配的恐惧……
这……这也太难理解了吧?看了一天根本就是一脸懵逼。
天啦,求求老天爷派个小仙女下来救救孩子吧。
老天爷听到后对我冷冷地一笑:
你以为这就完了?
还有八大经典排序算法和23种设计模式呢。
我:……
如果有一天你发现我不再更新了,不用怀疑。
我只是在和欧阳锋一样,在练一门绝世神功,待吾神功练成,必将君临天下!
零基础自学Java,从入门到入土……
最后
谢谢你的观看。
如果可以的话,麻烦帮忙点个赞,谢谢你。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved