世界上最好的语言是java,不服来战!😎java
据说啊,在程序员中一直有这样的一个鄙视链:C 语言工程师鄙视 C++ 工程师,C++ 工程师鄙视 Java 和 C# 工程师,Java 工程师和 C# 工程师则互相鄙视,全部的工程师都鄙视PHP工程师。程序员
哈哈,PHP的各位是否是尴了个大尬了😁,没事,反正“PHP是世界上最好的语言”算法
咱们先来看看这个:编程
不过做为常年霸榜的java可不是你说想取代就取代的,并且java还有很多猛料,天下第一岂是你能撼动的!😎后端
做为一名java爱好者,我就很是自信的说,java可不是你想动就动的了的,再说了,java好像也从不害怕被任何一门语言所取代,毕竟人家是“实力派”,可不是那些所谓的“流量小生”数据结构
咱们知道java语言自己有不少的优势,固然啦,这些优势可能其余语言也有,甚至其余语言还有一些特点是java语言所没有的,其实啊,java也不在意这些,由于对于java来讲,人家除了优秀的语言自己以外,还有很是活跃和庞大的生态,这个是真的猛。并发
说个最直接的例子,你就看吧,培训机构能够没有Android或者其余,可是必定会有java,那些在线教程网站,必定会有java的课程,并且还偏多,你要是想在网上找个学习资源,你能够对比一下,java相关的资源是真的多。oracle
因此啊,简而言之,java人家这猛的一批的生态,不是其余语言说取代就取代的,因此想学编程的,java必定是个不错的选择,另外在学习java的,好好学习吧,前景必须能够滴!app
固然,科技在进步,社会在发展,不少语言都在不断的迭代,变得愈来愈猛,不少优秀的功能特性不断发布,做为天下第一的java必须不能落后啊,可能你只知道本身如今还在用JDK7或者8嘞,可人家已经13了,可是,java的猛料可不止这些。jvm
来,跟着庆哥一块儿涨姿式吧!😂
第一看到,这啥啊,VM不就是虚拟机吗?那这个?能够的,你知道了那么一丢丢!
Graal VM但是个好东西,它是Oracle Labs在2018年4月的时候对外公开的一个黑科技,了解了以后,惊呆了,这玩意真猛!
可能有人对Oracle Labs不太了解:
Oracle Labs的任务很简单:识别,探索和转让具备极大改善Oracle业务潜力的新技术。
能够去官网看看:Oracle Labs
给你先截个图吧,你瞅瞅:
GraalVM是Java虚拟机的新运行时,它为多种语言(包括Java,JavaScript和Ruby)提供了高性能的执行环境
大眼一看,有点猛(懵😂),咱们都知道java很是经典的一句名言吧:
Write Once,Run Anywhere
学习java的都知道咋回事,java强大的跨平台特性,就是依赖JVM,也就是java虚拟机来实现的,这句标志性口号但是1995年java诞生时就提出来的,这是java的一大特色,实现了跨平台。(公众号:编码以外,后续会出java虚拟机系列原创教程,保证通俗易懂)
而这个Graal VM也提出来了一个口号:
Run Programs Faster Anywhere
用我蹩脚的英语给你们翻译一下就是:以更快的速度运行程序
怎么样,有没有一种和 Write Once,Run Anywhere 惺惺相惜,互相爱护的赶脚😂
若是你学习过java虚拟机的话应该知道,咱们如今广泛谈论的JVM通常是指的HotSpot,为啥,人家牛,因此流行呗,而这个Graal VM其实就是在HotSpot的基础上扩展而来的,既然是扩展,那扩展后确定比原来的牛X啊,咱们知道HotSpot只是针对java语言实现跨平台的虚拟机,也就是专门为java服务的。
而Graal VM通过一扩展以后可不得了,人家不知足于只服务于java了,人家如今但是要作 全栈虚拟机 啊,啥是全栈知道吧,就是你啥都要会,先后端一块儿搞😂,因此这几个全栈虚拟机也就好理解了,人家的目标是要为绝大部分流行的语言服务,不仅仅是java本身了。
在此以前,咱们知道,像java,Scala,Groovy和Kotlin都是能够运行在java虚拟机之上的,啥意思,也就是这么个意思:
你HotSpot只是为java体系这些语言服务,统一辈子成字节码文件来运行,可是咱就不一样,你支持的我支持的更好,你不支持的我也支持,好比像C/C++、JS、Python和R语言等,咱都支持。
想一下,根据java虚拟机的原理,能够猜测一下Graal VM的基本工做原理,咱们知道不管是java仍是Kotlin都须要通过编译后生成字节码文件交给jvm来运行,也就是说对于jvm,它是与字节码打交道的,因此啊,字节码文件至关于一个中间表示,那对于Graal VM是否是也同样,要想实现对更多的语言的支持,那就须要把这些语言,好比JS,须要把它编译后的特定格式代码或者直接源代码经过一种特定的解释器转换成Graal VM能够认识的中间代码,就好比jvm中的字节码文件同样。
不过在Graal VM中能够定的是它的中间代码再也不是字节码文件了。固然,Graal VM自己就是在HotSpot之上发展而来,因此彻底能够做为一个java虚拟机来使用,
那么,可能有人有疑问了,那做为java虚拟机来讲,有什么区别呢,他们俩啊,主要的区别就是在即时编译技术上,另外啊,针对Oracle Labs目前最新的即时编译技术的研究可都是迁移在Graal VM来进行的哦。
因此啊,Graal VM不可忽视啊,很猛的一个家伙啊!
看到这个名字就知道这家伙和上面说的Graal VM有关系啊,是的,这个Graal编译器就是来自Graal VM,它是从jdk10开始,在HotSpot中加入的一个全新的即时编译器。
这是干啥的啊,咱们知道,咱们编写的应用,有的时候须要长时间有运行,另外,你必定据说过热点代码,对于那些须要长时间运行的代码而言,通过必定的预热,热点代码就会被HotSpot中的探测机(目前知道这么一回事便可)捕获到,而后这些热点代码就会被编译成硬件能够直接执行的机器码,那么这样的应用,他们的效率主要就是看即时编译器输出的代码质量了。
目前啊,对于HotSpot虚拟机来讲,它的里面有两个主要的即时编译器,简称C1和C2:
那么这个新的Graal 编译器天然就要集众家之长了,Graal 编译器实际上是用来代替C2编译器的,Graal 编译器实际状况是输出代码的质量保持和C2的一致,另外在开发效率和扩展性上都要强于C2,固然,它的编译时长也获得了很大优化。
其实C2也很优秀,可是因为C2时间有点长,代码真的太复杂了,扩展起来有点难,毕竟没有完美的,须要不断的优化迭代,可是过于复杂的C2维护起来着实有点困难,因此必须搞个替代品,这个替代品必须整体设计上和C2接近,而且扩展性强,这样就能够把C2优秀的特性给移植过来,除此以外,能够增长更多优化和新的特性,可是若是想要在原有的C2上进行优化和新增那就有点困难了。
因此Graal 编译器就来了!值得一说的,Graal 编译器的效率已经追上了老牌C2,并且有些方面比C2还要强!
不过嘞,Graal 编译器仍是有点年轻,多以啊,它仍是个实验状态,所以要想使用它,须要使用开关激活,也就是须要指定参数来开启它,否则默认是不会使用Graal 编译器的。
总的来讲啊,Graal 编译器颇有潜力啊,相信将来必定会做为主要的即时编译器来使用,这样的话就会使用HotSpot和Graal VM更牛X了。
你们好,我是ithuangqing,一路走来积累了很多的学习经验和方法,并且收集了大量的精品学习资源,如今维护了一个公众号【编码以外】,寓意就是在编码以外也要不停的学习,主要分享java技术相关的原创文章,如今主要在写数据结构与算法,计算机基础,线程和并发以及虚拟机这块的原创,另外针对小白还在连载一套《小白的java自学课》,力求通俗易懂,由浅入深。同时我也是个工具控,常常分享一些高效率的黑科技工具及网站。
对了,公众号还分享了不少个人学习心得,能够一块儿探讨探讨!
关注公众号,后台回复“庆哥”,2019最新java自学资源立马送上!更多原创精彩尽在【编码以外】
感谢各位大大的阅读🥰