C&C++
1972年C诞生
◆贴近硬件,运行极快,效率极高。
◆操作系统,编译器,数据库,网络系统等
◆指针和内存管理
1982年C++诞生
◆面向对象
◆兼容C
◆图形领域、游戏等
背景
20世纪90年代,硬件领域出现了单片式计算机系统。为了抢占市场Sun公司在1991年成立了一个称为Green的项目小组,其目的是开拓消费类电子产品市场。由于C++的优势,考虑采用C++编写程序。但对于硬件资源极其匮乏的单片式系统来说,C++程序过于复杂和庞大,另外由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,如何让编写的程序跨平台运行也是个难题。因此,对易于移植到各种设备上的平台需求呼声很高
兴起
到了1994年下半年,正当Green小组遭受挫折的时候,互联网(internet)的迅猛发展促进了Java语言研制的进展,Sun公司意识到了Java的技术潜能,推出了完全用Java编写的新型浏览器HotJava,使得Java逐渐成为互联网上受欢迎的开发与编程语言。
布局
Java 2标准版(J2SE): 去占领桌面
Java 2移动版(J2ME): 去占领手机
Java 2企业版(J2EE): 去占领服务器
发展
基于Java开发了巨多的平台,系统,工具
◆构建工具: Ant, Maven, Jekins
◆应用服务器: Tomcat, Jetty, Jboss, Websphere, weblogic
◆Web开发: Struts ,Spring,Hibernate, myBatis
◆开发工具: Eclipse, Netbean,intellij idea, Jbuilder
◆2006 : Hadoop (大数据领域)
◆2008 : Android (手机端)
Java特性和优势
高可用,高性能,高并发
简单性
采用C语言语法并去掉一些复杂概念
面向对象
可移植性
Java编译器生成了与体系结构无关的字节码文件,任何种类的计算机,只有在其处理器和操作系统上有Java运行环境,字节码文件就可以在该计算机上运行
分布式
分布式语言,跨平台高并发,高性能,互联网架构不二选择
动态性
Java的动态性是其面向对象设计的扩展. 它提供运行时刻的扩展性, 即在后期才建立各模块间的互连. 各个库可以自由地增加新的方法和实例(instance)变量. 这意味着现有的应用程序可以增加功能, 只须链接新类封装有所需的方法.
C++是多重继承(multiple inheritance)的, 若某个超类(superclass) 改变了某个方法或变量, 其子类(subclass)必须重新编译. Java则用接口(interface)来实现多级继承, 使用起来比C++的多重继承更灵活.
Java语言的动态性使它能够胜任分布式系统环境下的应用, 位于各地的类可以自由地升级, 而不影响原Java应用程序的运行.
反射,注解,动态代理,类加载机制
多线程
多线程可以使应用程序同时进行不同的操作
安全性
JDK、JRE、JVM
JDK : Java Development Kit
JRE : Java Runtime Environment
JVM : JAVA Virtual Machine