大家好,今天小编关注到一个比较有意思的话题,就是关于保证java语言可的问题,于是小编就整理了3个相关介绍保证Java语言可的解答,让我们一起看看吧。
JAVA编译器用什么语言写的?
编译器本身就是一个应用程序,编译器涉及到底层的一些操作,对执行要求比较高的地方使用汇编语言编写的,主要的还是用C语言来编写实现的,在J***a的安装路径下的bin目录下有很多的*.exe可执行文件,像jar.exe、j***ac.exe、j***a.exe等等,J***a编译器这东西它好像不是开源的,如果你对编译器的实现感兴趣的话,推荐你看一本《编译原理》这本书,这本书对你了解编译器的实现原理有很大的帮助的。
c语言可以用在后端吗?
c语言可以用在后端。
因为c语言本身就是用来写后端的,比较接近于硬件,所以底层用c语言写,运行速度比较快,而且由于上层的应用界面需要很好的可移植性,一般用j***a语言写,用c语言的话太依赖了,一般都是用来编写驱动程序的但是不会用来做应用服务器的后台的。
为什么J***a不支持运算符重载?
【一】可重载运算符 说明
+, -, !, ~, ++, -- 这些一元运算符只有一个操作数,且可以被重载
+, -, *, /, % 这些二元运算符带有两个操作数,且可以被重载
==, !=, <, >, <=, >= 这些比较运算符可以被重载
【二】
不可重载运算符 说明
+=, -=, *=, /=, %= 这些赋值运算符不能被重载
=, ., ?:, ->, new, is, sizeof, typeof
J***a之所以不支持运算符重载,并不是如下原因:
不支持运算符重载的根本原因,是源自James Gosling设计J***a的初衷:那就是要让J***a的学习门槛足够低,这样才能让这个编程语言被更多的人使用,从而拥有最大的市场占有率。
J***a诞生之前, 基本上是C/C++的天下。光C语言的一个指针,就吓退了莘莘学子?C++引入更多的动态特性:多态、多重继承、函数重载、函数重写、运算符重载、泛型……这更不知道让多少人望而却步!
正是在那样的大环境下,James Gosling才萌生了“开发一个小白都能上手”的编程语言的念头。
运算符重载的底层逻辑来自函数式编程。它的祖师爷是Lisp,一个“从来被模仿、从未被超越”的神级语言。
可以负责任地讲,如今流行的Python、Javascript、Typescript、Go、Ruby、Haskell、Scala、Groovy等,在动态高级特性上都是在不断模仿60多年前的Lisp。包括J***a从诞生起就在鼓吹的垃圾回收等优点,全部都是“偷师”Lisp。有兴趣的小伙伴可以自行下载Lisp的发明者——John McCarthy老爷爷1960年发表的GC论文。
函数式语言的核心思想其实是数学。
说得更白话一点:通过数学表达式描述问题,而不是人肉模拟解答过程。问题描述完了,也就解决了——运行时处理执行细节。
说得更学院派一点:通过无状态的函数加以其他优化特性,将这些函数组件进行拼接。
看到这里,估计有不少人要来拍砖:运算符重载看起来那么复杂,明明可以定义方法或者函数来解决,除了***格,没有实用价值。
到此,以上就是小编对于保证j***a语言可的问题就介绍到这了,希望介绍关于保证j***a语言可的3点解答对大家有用。