计算机语言发展史
计算机语言发展史
第一代语言:机器语言
最基本的计算机计算方式是基于二进制的方式
二进制:01010101111010110100
现在的代码最底层的计算还是二进制,是与计算机进行交互的直接语言
第二代语言:汇编语言
解决了人类无法读懂机器语言的问题
指令代替了机器码
第三代语言:高级语言
大体分为:面向过程和面向对象两大类。普遍意义上说:C语言是面向过程的语言,C++和Java是面向对象的语言
各种语言(有时间的话,要详细研究一下):
- C语言
- C++
- JAVA
- C#
- Python
- PHP
- R语言
- ...
JAVA的崛起
强大的C和C++帝国
- 1972年,初代魔王C语言诞生!凭借其超强的运算速度和极高的处理效率,在操作系统、数据库和网络系统等重要基础领域应用广泛,是现代编程语言的鼻祖。但是由于其指针和内存管理的应用,导致他的可移植性极差,并且学习困难,容易出错。
- 1982年C++诞生,在C的基础上引入了面向对象概念,在图形、游戏等领域吃的比较开。
java的诞生
为了对抗C和C++帝国,一些人(Patrick Naughton和James Gosling)在1991年试图设计一种语言(由于其开发背景,以C+为基础),需要具有一定的特点:
- 没有指针
- 没有内存管理
- 真正的可移植性(编写一次!到处运行!!!)
- 面向对象
- 类型安全
- 高质量的类库
- ...
于是,java就诞生了
java的发展
刚刚诞生的时候,由于网页的简单且粗糙,缺乏互动性,java开发出了applet图形界面程序,迎来了第一个春天。
但是人们发现java,除了在图形界面有用处之外,其他并没有多大用处。于是,Java派出三路大军,java2标准版,去探索桌面端;java2移动端,去探索手机端;java2企业版,去探索服务器端。
最后,惊奇的发现:java太TM适合服务器端了!(三高:高可用、高性能、高并发)
随后,各大巨头进军java,开发出非常多的平台、系统和工具:
- 构建工具:Ant、maven、jekins
- 应用服务器:tomcat、jetty、jboss等
- web开发:Struts、Spring、Hibernate、mybatis、springMVC
- 开发工具:Eclipse、Intellij Idea、netbean
- ....
后边又开发出:Hadoop(大数据)、Android(手机端)
JAVA的特性和优势
- 简单性
java是C++语法的简化版,可以叫做”C++--“,相对于C++,java简化了很多东西:指针、内存管理、头文件、结构、联合、操作符重载、虚基类等等。
- 面向对象
万物皆可对象!面向对象是一种程序设计技术,非常适合大型复杂软件的设计与开发。C++在C的基础上兼容了C,具有一定的面向对象特性。java是比较彻底的面向对象语言,但面向对象和面向过程在程序设计中是一种相辅相成、相互促进的关系。
- 可移植性
java!核心科技!java的设计初衷之一就是创造一个可移植性强的语言。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。
- 高性能
java最初发展阶段,总是被人诟病“性能低”;客观上讲,高级语言的运行效率总是要比低级语言低。随着java的发展,java虚拟机的优化提升了java几十倍的运行效率。
比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,
某些代码甚至接近C++的效率。因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。
- 分布式
java是为internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上通过URl能够方位一个网络资源和访问本地文件一样简单。并且java还支持远程方法调用(RMI,Remote Method Invocation)
- 动态性
java的动态性主要体现在java的反射机制,能够通过改变外界文件,对程序进行更改。
- 多线程
多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。比如,你可以听歌的同时,玩游戏。
- 安全性
Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。沙箱机制、类加载等
- 健壮性
针对内存,建立了较好的内存管理机制(自动垃圾回收机制GC),并且针对程序异常,创建异常机制。
JAVA三大版本
- JavaSE:标准版(桌面程序,控制台开发)
- JavaME:嵌入式开发(手机、小家电)
- JavaEE:企业级开发(web端、服务器开发)
JAVA运行环境
- JDK:Java Development Kit
- JRE:Java Runtime Environment
- JVM:JAVA Vir tual Machine
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App