学java就两个问题

学java就两个问题:

java是面向对象的语言

这东西是国外的

搞清楚面向对象的历史演变,java的每个特性都是基于面向对象产生的。java就是面向对象而生的,java就是一种思想。你们人手不是有一本启蒙书籍叫think in java麽?国外书籍用的是think,国内的书籍都是深入理解/学习/深入浅出/30天掌握/教程XXXX字眼的书籍。脑袋没毛病吧,随便一本书平均下来都有500页,各种深入理解,掌握过后。你的年龄也到该入土的时候了。(此处应该有掌声)

不是流行大数据麽?Hadoop是因为一篇论文诞生的,论文的作者是google公司的员工。但是Hadoop 得诞生要比google公司来得快。在这点只能说java干得漂亮,要不然你们要想体会这种黑科技至少需要5年以上。有时候真的很羡慕国内写代码的人,这些小学没毕业的人居然可以拿到国外那些至少要初中毕业才能拿到的工资。而国外那些高中毕业的人只能去帮JAVA写些源代码义务劳动。

其实学习java就是学习面向对象和多线程

精通java的最终目标就是学习面向对象,在JAVA的类库里面有很多的骨架实现。设计模式的出现要比java早很多年。设计模式的思想的作者或鼻祖是缘于一个砖匠,搬砖的砖。你们应该很庆幸设计模式就只有20几种,终归到底是缘于java的特性也就这么几个。国外做过研究人能同时记住的东西是7±2。很巧的是java的特性也就7±2。但是7±2也就最多组成20几种设计模式。好了问题来了,你能记住几个java特性(java特性最多也就是9个哦),如果你能全部记住,那么问题升华了,你精通多少种设计模式。如果你们背的话,我能从1背到10亿。

还有就是多线程。多线程只能说太难了,java在多线程的上很落后的。Volatile关键字反反复复跟新了几次背后原理实现,对于伪共享的实现也是在1.8才加入@sun.misc.Contended的。多线程,伪共享,锁机制,同步机制,重锁机制。这些在15年前是高级课题,也是为什么很多java书籍都把多线程放在最后一章节。也是15年前存在的东西。

看到没有,就算是人家把java开源你们在技术上也会落后15年,因为JDK现在才到1.8。为什么是15年前,因为15年前摩尔定律不再适用了,intel的老板跪在地上说,如果CPU超过4.0G我公司要倒闭了。所以多核的时代来临了。回过头来为什么说多线程难,学习多线程,你要搞清楚同步,异步,管程(什么是管程,就是java文件代码上加了synchronized关键字后,变成class文件后。synchronized关键字变成了java虚拟机的Moniters命令的中文翻译),锁机制,阻塞,以及线程的几种状态。

什么顺序一致性,原子性,有锁,无锁。安全性,读写同步/读不用同步,写同步。多核,compareAndSet(),getAndSet(),伪共享,高速缓存,Volatile关键字,系统总线,等等等等。多线程机制虽然多,但是这不是思想的重要性。再我看来最重要的就是为什么10年就有AtomicInteger为什么现在只在原来的基础上跟新了一个LongAdder, 为什么这两个类都是同一个老头写的而不是年轻人。为什么这两个类都引用了sun.misc.Unsafe这个非公开类。为什么是不安全的。现在发现多线程是有多难了吧,没有发现这段话比上面那段面向对象的字数都多了一倍麽。

来源:https://bbs.csdn.net/topics/391979685

原文发布于微信公众号 - java工会(javagonghui)

原文发表时间:2018-04-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏精讲JAVA

关于垃圾回收被误解的 7 件事

(点击上方公众号,可快速关注) ImportNew - 蒋 生武 对Java垃圾回收最大的误解是什么?它实际又是什么样的呢? 当我还是小孩的时候,父母常说如果你...

1817
来自专栏牛客网

2018春招总结

  从2018.2.27正式投的第一份简历开始计算,到今天是2018.4.24,到现在算下来大概两个月,随着确认了腾讯的录用通知函,漫长的春招终于告一段落,虽然...

3265
来自专栏平凡文摘

关于垃圾回收被误解的 7 件事

1033
来自专栏racaljk

当我们谈论计算机科学

下午偶有所悟,特作此文防止青年痴呆。 这学期的学习算是走了一半计算机科学概论。广度的学习通常会被指责为广而不精,但对我而言这是毫无意义的,因为 ...

804
来自专栏喔家ArchiSelf

IOT语义交互性之交叉

这个系列文章描述了一个单一的语义数据模型来支持物联网和建筑、企业和消费者的数据转换。 这种模型必须简单可扩展, 以便能够在各行业领域之间实现插件化和互操作性。 ...

682
来自专栏程序员宝库

比较优雅地编码

命名很重要,随便一本逻辑学教材(如果读者有兴趣,此处推荐《逻辑学导论》)里都会有长篇大论来讨论命名的问题,我国古代在人才辈出的百家争鸣时期曾经出现过一个学派叫“...

1233
来自专栏一个会写诗的程序员的博客

附录B 编程的本质附录B 编程的本质编程的本质N小结编程简史名词纪要参考资料

尼古拉斯·沃斯(Niklaus Wirth,1934年2月15日—),生於于瑞士温特图尔,是瑞士计算机科学家。Pascal语言之父。

673
来自专栏java达人

阿里面试题及相关参考链接(修订版)

似乎每个程序员都有一颗进阿里看看的好奇心,虽然很多人最后也从那座围城里走出来了,但没有去过阿里多多少少总有些遗憾吧。因此,我最近问了一些接到过阿里电话面试的朋友...

940
来自专栏斑斓

透过文学经典理解软件设计的抽象思想

博尔赫斯(Jorge Luis Borges)有一篇奇文,曰《博闻强记的富内斯》,以纪实手法杜撰了一个具有非凡记忆能力的传奇人物富内斯。博尔赫斯自云:“(《博闻...

995
来自专栏wblearn

UML学习归纳整理

之前在学校比较系统的学习过统一建模语言UML,但长时间没使用遗忘了许多,最近因工作需要,所以对UML重新学习和梳理一下。UML可帮助我们做软件需求分析和软件设计...

801

扫码关注云+社区