「Java」自学Java第56天,从入门到入土( 二 )


  • 如何获取一个随机数?
  • 如何在控制台上输入数字并输出?
  • 如何求绝对值?如何四舍五入?如何向上取整?如何向下取整?
  • 字符串String类 , 这个类在Java里大概就和现实中吃饭一样常见…
  • Java里最常见的容器?
以上种种的接触 , 也算是没有磨灭我学习Java的激情 ,
05面向对象三大特性:封装、继承以及多态 。
我很长一段时间对封装的概念一直都是很模糊的 , 说不出它具体有什么作用 , 不就一个private关键字么?
使类更加地安全 , 那是个什么样的安全法呢?懵懵懂懂…
正当我还在纠结封装到底有何用时 , 继承来了 。
父类可以有很多子类 , 但子类只能有一个父类 。
就好比:父亲可以有很多儿子 , 但儿子只能有一个亲爹 。
有趣有趣 , 而接下来接口的学习让其更加地有趣了起来:
儿子只能有一个亲爹 , 但是可以有多个干爹 。 所以一个类可以实现多个接口 。
接口中的抽象方法就好比一个作文题目:
写作文的过程不就相当于实现接口重写方法的过程么?
谁说学编程挺枯燥乏味的?这不是挺有趣的嘛?
接下来就是多态 , 什么叫多态?
一种行为多种形态 。 同样是吃 , 猫吃鱼狗吃肉奥特曼吃小怪兽 , 这还不好理解 , 简单呀 。
很长一段时间我也是这么觉得的 , 直到我学了函数式编程 , 才发现自己想的太简单了 。
06不管我情不情愿 , 我还是迎来了学Java的一道大坎:匿名内部类 。
本来类里面再放一个类就感觉有点懵 , 现在还是匿名内部类 , 没有名字看得更加的一脸懵逼了 。
内部类 , 累不累?
嘛 , 没办法 , 还是得继续学 , 毕竟是自己的选择 , 爬都要给我爬下去 。
好在接下来两天学习还算简单 , 算是找回了一点信心 。
  • Java里的亚当与夏娃?
  • 如何获取计算机的系统时间?
  • 算一算自己活了多少天 , 多少小时?
接着就是集合了 , 这都还好说 。 毕竟前面学过ArrayList这个集合 。
但是数据结构真的是学的我一个头两个大 。
堆栈、队列、数组、甚至是链表都还好说 , 这个树结构光看着都头痛 , 主要是太多了:
什么2-3-4树、B-树、B+树、B*树、Trie树(字典树) ……就连最常见的红黑树都没弄太明白 。
行吧 , 反正这个对写代码影响不算大 , 不懂就不懂吧 。
07再往后就是异常和多线程了:
遇到异常怎么办?死了都要try , 不抓住异常不痛快 。
原来我们常说的BUG就是这个异常?看来写代码的过程就是不断地和异常做斗争……
多线程 , 每次看到线程我就会莫名地想起“平行世界” 。
本来我同一时间只能做一件事 , 现在多一个平行世界我就能同时做两件事 , 那我多个几十万个岂不是无敌?
Java的多线程准确来说是伪线程 , 硬件配置才是真线程 。
所以理论上Java线程是可以创建很多很多个的 , 但是多了程序会崩 , 而如何保证程序不崩就需要不停地优化了 。
IO流 , 用来传输文件的存在 , 难倒是不算太难 , 就是流太多太多了有点记不住 。
后来我痛定思痛 , 终于领悟了一招IO流的终极绝学“万流归宗” , 才算勉强过关 。
08有人说:你现在所欠下的 , 将来都得换回来 。
以前我对这句话是嗤之以鼻的 , 但是自从开始学函数式编程时 , 我相信这句话了 。
第一次看到lambda表达式 , 仿佛跟天书一般的存在 , 本来匿名内部类就是因为省略了类名搞不清楚 。


推荐阅读