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

最新文章

  1. PowerShell自动部署IIS站点(Windows Server 2008 R2)
  2. C#中Split用法
  3. SDcard
  4. 让淘宝链接在微信中分享,GO
  5. C++语言-04-重载
  6. [CareerCup] 12.1 Find Mistakes 找程序错误
  7. C#多线程之二:ManualResetEvent和AutoResetEvent
  8. koa 笔记 运行错误
  9. Holding Bin-Laden Captive!_hdu_1085(DP).java
  10. 移动对meta的定义
  11. 【JMeter】Jmeter引入第三方jar包
  12. 分针网—每日分享:HTML解析原理
  13. 听翁恺老师mooc笔记(6)--指针运算
  14. php设计模式--面向对象编程规范PSR
  15. UE4 材质编辑
  16. Win7系统安装Centos7.0双系统(三)
  17. 说一下PHP中die()和exit()区别
  18. c运行库、c标准库、windows API的区别和联系
  19. 【转载】浅谈JavaScript,let和var定义变量的区别
  20. 2018.09.20 atcoder Building Cubes with AtCoDeer(枚举)

热门文章

  1. oracle的操作-表空间
  2. git rebase 还是 merge的使用场景最通俗的解释
  3. 汉字统计(hdu2030)
  4. Docker编译Android6.0源码
  5. Cube-UI组件中create-api 模块的基本使用
  6. [ES6系列-05]字符串相关操作更方便
  7. 【书签】连续型特征的归一化和离散特征的one-hot编码
  8. 逃离CSDN
  9. 一文彻底搞懂BERT
  10. ASP.NET的Web网页如何进行分页操作(Demo举例)