JAVA的诞生
- c语言有汇编语言的特点,所以更贴合硬件,运行快效率高,有很多系统、编译器、数据库等都是由c语言编写的,包括C语言的指针可以直接操控内存,但是C语言却没有给一个工具去越界检查,导致很容易犯错,同时内存管理需要自己调试,且不能再编译的时候发现,导致很大一部分精力都被指针和内存占用
- c++诞生后不仅有面向对象的部分,还兼容C语言,同时在游戏和图形领域取得了很大的成功,但是c++的过于复杂,导致入门门槛太高(如果对计算机底层感兴趣可以学习)
- 需要一个能在任何平台运行(jvm环境),不需要内存管理和指针,同时具备c++部分特性,面向对象,类型安全等特点的新语言,Java经历几次名称更改后诞生
- 但是刚诞生的Java网页简陋缺乏互动,于是新增了图形界面程序APPLET,现在也被JS淘汰,后续随着javaee(服务器),javase(桌面)javame(手机端)发展,后续随着中间件的出现是程序员从三高(高可用、高性能、高并发)中解脱出来,从此Java越发壮大
- 随着Java程序员的不断增加,也基于Java开发了诸多工具和平台如:构建工具Ant、Maven、Jekins,应用服务器Tomcat、Jetty、Jboss,web开发工具spring,mybatis,开发工具eclipse、netbean、idea等
- Hadoop出现使Java占领了大数据领域,随着andriod出现占领了手机端
Java的特性和优势
- 简单性:不用管内存管理和指针
- 面向对象:模拟的是人的思维去编程
- 可移植性:可跨平台运行,不拘泥于某一平台
- 高性能:即时编译可以使Java效率接近c++
- 分布式:可以通过URL可以定位访问网络资源
- 动态性:Java本身不具备动态性但是通过反射使Java拥有了动态性(c++无法实现)
- 多线程:带来更多交互性
- 安全性:反篡改
- 健壮性:有个异常机制,每次运行都会进行检查,程序不会突然崩溃
Java三大版本
- JavaSE:标准版,编写桌面程序,控制台开发
- JavaME:嵌入式开发(但是目前很少有人在用了)
- JavaEE:企业版,web端和服务器开发
JDK JRE JVM
- JDK:Java Development Kit Java开发者工具
- JRE:Java Runtime Environment Java运营环境
- JVM:Java Virtual Machine Java虚拟机
- JDK包含JRE,并在JRE上扩充开发工具,JVM可以在软件上实现,也可以在硬件上实现(跨平台核心)