Java趣味赏玩

— Java原来这么有趣 —

很多人觉得学编程语言是一件很枯燥的事情,比如大量的抽象概念,写代码的时候经常出错而又找不到错误的源头,认为很多逻辑思维问题想都想不明白。但是学了Java以后,你会觉得他越来越有趣,为什么呢 ?因为它掌握了宇宙真理!


什么时候宇宙真理,就是公认存在的事实,这个事实是无法反驳的事实。如果它是错的,那么宇宙也就不存在了。那么宇宙真理到底是什么呢 ?


六个字 -- 一切都是物体

太阳是物体,地球是物体,我们肉眼看不到的微生物是物体,空气是物体,水是物体,宇宙的一切都是物体。而对于我们人来说,我们看到的物体,都是对象,所以,Java掌握了宇宙真理,在Java的世界中,一切都是对象。


而你,作为一名JAVA的程序员,首先你是一名发明家,因为你可以new出无数个对象,其次你是一位皇帝,你可以派你new出来的对象去做任何事情。

在这些对象中,我们首先要给对象分类,就像世间万物,物以类聚,人以群分。

作为地球的霸主,人来说,我们都是同一个类,叫做人类。和Java的类一样,都具有继承,多态,封装和抽象等特征。


Java的四大特性是继承,封装,多态和抽象。这就好比人的出生一样,我们是被父母给New出来的,所以,我们继承了他们的基因,我们出生后,不需要知道是如何被New出来的,因为整个出生的过程,都已经被父母和医生,以及生理的变化给封装起来,当来到这个世界以后,我们学会了哭,学会了笑,这就是多态,同一个人,有着不同的表现形式。对于刚刚来到这个世界,我们一无所知,正因为我们的无知,才有了抽象的方法。所以那些抽象的方法并不能被实例化,除非等到我们慢慢的长大,才可以重写他们的方法。

提到了重写,就会让人想到重载。我是南昌人,南昌人最爱吃的就是粉,同样的锅,同样的粉,同样的厨师,因为佐料的不同,粉不一样。早上吃一碗拌粉,中午吃一碗炒粉,晚上吃一碗汤粉。已经成为了南昌人日常的生活习惯了。


一个儿子,只有一个父母,儿子不仅可以继承父母的一切,同时,也可以继承别人的一切,但是,Java并没有提供多继承的方法,却提供了接口,有了多实现,代替了多继承。可有人经常问,接口是类吗?

不是!为什么?因为它的父亲不是 Object,所有的 Java,都有一个祖先,那就是 Object。接口没有继承他,所以它不是。但是有人又问?为什么不让接口继承呢?我也不知道,但是可能是为了保护 Java 的纯洁性——一切都是对象。

可是JAVA保持了他的纯洁性吗?没有!因为那里面还有一些非面向对象的东西。比如,八大基本类型。

其实基本类型三个就可以了,字符,数字和布尔。每个人每天都要讲话,人与人之间的沟通,靠得就是字符之间的传递,每个人每天都在和数字打交道,因为每个人 每天都在赚钱和花钱,生产和消耗,每个人每天都在做无数道判断题,因为你做的每一件事情,要么对,要么错,还不许反悔,因为时间不会倒流 。

但是为什么有八大类型呢?因为数字就占了6个。分别是byte,short,int ,long,float,double。他们并没有面向对象,但同时,Java 把这些基本类型进行了包装,成了类,参与了面向对象的计算。比如 int,就包装成了 integer。这样,Java 就变成了完全面向对象的语言了。

面向对象的核心是让我们New出来的对象去做事。这就涉及到了过程语言,过程无非就三种,顺序,分支和循环。顺序结构就是从头做到尾。分支其实就是一种选择,就像上课,我可以选择学习 Java,也可以选择学习 IOS。循环,就是当条件满足时,我可以循环多次去做。直到条件不满足为止,我就退出循环。世间万物,所有的事情,都用这三种方法,但如何运用,就仁者见仁,智者见智。


初学 Java,最痛苦的就是经常报异常,比如空指针异常,数组下标越界,这些错误,我们可以往外抛,一直抛到MAIN方法,让 JVM 虚拟机去处理,但最好别这样,还是让我们通过 Try/Catch 自己去捕获异常吧。实在不行,就用 throw new RuntimeException。

对 try/catch,我是又爱又恨,爱它,是因为它经常帮我捕捉异常,让我知道什么地方出错。恨它,是因为它总要我们抛异常,让原本十几行的代码, 变成了几十行。这一点,尤其是在 IO 流时候,用的非常的多。当我们不断在写入或者读取的时候,我们都要用字节流去完成,但是一个一个字节太慢了。

后来,有了字符流,可以一次读取多个字节,但还是不够,接着有了缓存流,先把他们存在一起,最后一起读写。这样够快了,读还好办 ,如果是写,效率还是不高。怎么办?打印吧!不管怎么说,打印机的速度可比人写字的速度快多了。所以,用打印流的速度最快,最好,最棒!

学会了 IO 流,学会了处理异常机制,只要我们学会了 SOCKET 通信方法,那么,我们就可以做一个聊天软件了。其实通信软件有什么难的呢 ?不就是传几个字符串吗?提到字符串,首先让我想到的,它是一个引用变量,而且是final类。它的初始化只有一次,它是不可以改变的,但是 StringBuild 是可以改变的,如果要对字符串地址进行频繁修改的话,那我们就可以用 StringBuild,可惜的是,它并不是线程安全的。


提到线程安全,我一直以为, 我们每天使用的windows操作系统是多任务的,它可以一次处理多个任务。但是我被骗了,被骗了整整18年。

18年前的那个秋天,WIN98刚刚上市3个月,我花了3块钱,去新大地电脑城买了一个盗版的光盘,回到家,安装好以后,一边玩红色警戒,一边听歌,感觉真的好爽,终于不像DOS操作系统一次只能运行一个任务了。当我学了Java以后,发行这一切原来都是假象,它只不过是利用多线程的技术,利用电脑处理器的速度,可以精确到毫秒甚至更快进行的切换而产生的结果。多线程的技术就是实现了并发性。

可见,学会Java是多么的重要啊。原来,Java是这么的有趣。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值