保证j***a语言可,保证J***A语言可移植性的特征是

kodinid 14 0

大家好,今天小编关注到一个比较意思的话题,就是关于保证java语言可的问题,于是小编就整理了3个相关介绍保证Java语言可的解答,让我们一起看看吧。

  1. java编译器用什么语言写的?
  2. c语言可以用在后端吗?
  3. 为什么Java不支持运算符重载?

JAVA编译器什么语言写的?

编译器本身就是一个应用程序,编译器涉及到底层一些操作,对执行要求比较高的地方使用汇编语言编写的,主要的还是用C语言来编写实现的,在J***a的安装路径下的bin目录下有很多的*.exe可执行文件,像jar.exe、j***ac.exe、j***a.exe等等,J***a编译器这东西它好像不是开源的,如果你对编译器的实现感兴趣的话,推荐你看一本《编译原理》这本书,这本书对你了解编译器的实现原理有很大的帮助的。

c语言可以用在后端吗?

c语言可以用在后端。

保证java语言可,保证JAVA语言可移植性的特征是-第1张图片-安济编程网
图片来源网络,侵删)

因为c语言本身就是用来写后端的,比较接近于硬件,所以底层用c语言写,运行速度比较快,而且由于上层的应用界面需要很好的可移植性一般用j***a语言写,用c语言的话太依赖了,一般都是用来编写驱动程序的但是不会用来做应用服务器的后台的。

为什么J***a不支持运算符重载

C# 可重载和不可重载运算

【一】可重载运算符 说明

保证java语言可,保证JAVA语言可移植性的特征是-第2张图片-安济编程网
(图片来源网络,侵删)

+, -, !, ~, ++, -- 这些一元运算符只有一个操作数,且可以被重载

+, -, *, /, % 这些二元运算符带有两个操作数,且可以被重载

==, !=, <, >, <=, >= 这些比较运算符可以被重载

保证java语言可,保证JAVA语言可移植性的特征是-第3张图片-安济编程网
(图片来源网络,侵删)

【二】

不可重载运算符 说明

&&, || 这些条件逻辑运算符不能被直接重载

+=, -=, *=, /=, %= 这些赋值运算符不能被重载

=, ., ?:, ->, new, is, sizeof, typeof

J***a不支持运算符重载 = 小白也能学编程

J***a之所以不支持运算符重载,并不是如下原因:

不支持运算符重载的根本原因,是源自James Gosling设计J***a的初衷:那就是要让J***a的学习门槛足够低,这样才能让这个编程语言被更多的人使用,从而拥有最大的市场占有率。

J***a诞生之前, 基本上是C/C++的天下。光C语言的一个指针,就吓退了莘莘学子?C++引入更多的动态特性:多态、多重继承函数重载、函数重写、运算符重载、泛型……这更不知道让多少人望而却步!

正是在那样的大环境下,James Gosling才萌生了“开发一个小白都能上手”的编程语言的念头。

运算符重载的底层逻辑来自函数式编程。它的祖师爷是Lisp,一个“从来被模仿、从未被超越”的神级语言。

可以负责任地讲,如今流行的PythonJavascript、Typescript、Go、Ruby、Haskell、Scala、Groovy等,在动态高级特性上都是在不断模仿60多年前的Lisp。包括J***a从诞生起就在鼓吹的垃圾回收等优点,全部都是“偷师”Lisp。有兴趣的小伙伴可以自行下载Lisp的发明者——John McCarthy老爷爷1960年发表的GC论文。

函数式语言的核心思想其实是数学

说得更白话一点:通过数学表达式描述问题,而不是人肉模拟解答过程。问题描述完了,也就解决了——运行时处理执行细节。

说得更学院派一点:通过无状态的函数加以其他优化特性,将这些函数组件进行拼接。

看到这里,估计有不少人要来拍砖:运算符重载看起来那么复杂,明明可以定义方法或者函数来解决,除了***格,没有实用价值。

到此,以上就是小编对于保证j***a语言可的问题就介绍到这了,希望介绍关于保证j***a语言可的3点解答对大家有用。

标签: 重载 运算符 语言