java的诞生:每一次设计语言的革新都是为了解决先前语言所遇到的不能解决的问题,B语言导致C语言的诞生,C语言演变成C++,java则继承了这两种语言的大部分特性。java最初的推动力是为了找到一种能够解决独立平台的、能够嵌入多种电器设备的语言。
java虽然受到了C++很大的影响,但是java并不是C++的增强版,他们在实践和理论上都有很大的不同,java与C++既不向上兼容,也不向下兼容。java也并不是用来取代C++的,设计java是为了解决一些特定的问题,而C++则是为了解决另外一些特定的问题,两者将长时间共存。
java语言可以用来生成两类程序:应用程序和小应用程序,而他最吸引人的地方便是解决了小应用程序的两个最棘手的问题,安全性和可移植性。
所谓的安全性是指java在网络应用程序和计算机之间提供了一道防火墙,可以有效的防止一些恶意程序和病毒,从而能够安全的下载java小应用程序。java实现这一功能的方式是:限制java程序在java运行环境中,不允许访问计算机的其他部分。
而可移植性指的是源代码可移植性、操作系统可移植性、CPU可移植性。源代码可移植性意味着java程序可以在任意CPU、操作系统和java编译器中运行处相同的结果;CPU可移植性指的是java编译器产生的目标代码所针对的不是某一实际的CPU,而是虚拟CPU,即java虚拟机JVM;而操作系统可移植性则指的是,java采用了一套与平台无关的库函数来解决同一套代码程序不能同时在多种操作系统中正常运行的问题。
java解决上边两个问题的关键在于java编译器的输出不是可执行代码而是字节码。
相关文章
- 01-26日拱一卒 | 线程包括哪些状态?状态之间是如何变化的?
- 01-26判断一个数组是否包含一个指定的值 includes
- 01-26c# – 一个大的System.IO.MemoryStream会导致我的应用程序的内存使用量急剧增加吗?
- 01-26一些比较好的shellscript脚本
- 01-26使用PyInstaller将Python程序打包成一个单独的exe文件
- 01-26vue1.0和vue2.0的区别(一)
- 01-26阿里云“网红"运维工程师白金:做一个平凡的圆梦人
- 01-262019.4.1今日一练String类中的方法
- 01-26【C++】智能指针详解(一):智能指针的引入
- 01-26关于二项式反演的一些思考