Java是今天——包括昨天,乃至可预见的明天——最流行的(大型)应用程序开发语言,没有之一。(tiobe榜单前三的c和python都不适合大规模应用开发:C只适合于底层,python更像一种小型的、灵活的工具/胶水语言)
今天的Java,可以骄傲的说:我站得更高!
1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。1983年该语言被正式命名为C++。
可以看出,C++其实就是在C的基础上添加了类(class),是C语言的扩展,将面向过程的C语言进化成可以面向对象。
至少到目前为止,面向对象是大型项目开发必不可少的利器。所以,C++诞生以后,广受欢迎,迅速发展,几乎就取代了C。
C++以其强大、灵活(直接操作内存)和复杂(各种语法特性)而著称。
段子:简历上写着“精通C++”
但同时期,另一门语言却像它的名字(Beginners' All-purpose Symbolic Instruction Code)一样,初学者友好,简单易学,随着微软的推广,很快就风靡全球。尤其是其进化版VB(Visual Basic)在1991年推出:
在当时引起了很大的轰动,许多专家把VB的出现当作是软件开发史上的一个具有划时代意义的事件
飞哥个人觉得:码农阶层的诞生,Basic应该功不可没。1995年,飞哥就是凭着小霸王学习机的说明书,学会的人生第一门编程语言BASIC,^_^
PS:Basic是第一个有IDE的编程语言
PROGRAM product LET m = 2 LET a = 4 LET force = m*a PRINT force END
在.NET平台仍然被保留,称之为VB.NET。沉寂了一些年,突然窜起来了,飞哥也不知道为什么,^_^
1991年,Sun公司,James Gosling和他的同事,开始为单片机开发设计一种能够替代C++的编程语言:Java诞生。
Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名,所以Java的图标就是一个咖啡杯:
因为C++在当时已经非常流行了,所以Java保留了:
但是,当时C++的弊端也已经暴露的越来越清晰,简单两个字:复杂。
PS:有时候,语言特性并不是越多越好。再次重温:KISS原则
所以C++里面一些冗余复杂语法,被Java直接删除。但其中最根本性的改变是:
这曾经是一个非常有争议的话题,但现在没人提这茬了(或许是飞哥心态老了,懒得关心这些争论了……)。本质上就一个选择问题,你要自己操作内存,你就用C++呗,又没人拦着你,是不是?
如果你学习C或者C++,指针首先是一个非常晦涩难懂的概念(一些看得开的老师都会略过这一部分);然后在实际开发中,使用指针极其容易出错的(error prone),非常麻烦。
一旦给用户自由,用户就会瞎JB用
所以Java很果决,直接把这部分砍了,开发人员不允许直接操作内存,全部交给我来!
由此就必然产生:
Garbage Collection,所谓垃圾,就是不再使用的内存。
在C或C++中,经常会出现这样的代码:
所以,这活干脆Java(运行时)来干:自动的、定时的检查并回收那些不再使用的内存。这极大的解放了开发人员,使得Java变成一个快捷、易用,而且安全(不会发生内存泄漏啥的)的强大语言。
其实GC完全够得上一个大标题,但目前同学们知识储备不够(还需要堆栈、值/引用),我们就先讲到这里。注意Java最初设计的目的:为单片机开发设计。
当时,微机(PC)上的操作系统已经形成了windows、Linux,最多加一个MacOS三足鼎立的场景,但单片机……多如牛毛(其实今天也差不多),咋整?
Java语言开发团队想到了一个办法:
所以,Java被戏称为:一次编译,四处运行(复习:C语言一次编写,四处编译)
为什么要做不同的JVM,多了一个字节码,就有哪些不一样了呢?
这实际上就是软件架构中的“分层”问题:为什么需要分层?
这就像社会要分职业,工厂要分部门一样,是一个管理问题。
比如说做一扇实木门,大致的流程是:
你管着100号人,你可以:
@想一想@:哪一种更好,为什么?(提示:没有绝对的答案)
#常见面试题:Java究竟是编译执行,还是解释执行?
这是个坑!
首先,严格来说,语言本身不存在编译还是解释一说,编译和解释指的是由该语言书写的源代码的执行过程,而该执行过程是又软件(编译器/解释器/JVM)控制的,这软件谁都可以写,想怎么写就怎么写……
官方的JVM,默认是混合执行经过编译过后的字节码:
单片机时代,名字还叫做Oak,公司内部用一用,几乎被搁置
1995年,将其嵌入网页,Java Applet横空出世。然后以一种非常夸张的速度迅速发展:
IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和微软等各大公司都纷纷停止了自己的相关开发项目,竞相购买了Java使用许可证,并为自己的产品开发了相应的Java平台。
1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个JRE(Java Runtime Environmen)版本:
2007年3月,Java开源!
直到2009年04月20日,甲骨文74亿美元收购Sun,取得java的版权。曾经让开源世界伤透了❤,但是,事情最终还是没那么糟:
2011年,Java7正式发布
2014年,Java8正式发布,成为目前仍然在使用,而且是最多使用的一个版本。究其原因:
仍然最流行的通用(Web/App/嵌入式……)开发语言之一,未占领的领域:Windows桌面开发
拥有丰富的类库、框架、中间件,良好的社区环境
在国内的互联网企业中占有绝对的统治地位。
PS:了解国内甚至某个城市某个语言就业形势怎么样,干嘛不去查一查招聘网站呢?
多快好省!前端后端,线上线下,名师精讲
更多了解 加: