专栏首页java工会学java就两个问题

学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),作者:java工会

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 15个顶级Java多线程面试题及答案,快来看看吧

    三哥
  • Java开发必须掌握的 21 个 Java 核心技术!

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,希望可以给大家一些经验,能让大家更好学习和使用Java。

    三哥
  • IT界大佬告诉你,程序员接私活的7大平台利器

    如果有想学习java的程序员,可来我们的java学习扣qun:94311,1692免费送java的视频教程噢!我整理了一份适合18年学习的java干货,送给每一...

    三哥
  • 列举Java中常用的包、类和接口

      javax.servlet    org.apache.struts.action

    Kevin_Zhang
  • java学习需要具备什么技能

    很多人都想学习java编程技术,但是却不知道java学习需要具备什么技能,java本身就具备简单易学性和应用广泛性,下面一起看看java学习是需要具备什么技能。

    加米谷大数据
  • java(一)基础知识

    绝命生
  • java入门

    一、java的运行机制 高级语言的运行机制主要有编译型和解释型两种。 C/C++属于编译型语言,由专门的编译器针对特定的操作系统平台进行翻译,生成可执行代码,特...

    用户1215536
  • [有人@我]你的免费10G+Java课程还未领取

    java作为最热门的编程语言,它无处不在。目前全球有着数10亿的设备正在运行着java,全球80%的服务器程序都是用它编写,用以处理每天超过5000w+的数据。

    Java团长
  • 常见的 Java 错误及避免方法之第五集(每集10个错误后续持续发布)

    当输入期间意外终止文件或流时,将抛出“EOFException”。 以下是抛出EOFException异常的一个示例,来自JavaBeat应用程序:

    用户1289394
  • SpringBoot开发案例从0到1构建分布式秒杀系统

    小柒2012

扫码关注云+社区

领取腾讯云代金券