Java的诞生历史
Java帝国的诞生
1.1972年C诞生
- 贴近硬件,运行极快,效率极高
- 操作系统,编译器,数据库,网络系统等都采用C语言
- 但是,它的指针和内存管理给程序员安上了“枷锁”。它的指针没有检查制度,内存也不会自动释放,需要程序员自己释放。虽然在任何编译器都可以写C,但是它要求使用标准的C的库,这种‘暴政’对程序员很不友好。
2.1982年C++诞生
- 面向对象
- 兼容C
- 在图形领域、游戏等领域做的比较好
- 但是,它比C更加复杂,很多人无法完全掌握。其内涉及很多计算机底层的知识。
3.1995年Java诞生
- 语法有点像C
- 没有指针
- 没有内存管理
- 真正的可移植性,编写一次,到处运行
- 面向对象
- 类型安全
- 高质量的类库
- ......
浅谈Java的命名
Java,最初命名为C++--,代表在C++之上进行优化的一种语言,但是与它的设计理念不符合,因此就改成了oak。但是后来命名的时候发现oak已经被命名过了,因此也就出现了我们现在的Java这个称呼。
Java初生
- 1995年的网页简单而粗糙,缺乏互动性
- 由Java开发的图形界面的程序(Applet)使得网页变得稍微美观一些,也就捕获了大多数程序员的心
- 微软的比尔·盖茨说:“这是迄今为止设计的最好的语言!”微软想将Java设计为仅供windows使用的语言,于是就有了后来的.net出现。
- 由于Java只能最初用于图形界面开发,用途限制性比较大,于是1998年就引进了Java的三个版本:
- Java 2 标准版(J2SE):去占领桌面
- Java 2 移动版 (J2ME):去占领手机
- Java 2 企业版 (J2EE):去占领服务器
- JavaSE最初占领桌面领域做的并不很好,界面不是很好看,而且JavaME在手机端运行还要下载专门的JVM(Java虚拟机),很不方便。只有javaEE在占领服务器这一块做的比较好,也因此成为了Java比较适合的一个领域。因此很多大型的项目都采用Java语言。
浅谈为什么Java开发后微软仍要开发.NET?
Java当年打出来就是冲着跨平台来的,然后后来发现,每一个系统都有自己的规则,所以搞的东西性能就非常差。
而WIN 一直以来在 PC端是大哥的地位,而且微软跟硬件商都是玩在一起的,什么优化驱动什么的 肯定一般是WIN先来。为了提高WIN的性能,微软就因此创建了.NET。
.NET就是微软自家的东西,无论调用任何东西,跟生态都比JAVA强。包括性能。 所以桌面程序大多数是 .NET。
Java为什么要开发JVM?
Java 也是个高阶语言,要让电脑执行你编写的应用程序,也是得借助编译器的翻译。不过,Java编译时,并不直接翻译为相依于某平台的0101指令,而是翻译为中介格式的位元码(byte code)。Java 的原始码文件格式名为.java,经过编译器翻译过后,会变成.class的格式文件位元码。如果想要执行这个位元码档案,目标平台上必须安装有JVM(Java Virtual Machine)。JVM会将位元码翻译为相应平台支持的语言,从而达到跨平台的目的。
不同的平台必须安装该平台相对应的JVM。这就好比你讲中文(.java),Java编译器帮你翻译为英文(.class)。之后该英文文件,到当地之后,再由当地看得懂英文的人翻译为当地的方言。
所以JVM所担任的职责之一,就是当地的翻译员,将位元码文件翻译为当时作业系统看得懂的0101序列。不过这不是最重要的,基本上如果只是要翻译员的话,直译器(Interpreter )就办得到了。
JVM有个很重要的观念就是:「对于Java程式而言,其实它只认识一种作业系统(或说是一种机器),这个系统叫作JVM,而对于JVM而言,位元码文件就是它的可执行文件!也就是格式为.class的文件。Java代码程序,理想上,并不用理会真正执行于哪个平台之上,它只要知道如何执行于JVM之上就可以了,至于JVM实际上如何与底层平台作沟通,则是JVM自己的事!」这个观念非常的重要,对于以后能够搞清楚所PATH变量与CLASSPATH变量的概念,也有一定的帮助。
浅谈一个好的程序需要具备什么?
一个好的程序需要具备“三高”原则,即高可用、高性能、高并发。
高并发是现在互联网分布式框架设计必须要考虑的因素之一,它是可以保证系统能被同时并行处理很多请求。
高性能是指程序处理速度非常快,所占内存少,cpu占用率低。
高可用通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。
Java发展
1.大量巨头加入了Java后,他们基于Java开发了巨多的平台,系统,工具
- 构建工具:Ant,Maven,Jekins
- 应用服务器:Tomcat,Jetty,Jboss,Websphere,weblogic
- Web开发:Struts,Spring,Hibernate,myBatis
- 开发工具:Eclipse,Netbean,intellij idea,Jbuilder
- ......
2.2006年Hadoop的出现让Java占领了大数据领域
3.2008年Andrid的出现让Java在手机端占领了一席之地,也相当于是JavaME在手机端的一个提升。
Java特性及优势
- 简单性
- 面向对象
- 可移植性
- 高性能
- 分布式
- 动态性(Java本身不具有动态性,它的反射机制可以满足动态性要求)
- 多线程
- 安全性
- 健壮性
为什么要学习Java?
- 它是目前最为广泛的网络编程语言
- Java语言简单,这门语言既易学又好用。
- 基于对象的编程更符合人的思维模式
- 跨平台是Java语言最大的优势
- 是解释型
- 内置对多线程的支持
- 安全
- 动态(Java内部的反射机制实现)
Pass:本文主要用于学习分享,若有问题希望能在评论区给出您宝贵的意见和建议!感谢!