免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 76301 | 回复: 18

【有奖讨论】如何成为Java大神?编译器是绕不开的话题(获奖名单公布) [复制链接]

论坛徽章:
0
发表于 2020-03-04 11:23 |显示全部楼层




本次活动获得《深入解析Java编译器:源码剖析与实例详解》奖励的用户是:


@LuckyMechanic
@aloki
@goingstudy
@理发店数据库
@东风玖哥

请以上5位用户,请于5月30日前以站内的形式联系管理员飘絮絮絮丶,如无法发站内请加微信:itpubwxt


话题背景:

     随着互联网过去20多年的高速发展,创造了一批又一批的互联网巨头企业,同时也催生了大批的高薪职位,尤其是软件工程师职位。但是近年来,高校和培训机构向社会输送了大批的软件工程师,导致相关职位竞争越来越激烈。而随着互联网高潮的退去,许多公司越来越需要产品和技术的沉淀,一边在裁员,而一边又在加大力度招人。只有那些即懂应用,又懂原理的人才能胜任更多高端职位。近期机械工业出版社出版了《深入解析Java编译器:源码剖析与实例详解》一书,是一本讲解Java编程语言原理的书籍,详细剖析了Java语言从源代码变为字节码的过程,是Java开发者探索实现原理,竞争高端职位不可多得的一本好书。本次活动便是以此为契机,和各位Java开发者就Java编译器的相关话题展开讨论,欢迎大家踊跃发言。

讨论问题:

(1)大家主要想了解Java语言哪些源码级的实现呢?或者在平时是否研究过Java语言的相关实现?
(2)大家可以讨论下,编译原理的相关知识点对自己的工作有所帮助吗?可以具体举例子说明。
(3)Java泛型的实现原理大家是否理解?请谈谈你的理解,并谈谈自己在使用Java泛型时的心得体会和难点分析。
(4)书中对Java注解的实现原理进行了深入剖析。自定义注解也是开发者经常使用的开发技术,也有许多插件是基于注解来实现的,如lombok。请问使用注解有什么优点?可以在哪些方面简化开发?

活动时间:2020年3月4日-3月31日

活动奖励:最佳积极参与经验分享奖5名,奖励价值179元的《深入解析Java编译器:源码剖析与实例详解》图书1本。

深入解析Java编译器:源码剖析与实例详解
马智  著
书号:978-7-111-64338-8
印张:41.75(正文654页)
书脊:31mm
定价:179.00元
成品尺寸:186*240
111.png

购买链接:
京东:https://item.jd.com/12794094.html
当当:http://product.dangdang.com/28507091.html

内容简介:

     本书以工业级编译器Javac的源代码为基础,详细介绍了词法分析、语法分析、语义分析及代码生成等各个阶段的具体实现,同时对重点源代码的实现进行了详细解读,让读者能真正掌握从Java源代码变为Class文件的每个过程。
     本书共18章,章节的前后顺序与Javac编译Java源代码的顺序严格对应,涵盖的主要内容有Javac介绍、Javac文件系统、词法分析、语法分析之认识树节点、语法分析之建立抽象语法树、符号表的组织、填充符号表、插入式注解的实现、语义分析之类型转换、语义分析之语法检查、语义分析之引用消解、语义分析之语法树标注、泛型的实现、数据流检查、语法糖去除、字节码指令生成、重要结构的字节码指令生成、生成Class文件。同时,为了读者能更好地查阅相关信息,本书在附录中给出了Javac命令、文法、类型常见操作、符号常见操作和虚拟机字节码指令表的相关内容。
本书语言简洁,实例丰富,适合Java从业人员阅读,可以帮助他们深入理解Javac如何支持Java语言的诸多特性,如泛型等;也适合对编译器感兴趣的读者阅读,可以帮助他们真正掌握如何将编译器相关的理论知识应用到开发实践中。

样张试读:

前言+目录    第1-2章(试读) 前言 目录.pdf (4.73 MB, 下载次数: 22)

论坛徽章:
0
发表于 2020-03-04 11:39 |显示全部楼层
欢迎大家踊跃参与讨论哦

论坛徽章:
0
发表于 2020-03-04 11:58 |显示全部楼层
V5,V5,很棒的活动,这本书比周志明老师的《深入理解Java虚拟机》中的相关内容要细致和深入很多哦,良心啊!

论坛徽章:
0
发表于 2020-03-04 12:01 |显示全部楼层
大家踊跃发言吧,几个话题都很不错,争取有机会获奖哦,图书真的很好,定价179元大洋哈

论坛徽章:
0
发表于 2020-03-06 21:58 |显示全部楼层
难道话题太高深吗?咋就没人参与讨论呢?看来这次的奖品是用不上了。

论坛徽章:
1
15-16赛季CBA联赛之广夏
日期:2020-04-23 15:22:06
发表于 2020-03-07 15:10 |显示全部楼层
(1)大家主要想了解Java语言哪些源码级的实现呢?或者在平时是否研究过Java语言的相关实现?
想要了解Java常用集合的源码级深度解析以及哪些情况下的对象会被垃圾回收机制处理掉?
Java Web项目源码实现

(2)大家可以讨论下,编译原理的相关知识点对自己的工作有所帮助吗?可以具体举例子说明。
只有知道了编译器是怎么编译你的程序的,你才可能编写出高效,稳健,占用内存少的程序。
举一些例子,如果有程序需要多线程,你怎么写?你知道调用pthread_create可以创建线程,但应该规划多少个线程呢?异步IO是怎么回事,IO回调运行在哪个线程上?为什么多线程下一个简单的计数器都有问题?原来是要加锁,那锁是什么?哪些数据要加锁?没有这些基础,给你一个完整的项目代码,你能看懂函数中每一步的功能,但为什么函数要这么写,你可能是蒙的。

(3)Java泛型的实现原理大家是否理解?请谈谈你的理解,并谈谈自己在使用Java泛型时的心得体会和难点分析。
泛型机制的原理就是参数化类型,也就是说使用E作为泛型机制的形式参数负责占位,当真正构造对象时需要使用真实的数据类型作为实参传递给E这个形参,从而类中的E全部变成了实参类型。
在使用泛型的时候如果传入泛型实参,则会根据传入的泛型实参做相应的限制,此时泛型才会起到本应起到的限制作用。如果不传入泛型类型实参的话,在泛型类中使用泛型的方法或成员变量定义的类型可以为任何的类型。

(4)书中对Java注解的实现原理进行了深入剖析。自定义注解也是开发者经常使用的开发技术,也有许多插件是基于注解来实现的,如lombok。请问使用注解有什么优点?可以在哪些方面简化开发?
Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。
注解的优点是节省配置,减少配置文件大小。编译时即可查看正确与否,提高效率。

评分

参与人数 2可用积分 +10 信誉积分 +20 收起 理由
oyzx_sp + 20 非常好啊,你绝对是潜力股,这本书很适合你.
飘絮絮絮丶 + 10 赞一个!

查看全部评分

论坛徽章:
8
2017金鸡报晓
日期:2017-01-10 15:13:2915-16赛季CBA联赛之天津
日期:2019-06-20 14:25:4015-16赛季CBA联赛之天津
日期:2019-08-20 23:06:5319周年集字徽章-庆
日期:2019-08-27 13:24:4219周年集字徽章-19
日期:2019-09-06 18:55:5019周年集字徽章-年
日期:2019-09-06 18:55:5019周年集字徽章-周
日期:2019-09-20 17:18:2220周年集字徽章-CU
日期:2020-11-11 13:06:03
发表于 2020-03-07 23:52 |显示全部楼层
本帖最后由 aloki 于 2020-03-07 23:55 编辑

(1)大家主要想了解Java语言哪些源码级的实现呢?或者在平时是否研究过Java语言的相关实现?
常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。

(2)大家可以讨论下,编译原理的相关知识点对自己的工作有所帮助吗?可以具体举例子说明。
解析用户输入,防止代码注入,为前端工程师提供像 React 那样的 DSL等等高级别的需求,都要用到编译技术。

(3)Java泛型的实现原理大家是否理解?请谈谈你的理解,并谈谈自己在使用Java泛型时的心得体会和难点分析。
Java的泛型是伪泛型。在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉。这个过程就称为类型擦除。泛型中的引用传递的问题要格外注意。

(4)书中对Java注解的实现原理进行了深入剖析。自定义注解也是开发者经常使用的开发技术,也有许多插件是基于注解来实现的,如lombok。请问使用注解有什么优点?可以在哪些方面简化开发?
Java注解的优点
1.保存在 class 文件中,降低维护成本。
2.无需工具支持,无需解析。
3.编译期即可验证正确性,查错变得容易。
4.提升开发效率。

Java注解可以在这些方面简化开发:
1. 生成文档。这是最常见的,也是java 最早提供的注解。
2. 跟踪代码依赖性,实现替代配置文件功能。
3. 在编译时进行格式检查。如@Override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。

评分

参与人数 1可用积分 +10 收起 理由
飘絮絮絮丶 + 10 赞一个!

查看全部评分

论坛徽章:
0
发表于 2020-03-08 17:17 |显示全部楼层
回复 7# aloki

很好,很好,兄弟加油,我看你有得奖的潜质!

论坛徽章:
0
发表于 2020-03-09 08:46 |显示全部楼层
oyzx_sp 发表于 2020-03-06 21:58
难道话题太高深吗?咋就没人参与讨论呢?看来这次的奖品是用不上了。

最近都在家办公,导致大家都颓废了~~~

论坛徽章:
0
发表于 2020-03-10 22:12 |显示全部楼层
回复 9# 飘絮絮絮丶

看来得振作起来了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP