免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: yejia80550708
打印 上一主题 下一主题

【好书推荐】你与Java的距离,或许只差一部经典 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2017-11-29 17:18 |只看该作者
又是一个周末,在这个初冬时节,愿冷风吹走你所有的烦恼!愿冰雨落完你全部的忧愁!朋友,轻松周末,愿你过得惬意舒心,美满快乐!祝福你!

论坛徽章:
43
15-16赛季CBA联赛之上海
日期:2020-11-04 09:36:5515-16赛季CBA联赛之北控
日期:2018-10-29 18:20:3415-16赛季CBA联赛之北京
日期:2018-10-06 21:39:5715-16赛季CBA联赛之天津
日期:2018-08-09 10:30:41ChinaUnix元老
日期:2018-08-03 17:26:00黑曼巴
日期:2018-07-13 09:53:5415-16赛季CBA联赛之吉林
日期:2018-03-30 12:58:4315-16赛季CBA联赛之佛山
日期:2017-12-01 10:26:3815-16赛季CBA联赛之上海
日期:2017-11-14 09:20:5015-16赛季CBA联赛之江苏
日期:2019-02-20 09:53:3319周年集字徽章-庆
日期:2019-08-27 13:23:2515-16赛季CBA联赛之广夏
日期:2019-09-03 18:29:06
12 [报告]
发表于 2017-11-30 09:42 |只看该作者
已经做java开发好多年,还是觉得自己了解的不够深。只能说会用。
1.你觉得Java 的开发效率比 C++ 高在哪里?
java属于高级语言,不用关注细节。开发工具也方便。一次编译哪里都能运行。涉及到java开发的各种资料文档都多。

2.你如何看待JDK 9引入的模块技术?
JDK 9引入的模块技术后,使得每次开发不用引用太多的包。

3.Node.js官方宣称明年它将超越Java,你认为Node.js会超越 Java 吗?为什么?
不会,至少短时间内不会。很多人不会段时间内习惯Node.js的开发使用方式。

4.编程语言发展如此迅猛,你认为Java在未来将遇到什么挑战?有哪些方面需要尽快改进?
新生的语言都有自己的优点,Java不可能都吸取他们的优点。java在开发工具,开发效率进行改进,保持自己的特色。

论坛徽章:
0
13 [报告]
发表于 2017-12-01 10:43 |只看该作者
1.你觉得Java 的开发效率比 C++ 高在哪里?
一是Java里没有让人头痛的指针;
二是自动内存管理。Java 程序中所有的对象都是用 new 操作符建立在堆栈上的,这个操作符类似于 C++的“new”操作符。Java 自动进行无用内存回收操作,可以不需要我们太在意释放内存资源。
三是多重继承。C++支持多重继承,它允许多父类派生一个子类。也就是说,一个类允许继承多个父类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。所以 Java 不支持多重继承,但允许一个类实现多个接口。可见,Java 既实现了 C++多重继承的功能,又避免了 C++的许多缺陷。
四是操作符重载。Java 不支持操作符重载,操作符重载被认为是 C++的突出特征。在 Java 中虽然类可以实现这样的功能,但不支持操作符重载,这样使用 Java 语言编程就更简单了。
五是goto语句。Java不提供goto语句,避免程序跳来跳去,使得程序更简洁易读,增强了程序的健壮性。
六是跨平台。秉承着一次编译处处可用的理念, 对于需要支持多个操作系统的应用,Java跨平台太好用了。
七是字符串。C 和 C++不支持字符串变量,在 C 和 C++程序中使用“Null”终止符代表字符串的结束,在 Java 中字符串是用类对象(String 和 StringBuffer)来实现的,在整个系统中建立字符串和访问字符串元素的方法是一致的。Java 字符串类是作为 Java 语言的一部分定义的,而不是作为外加的延伸部分。此外,Java 还可以对字符串用“+”进行连接操作,极大地提高了编程效率。
八是众多开源框架。
九是Javadoc。Java一开始就提供了Javadoc,而且自带类的文档都不错,不用去翻看头文件。

2.你如何看待JDK 9引入的模块技术?
技术革新吧,
一是模块化技术让Java的程序更加容易轻量级部署
二是改进组件间的依赖管理,引入比Jar粒度更大的Module
三是改进程序性能和安全性

3.Node.js官方宣称明年它将超越Java,你认为Node.js会超越 Java 吗?为什么?
不会。java已经经历那么多年,各种框架,应用都很完善了,Node.js想要超越Java很难。

4.编程语言发展如此迅猛,你认为Java在未来将遇到什么挑战?有哪些方面需要尽快改进?
      传统的大型企业或互联网应用,正在被云端,容器化应用、模块化的微服务甚至是函数所替代。Java 需要在新的计算场景下,改进开发效率,推出更易用的集合 API 等,还有就是进一步改进启动和运行性能、优化计算资源使用。目前,相当一部分的 Java 类库和虚拟机特性都是针对长时间、大数据量、高并发等复杂任务进行的优化,但是在很多云计算场景中,短时间、无状态的函数正在成为常见的计算单元。

论坛徽章:
0
14 [报告]
发表于 2017-12-15 09:58 |只看该作者
如果想学it,我应该从那部分开始学起啊

论坛徽章:
2
水瓶座
日期:2014-06-12 08:22:39IT运维版块每日发帖之星
日期:2015-08-05 06:20:00
15 [报告]
发表于 2017-12-21 09:09 |只看该作者
1.你觉得Java 的开发效率比 C++ 高在哪里?
      C++是面向内存编程,Java是面向数据结构编程。C++里,内存是裸露的,可以拿到地址,随意徜徉,增了删了,没人拦你,等到跑的时候再崩给你看。Java里,能操作的都是设计好的数据结构,array有长度,String不可变,每一个都是安全的,在内存和程序员之间,隔着JVM,像是包住了边边角角的房间,随便小孩折腾,不会受伤。Java程序员是孩子,嚷嚷要这个那个,玩完了就丢,JVM是家长,买买买,还要负责收拾。有的孩子熊点,屋子很乱,收拾起来费劲,但房子还在。
     新手写C++,像是抱着一捆指针,在浩瀚的内存中裸奔。跑着跑着,有的针掉了,不知踪影,内存就泄露了;跑着跑着,突然被人逮住,按在地上打的error纷飞,内存就越界了;终于到了,舒了口气,把针插在脚下,念出咒语,“delete”,系统就崩溃了。
    还有Java的开发工具链比C++好的多。IDEA,其他图形化跟踪性能的工具都完爆C++工具链,C++唯一可以拿出来跟Java系对比的工具VS还不能跨平台免费使用。Java系的社区、轮子都很丰富,C++的轮子也多,但是质量参差不齐,另外C系程序员大部分更愿意自己造轮子自己用,而不是使用别人做好的轮子。Java不用太去关注一些底层相关的问题,内存泄露这个疑难杂症也比C++好多了。最后的最后,一个项目如果选择了Java开发,其背后隐藏的逻辑经常是:这个项目并不是性能攸关的项目,更加可以“快糙狠”出货,而不是像C++那样,既要出货还要关注性能问题,内存泄露等等。


2.你如何看待JDK 9引入的模块技术?
      ,引入了模块系统,提供了对大型复杂系统很重要的隔离,依赖管理等特性。一个Jar包,如果根目录下有 module-info.class 这个文件,则是一个已经包含了模块化信息的模块。在 module-info.class 中,可以指定此模块的名字和版本,哪些 Package 可以被别的模块访问,依赖于哪些模块,这些依赖是否继续传递等。动态模块可能会随时间而改变。可以让开发人员更容易了解其代码的影响,这个就是增强的弃用。

3.Node.js官方宣称明年它将超越Java,你认为Node.js会超越 Java 吗?为什么?
       不会。在领域应用层面 Node.js 在 Web 开发领域特别是其中的前端部分已经达到了惊人的繁荣程度,甚至有不少重要系统的后端部分也基于 Node.js 完成。但如果仅凭这些就轻易的认为 Node.js 将会一统全栈打败包括 Java 在内的其它语言是很幼稚的。首先,在一个大型的系统架构中,整个系统是拆分成很多很小的业务系统的,这些系统往往通过消息队列(如 RabbitMQ、Kafka 等等)相互连接起来。也许在小型 Web 站点中,你从来没用过这些。但相信我,在但凡稍微大一些的业务系统中,都是这么干的。这些消息队列服务存在的理由就是将各个子系统解耦。这样一来,你可以在前端部分应用 Node.js 进行快速开发,在业务处理部分使用 Java 来完成。所以java至少在近几年还是无可替代的。

4.编程语言发展如此迅猛,你认为Java在未来将遇到什么挑战?有哪些方面需要尽快改进?
     Java是静态强类型语言。这种特性使Java编译器在编译时就可以发现非常多的类型错误,而不会让这些错误在运行时才暴露出来。对于构建一个稳定而安全的应用来说,这是一个很大的优势,但是这种静态的类型检查也限制了开发人员编写代码时的创造性和灵活性。
     Java平台也有不足之处,其中最明显的是整个Java平台的复杂性。最早在JDK 1.0发布的时候,只有几百个Java类,而现在的Java 6已经包括Java SE、Java EE和Java ME等多个版本,所包含的Java类多达数千个。对于普通开发者来说,完全理解和熟悉如此庞大的类库的难度非常大。在日常的开发过程中,经常可以看到开发者在重复实现某些功能,而这些功能在Java类库中已经存在,只是不被人知道而已。除了庞大的类库之外,Java语言的语法本身也缺乏足够的灵活性,实现某些功能所需的代码量可能是其他语言的几倍。另外一个复杂性体现在Web应用开发方面。一个完整的Java EE应用程序要求程序员掌握和理解的概念太多,要使用的库也非常多。这点从市面上到处可见的以Java Web应用开发和Struts、Spring及Hibernate等框架为内容的图书上就可以看出来。虽然新出现的Grails和Play框架等都试图降低这个复杂度,但是这些新的框架的流行仍然需要足够长的时间。
      

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
16 [报告]
发表于 2017-12-26 13:43 来自手机 |只看该作者
各有千秋,咱过来围观一下

论坛徽章:
0
17 [报告]
发表于 2018-01-29 17:28 |只看该作者
感谢分享
我觉得俺们之间的距离还差一条短信验证码---创蓝253短信验证码

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP