关于JAVA

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

JAVA的发展史

1. Java的创作背景

20世纪90年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。Sun公司为了抢占市场先机,在1991年成立了一个称为Green的项目小组,帕特里克、詹姆斯·高斯林、麦克·舍林丹和其他几个工程师一起组成的工作小组在加利福尼亚州门洛帕克市沙丘路的一个小工作室里面研究开发新技术,专攻计算机在家电产品上的嵌入式应用。由于C++所具有的优势,该项目组的研究人员首先考虑采用C++来编写程序。但对于硬件资源极其匮乏的单片式系统来说,C++程序过于复杂和庞大。另外由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,如何让编写的程序跨平台运行也是个难题。为了解决困难,他们首先着眼于语言的开发,假设了一种结构简单、符合嵌入式应用需要的硬件平台体系结构并为其制定了相应的规范,其中就定义了这种硬件平台的二进制机器码指令系统(即后来成为“字节码”的指令系统),以待语言开发成功后,能有半导体芯片生产商开发和生产这种硬件平台。对于新语言的设计,Sun公司研发人员并没有开发一种全新的语言,而是根据嵌入式软件的要求,对C++进行了改造,去除了留在C++的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为Oak的面向对象语言。

2. Java的各版本特性

JDK Version 1.0

1996-01-23 Oak(橡树)

初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢。

JDK Version 1.1

1997-02-19

JDBC(Java DataBase Connectivity);
支持内部类;
RMI(Remote Method Invocation) ;
反射;
Java Bean;

JDK Version 1.2

1998-12-08 Playground(操场)

集合框架;
JIT(Just In Time)编译器;
对打包的Java文件进行数字签名;
JFC(Java Foundation Classes), 包括Swing 1.0, 拖放和Java2D类库;
Java插件;
JDBC中引入可滚动结果集,BLOB,CLOB,批量更新和用户自定义类型;
Applet中添加声音支持.

JDK Version 1.3

2000-05-08 Kestrel(红隼)

Java Sound API;
jar文件索引;
对Java的各个方面都做了大量优化和增强;

JDK Version 1.4

2002-02-13 Merlin(隼)

XML处理;
Java打印服务;
Logging API;
Java Web Start;
JDBC 3.0 API;
断言;
Preferences API;
链式异常处理;
支持IPV6;
支持正则表达式;
引入Imgae I/O API.
JAVA 5
2004-09-30 Tiger(老虎)

泛型;
增强循环,可以使用迭代方式;
自动装箱与自动拆箱;
类型安全的枚举;
可变参数;
静态引入;
元数据(注解);
Instrumentation;

JAVA 8

2014-03-18

Lambda 表达式 − Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中。

方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

默认方法 − 默认方法就是一个在接口里面有了一个实现的方法。

新工具 − 新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。

Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。

Date Time API − 加强对日期与时间的处理。

Optional 类 − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。

Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。
————————————————
版权声明:本文为CSDN博主「冯一朔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq934235475/article/details/82220076

JAVA 11

2018-09-25

翻译后的新特性有:

181:Nest-Based访问控制
309:动态类文件常量
315:改善Aarch64 intrinsic
318:无操作垃圾收集器
320:消除Java EE和CORBA模块
321:HTTP客户端(标准)
323:局部变量的语法λ参数
324:Curve25519和Curve448关键协议
327:Unicode 10
328:飞行记录器
329:ChaCha20和Poly1305加密算法
330:发射一列纵队源代码程序
331:低开销堆分析
332:传输层安全性(Transport Layer Security,TLS)1.3
333:动作:一个可伸缩的低延迟垃圾收集器 (实验)
335:反对Nashorn JavaScript引擎
336:反对Pack200工具和API
————————————————
版权声明:本文为CSDN博主「冯一朔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq934235475/article/details/82220076

注:全部内容请参考Java的各版本特点

Java的开发环境

JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK

Java的特点及优势

1.简单性
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
2.面向对象
Java是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。
Java还包括一个类的扩展集合,分别组成各种程序包(Package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。
3.分布性
Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。
网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。
4.编译和解释性
Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。
在一个解释性的环境中,程序开发的标准“链接”阶段大大消失了。如果说Java还有一个链接阶段,它只是把新类装进环境的过程,它是增量式的、轻量级的过程。因此,Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。
5.稳健性
Java原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。
Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。
可靠性方面最重要的增强之一是Java的存储模型。Java不支持指针,它消除重写存储和讹误数据的可能性。类似地,Java自动的“无用单元收集”预防存储漏泄和其它有关动态存储分配和解除分配的有害错误。Java解释程序也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内。
异常处理是Java中使得程序更稳健的另一个特征。异常是某种类似于错误的异常条件出现的信号。使用try/catch/finally语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。
6.安全性
Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。
Java运行系统使用字节码验证过程来保证装载到网络上的代码不违背任何Java语言限制。这个安全机制部分包括类如何从网上装载。例如,装载的类是放在分开的名字空间而不是局部类,预防恶意的小应用程序用它自己的版本来代替标准Java类。
7.可移植性
Java使得语言声明不依赖于实现的方面。例如,Java显式说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述)。
Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写。
8.高性能
Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。
Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。
9.多线程性
Java是多线程语言,它提供支持多线程的执行(也称为轻便过程),能处理不同任务,使具有线索的程序设计很容易。Java的lang包提供一个Thread类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。
Java的线索支持也包括一组同步原语。这些原语是基于监督程序和条件变量风范,由C.A.R.Haore开发的广泛使用的同步化方案。用关键词synchronized,程序员可以说明某些方法在一个类中不能并发地运行。这些方法在监督程序控制之下,确保变量维持在一个一致的状态。
10.动态性
Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。

                                                                        --更多文献参考于百度百科[Java的简介](https://baike.baidu.com/item/Java/85979)

Java是什么,有什么优势及特点相关推荐

  1. 报Java面授班有哪些优势

    ​ java技术在互联网行业的高速发展,让很多人都开始学习java技术,大家都想知道学习java技术面授班好还是网络班好,小编觉得当然是面授班比较好,下面小编就带大家来详细的了解一下报Java面授班有 ...

  2. java length()函数_小猿圈介绍java函数式编码结构及优势

    对于java大家都已经不陌生了吧,今天小猿圈Java讲师就分享一篇关于java函数式编码结构及优势的知识点,希望对于学习java的你有一定的帮助,想学习就需要积累. 探讨三种下一代JVM语言:Groo ...

  3. Java开发中消息中间件的优势有哪些?

    系统解耦 交互系统之间没有直接的调用关系,只是通过消息传输,故系统侵入性不强,耦合度低. 提高系统响应时间 例如原来的一套逻辑,完成支付可能涉及先修改订单状态.计算会员积分.通知物流配送几个逻辑才能完 ...

  4. java开发技术有什么意义,零基础学Java开发技术有哪些优势和好处?

    零基础学Java开发技术有哪些优势和好处?Java开发技术有下列优势:Java编程语言简单.面向对象集中于对象及其接口.分布式处理TCP/IP协议.鲁棒性.安全性.体系结构中立性.可移植性.解释执行. ...

  5. java商城有怎么样的优势,关于java商城系统的优势介绍

    在现在的电商市场上,PHP商城系统跟java商城系统是最受欢迎的两种不同开发语言的,两种不同的语言的系统都各种有各自的优势,那么其中java商城具有什么样的优势的呢?接下来就给大家讲讲关于与java商 ...

  6. mc用什么版本的java_MC版本Java版5大功能优势

    众所周知Java开发应用广泛,Java版本被很多人认为是最好的MC版本,MC版本Java版5大功能优势有什么呢?Java版开发优势:支持更多的模组.各种节日彩蛋.官方更高的重视性.游戏画面色彩更好.操 ...

  7. 大数据必学Java基础(一):Java体系结构、特性和优势

    文章目录 Java体系结构.特性和优势 一.JAVA简史 [1]SUN公司 [2]Java为什么被发明

  8. Java的基本特性和优势

    Java三高 三高:高可用.高性能.高并发 Java特性和优势 简单性:C++的简易版,学起来不费力. 面向对象:程序设计技术,重点放在对象和对象的接口上,模拟人的思维.万物皆对象. 可移植性:跨平台 ...

  9. 为什么要学Java,这8大优势告诉你!

    TIOBE官方最新发布了7月的编程语言榜单--7 月 TIOBE 排行榜前三名为 C.Java 和 Python,C++ 位列第四. 榜单中Java.C.Python占据前三位置,此次位列榜单前八的编 ...

  10. Python 相较于Java 而言,有什么优势?

    从头开始,Python就赢了.上图为证: 人生苦短,快用Python! Python的核心优势总结起来无非就是以下三个方面: 代码语言简洁,刷题性价比高 时代偏爱Python,学习人数爆炸式增长 大厂 ...

最新文章

  1. 重磅直播 | PointDSC:基于特征匹配的点云配准方法(CVPR2021)
  2. 解决kubernetes中ingress-nginx配置问题
  3. Django_博客_XSS 攻击防范
  4. IPFS (1) 初步简介
  5. linux进程管理fork,Linux -- 进程管理之 fork() 函数
  6. 爱荷华大学计算机科学专业,爱荷华大学计算机科学专业好不好?专业设置详情一览...
  7. 单片机点亮一个灯程序_初识单片机C语言编程,点亮第一个LED灯
  8. linux文件移出目录命令_linux命令大全_文件目录操作命令
  9. 【转】JAVA中的浅拷贝和深拷贝
  10. 监控oracle等待事件
  11. 鸿鹄系统和鸿蒙系统区别,鸿蒙系统现身,搭配升降式镜头和鸿鹄芯片,你以为是手机?...
  12. CarMaker快速入门第三课创建车辆动力学仿真
  13. 黑苹果intel网卡驱动
  14. 项目过程管理(五)需求文档
  15. 用java 解密pdf_Java 加密、解密PDF文档(示例代码)
  16. 通用能力-智力题专项练习
  17. Travis Ci 让你的项目轻松加入持续集成测试
  18. 陈文灯畅谈2005考研数学复习策略
  19. python从0到1_从0到1的Python学习经验
  20. Superset 制作 地图 柱状图 饼状图

热门文章

  1. NPDP产品经理小知识:知识产权管理
  2. HTML thead 标签
  3. 角谷定理python输出变化过程_角谷定理。
  4. 现代A200(MoboDA3360)玩家宝典
  5. Google学术无法进入的根本解决方案
  6. Chart.js插件使用的笔记
  7. 使用boostrap制作导航栏
  8. 关闭电脑时提示有人远程使用计算机,关机时提示有人正在远程使用
  9. 蓝桥七届 凑算式 JAVA
  10. win10系统能正常接收qq微信但打不开网页问题解决方法