Sun公司简介

Sun公司的全称 Stanford University Network ,是斯坦福大学孵化出来的后来成为高科技公司。创立后,曾经市值名列IT公司第一位。在2001年时,市值2100亿美元,远超过google公司、IBM公司。SUN公司不仅打败了包括 IBM 在内的全部工作站(Work Station)和小型机(Mini Computer)公司,而且依靠它的 Solaris(一种Unix)和风靡世界的 Java 程序语言,成为在操作系统上最有可能挑战微软的公司。太阳公司不乏能人,它不仅为 Google 培养了 CEO埃里克.施密特和首任工程部副总裁韦恩.罗森(Wayne Rosen),并且在一定程度上奠定了今天 Google 工程部门的基础。当然了现在的Sun公司已经被Oracle公司收购。

Java的诞生和核心特点

上世纪90年代初,SUN公司的James Gosling(高司令)领导的Green项目,着力打造一个分布式的、可以在消费类电子产品(如电视机顶盒)使用的系统架构。这个可以在以前的诺基亚手机上看到,玩过诺基亚手机游戏的人都知道。在游戏开始的时候会有Java的标识。

这种架构中,要求写的代码可以运行在各种消费类电子产品中,即要求代码的中立性、跨平台性。

最初,Green项目使用的C++,但是在研发过程中发现C++并不能很好的适应新的需求。于是,这些高人对C++编译器做了改写,仍然不太理想,不太符合跨平台的特性。 牛人有牛人特有的牛脾气,于是,大家决定重起炉灶,开始研发一种新的语言,即JAVA.

经过一年半的研发,整个产品研发完成。但是,很遗憾,消费类电子产品并没有高速的发展起来,JAVA进入蛰伏期

注意这里提出的跨平台特性是Java语言中重要特性之一。

Java飞速发展

无心插柳柳成荫!90年代中末期,有一个改变世界的大事出现了:互联网的爆发式增长。在传统产业,例如钢铁产业要想取得产量翻番,那需要很多年的时间。但是,在互联网行业都是呈指数级增长,爆炸式的增长。google可以在短短几年就增长到上千亿美元市值。

互联网将各种各样的电脑连到了一起,这时,我们发现电 脑的操作系统各种不同。因此,急需一种跨平台的语言,通过它编写的程序可以在各种平台上运行。JAVA正好符合这种需求。使用JAVA编写的applet程序给了90年代的人们极大的震撼,于是JAVA迎来了他的黄金时代!

JAVA诞生后,经历了如下版本的发展变化:

•    1991年,Sun公司的Green项目,Oak

•    1995年,推出Java测试版

•    1996年,JDK1.0

•    1997年,JDK1.1

•    1998年,JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版本,更名为Java2

•    2004年,J2SE 5.0 (1.5.0)  Tiger老虎

•    2006年,J2SE 6.0 (1.6.0)  Mustang野马

•    2011年,JAVASE7.0

Java的特性和优势

简单实用性: 就是c++语法的纯净版。没有头文件,指针运算,结构,联合,操作符重载,虚基类等等。由于语法基于c,因此学习起来完全不费力。

面向对象:在《Java编程思想》中对面向对象思维方式有着深刻的讲解,面向对象是一种程序设计技术,他将重点放在数据(即对象)和对象之间的接口上。通过抽象的方式概括,通过具体的方式实现代码的编写。这个是在面向过程编程思想上的一种创新。

可移植性(跨平台性)

我们都知道Java的跨平台性很好,当然 这是JAVA的一个重要的优势。JAVA代码或者说字节码、二进制码可以跨平台的移植,而不用管具体的操作系统和硬件环境。JAVA本身就是面向网络的,只有在网络环境中才能显示出他的优势,比如:现在我有一个网络环境,要让我的笔记本和手机交互,笔记本环境是windows发出一个让手机定时录音的JAVA代码,手机只有简单Linux内核操作系统,照样可以完美的执行这个代码。这个在《Java编程思想》一书中提出的观点是有本地库和网络库的观点

write once, run anywhere

JAVA在设计时就很注重移植和跨平台性。比如:JAVA的Int永远都是32位。不像c++可能是16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。

高性能

JIT(JUST IN TIME)即时编译。将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使JAVA程序的执行效率大大提高,某些代码甚至接待c++的效率。随着这种技术的一天天完善,也许有一天会超越编译代码的效率。

分布式

JAVA是为internet的分布式环境设计的,因为他能够处理tcp/ip协议。事实上,通过url访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,remote method Invocation),使程序能够通过网络调用方法。

动态性

就是在需要时将某些代码添加到正在运行的程序中。反射机制。当需要把某些代码添加到正在运行的程序中时,动态性是一个非常重要的特性。Java的动态特性是其面向对象设计方法的扩展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的

多线程

多线程的使用可以带来更好的交互响应和实时行为。多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

安全性

Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以构建防病毒,防篡改的系统。

健壮性

Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。Java系统仔细检测对内存的每次访问,确认它是合法的,而且不致引起任何问题。不过,即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该例外抛弃。再通过异常处理机制,程序就会发现这类例外,并加以处理。

Java 三大版本的区别

JAVAEE、JAVASE、JAVAME

J2EE (JAVAEE)

–    Java 2 Enterprise Edition:

–    定位在服务器端的应用

•    J2SE  (JAVASE)

–    Java 2  Standard  Edition

–    定位在个人计算机上的应用

•    J2ME  (JAVAME)

–    Java  2  Micro  Edition

–    定位在消费性电子产品的应用上

第一节 Java语言发展史相关推荐

  1. 穿越Java - 基础篇 第一章 快速带你入门 | 第3节 Java语言发展史

    主题:Java语言发展史 开发环境 更多干货 发展史 开发环境 基于:IntelliJ IDEA.Maven构建工具.JDK1.8.SpringBoot 2.3.4 .Spring4.3.28编写. ...

  2. 【JAVA SE】第一章 Java语言概述、环境变量和HelloWorld

    第一章 Java语言概述.环境变量和HelloWorld 文章目录 第一章 Java语言概述.环境变量和HelloWorld 一.Java语言概述 1.Java简介 2.Java发展历史 3.Java ...

  3. java语言发展史,虚拟机的安装与配置

    1.  计算机基础 1.1. 计算机 电子计算机,俗称电脑,是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.由硬件和软件所组成,没有安装任何软件的计算机称为裸机. 1.2. 硬件和 ...

  4. 【JAVA】Java概述(1、Java语言发展史;2、Java语言跨平台原理;3、JRE和JDK;4、JDK的下载与安装)

    Java概述 重新学习Java第一篇 文章目录 Java概述 1.JAVA语言发展史 1.1Java语言 1.2Java语言发展史 2.Java语言跨平台原理 2.1平台 2.2跨平台 2.3跨平台原 ...

  5. 【Java开发语言 01】第一章 Java语言概述(基础常识+Java语言概述+Java程序运行机制及运行过程+Java语言环境的搭建+开发体验hello world+错误:编码GBK的不可映射字符)

    java入门-第一章Java语言概述 1基础常识 软件开发 人机交互方式 常用的DOS命令(win系统,有一些直接通过命令执行的) 2 Java语言概述 什么是计算机语言 关于面向对象和面向过程 Ja ...

  6. JAVA程序设计-头歌实训-------# 第一阶段 Java语言快速入门

    第一阶段 Java语言快速入门 第1关:Java程序的基本框架:Hello Java World! 任务描述 本关的任务是编写你人生中第一个Java程序,从此开启你的Java实训之旅,显示效果如下: ...

  7. java第一章Java语言概述和入门程序

    文章目录 Java课程简介 1.1 Java概述(Java的发展) 1.2 Java 的特点 不依赖平台 1.3 java软件平台安装和配置 java程序开发 含有psvm的是主类 入口 java类默 ...

  8. java程序包不存在_第一章 Java语言简介

    Java语言简介 Java之父 James Gosling(詹姆斯·高斯林) 正式诞生时间 1995年,已有二十多年历史 三大方向 JavaSE(桌面版,基础需重点掌握) JavaME(移动版,现在基 ...

  9. [JAVA_开课吧资源]第一周 Java语言概述、Java语言基础

    主题一 Java语言概述 » JDK介绍及其基本组件 Sun公司利用Java开发工具箱(Java Development Toolkit ,JDK)发布Java的各个版本.JDK由开发和测试Java程 ...

最新文章

  1. STM32单片机外部中断配置讲解
  2. Spring Boot 整合 Spring Security 示例
  3. 这款AI语音模型让派大星承认自己是钢铁侠,造假小扎对口型,火到挤爆服务器|在线可玩...
  4. 后台开发人员面试内容——JVM虚拟机(四)
  5. python -asyncio
  6. C语言没有引用,只有指针
  7. 2018.11.08 NOIP模拟 班车(倍增+dfs+bit)
  8. Vim 可视化模式入门
  9. 何恺明!再斩ICCV 2017最佳论文
  10. vs2010安装番茄插件
  11. 斐讯N1刷无线打印服务器,斐讯N1刷armbian制作cups打印服务器支持airprint不使用foo2zjs|hp1020...
  12. 计算机微信开发中期检查表,毕业论文(设计)-中期检查报告(范文)61页
  13. 苹果屏蔽更新描述文件_屏蔽iPhone更新的iOS描述文件安装办法
  14. -XX:NewRatio 命令
  15. 【Linux】Linux的进程调度
  16. __stack_chk_fail之栈帧溢出检测技术
  17. Interval 类型总结
  18. 数据库原理第一章测验(标黑的为答案)
  19. 通俗理解偏序关系中的八个特殊元(极大、极小、最大、最小元和上界、下界、上确界、下确界)
  20. RAII (Resource Acquirement Is Initialization)

热门文章

  1. 小程序空显示undefined_微信小程序显示ESP8266上传的实时显示温湿度数据
  2. 登录与注册 艺术与业务 的结合
  3. 多个java文件编译并打成jar包经典方法
  4. 与时共舞,力求变革【我眼中的戴尔转型】
  5. 用户、组织结构、功能菜单、权限分配设计
  6. python笔记(一)——python中的类及内置函数
  7. 用户行为分析笔记(二):系统的整体架构
  8. 做DNS子域委派配置
  9. 史玉柱吃透了中国人的人性,也引发了争议
  10. Object Detection: Face Detection using Haar Cascades