Java团队对设计Java时的关键考虑因素进行了总结,关键特性包含以下列表:

  • 简单性
  • 安全性
  • 可移植性
  • 面向对象
  • 健壮性
  • 多线程
  • 体系结构中立
  • 解释执行
  • 高性能
  • 分布式
  • 动态性

    简单性

    Java的设计目标之一是让专业程序员能够高效的学习和使用,如果了解了面向对象编程的基本概念,学习Java将会更容易,如果你是一位有经验的C++程序员,那么只需要非常少的努力就可以迁移到Java。因为Java继承了C/C++的语法以及许多面向对象特性,大部分程序员学习Java都不困难。

    安全性

    每次下载一个“正常的”程序时,都具有一定的风险,因为下载的代码可能包含病毒、木马或其他有害代码。而Java通过将应用程序限制在Java执行环境中,并且不允许访问计算机的其他部分来实现这种保护。下载程序并能确保不会造成危害,并且不会破坏安全性的能力,被认为是Java最重要的一个创新。

    可移植性

    不能移植是因为编译器变异成的可执行代码,针对不同CPU需要不同的指令集。而Java编译器输出的不是可执行代码,是字节码,字节码在Java虚拟机JVM中被解释执行,JVM提供了从字节码到各种平台的翻译。因此Java程序只需要一次编译,生成字节码,可以在各个系统中的JVM上运行。

    面向对象

    Java是从C/C++衍生而来,继承了C++面向对象的特性。Java中的对象模型既简单又易于扩展,而基本类型(如整型)仍然是高性能的非对象类型。

    健壮性

    为了活动可靠性,Java在一些关键领域进行了限制,从而使程序员在程序开发中及早的发现错误。因为Java是强类型化的语言,它在编译时检查代码。当然不管怎样,在运行时也检查代码,使编写好的程序在不同的条件下可以预见的方式运行是Java的关键特性之一。

    多线程

    Java支持多线程编程,允许编写同步执行许多工作的程序,能够创建运行平稳的交互式系统。Java提供了易用的多线程方法,使得只需要考虑程序的特定行为,而不需要考虑多任务子系统。

    体系结构中立

    对于开发人员来说,担心因为操作系统升级、处理器升级以及核心系统资源的变化,都可能导致程序出现故障。Java设计人员对Java语言做出了一些艰难的决策,Java虚拟机就是试图解决这个问题的。其目标是“编写一次,无论何时、何地都能永远运行”。

    解释执行和高性能

    Java通过编译生成字节码,在JVM上运行,JIT及时编译器将那些能从编译中受益的代码转换为高性能的本机代码,其他代码继续保持解释执行。

    分布式

    Java是针对Internet的分布式环境而设计的,能处理TCP/IP协议,使用URL访问资源与访问文件没有多大区别。Java还支持远程方法调用RMI,允许程序通过网络调用方法。

    动态性

    Java程序本身带有大量的运行时类型信息,这些信息可以用在运行时验证和解决对象访问问题。这使得以一种安全、方便额方式动态的链接代码成为可能。

JAVA的关键特性的更多相关文章

  1. JAVA语言对比C++语言的几个优点和自身的关键特性

    之所以写这篇博客不是为了比较JAVA语言和C++语言到底孰优孰劣,而是从语言本身出发进行对比总结程序编码设计上的差别.因水平有限,某些内容可能太过片面,欢迎指正和讨论. JAVA语言在设计上很好地借鉴 ...

  2. Java 8 新特性终极版

    声明:本文翻译自Java 8 Features Tutorial – The ULTIMATE Guide,翻译过程中发现并发编程网已经有同学翻译过了:Java 8 特性 – 终极手册,我还是坚持自己 ...

  3. Java 8 新特性——Lambdas 表达式

    本文内容 引入 测试数据 collect(toList()) map filter flatMap max 和 min reduce 整合操作 参考资料 Java 8 对核心类库的改进主要包括集合类的 ...

  4. Lithium中关键特性更新

    Lithium中关键特性更新 1. Lithium特性更新概述 Lithium相对于Helium更新特性共27项,其中原有特性提升或增强13项,新增特性14项,如下表所示 特性类型 相对于Helium ...

  5. Java 8 新特性终极指南

    1.前言 毫无疑问,Java 8的发布是自从Java5以来Java世界中最重大的事件,它在编译器.工具类和Java虚拟机等方面为Java语言带来的很多新特性.在本文中我们將一起关注下这些新变化,使用实 ...

  6. Java 11 新特性介绍

    Java 11 已于 2018 年 9 月 25 日正式发布,之前在Java 10 新特性介绍中介绍过,为了加快的版本迭代.跟进社区反馈,Java 的版本发布周期调整为每六个月一次——即每半年发布一个 ...

  7. Java 8 新特性——实践篇

    Java 8 新特性--实践篇 参考 Java8新特性 重要更新:Lambda 表达式和Stream API Lambda 表达式 Lambda 表达式引入之前: 举个场景例子:当我们要对一个班级里的 ...

  8. Java 12 新特性介绍,快来补一补

    Java 12 早在 2019 年 3 月 19 日发布,它不是一个长久支持(LTS)版本.在这之前我们已经介绍过其他版本的新特性,如果需要可以点击下面的链接进行阅读. Java 11 新特性介绍 J ...

  9. InnoDB关键特性学习笔记

    插入缓存 Insert Buffer Insert Buffer是InnoDB存储引擎关键特性中最令人激动与兴奋的一个功能.不过这个名字可能会让人认为插入缓冲是缓冲池中的一个组成部分.其实不然,Inn ...

随机推荐

  1. maven项目中引入Jstl

    <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api& ...

  2. September 22nd 2017 Week 38th Friday

    If we believe that tomorrow will be better, we can bear a hardship today. 如果我们相信明天会更好,今天就能承受艰辛. If y ...

  3. JS 正则 /g 注意事项

    JS 正则 /g 注意事项 字数1066 阅读0 评论0 喜欢0 js中正则表达式的全局匹配模式 /g用法详细 瞎扯 使用正则表达式来做表单验证的时候,遇到如下一个鬼东西, 匹配正则的时候,同样的数据 ...

  4. 代码覆盖率测试及 GitHub 自动化集成

    本文对应项目为 learn-coverage-test,可以对照项目案例进行阅读. 覆盖率测试 在写代码的时候,我们有时候会进行代码测试以保证我们代码的可执行性.但是测试代码只能保证测试案例能够通过, ...

  5. 4199. [NOI2015]品酒大会【后缀数组+并查集】

    Description 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品 酒家”和“首席猎手”两个奖项,吸引了众多品酒师参加.在大会的晚餐上,调酒师 ...

  6. 超简单,centos7安装docker

    1.在centos7上直接yum安装docker [root@localhost ~]# yum install docker 2.启动docker [root@localhost ~]#servic ...

  7. Java并发编程--6.Exchanger线程间交换数据

    在两个线程之间定义同步点,当两个线程都到达同步点时,他们交换数据结构,因此第一个线程的数据结构进入到第二个线程中,第二个线程的数据结构进入到第一个线程中 在生产者-消费者情境模式中它包含了一个数缓冲区 ...

  8. 使用Message

    Message按照定义解释就是topic内容的数据类型, 也称之为topic的格式标准. 1.结构与类型 基本的msg包括bool. int8. int16. int32. int64(以及uint) ...

  9. vue-cli 安装失败Failed to download repo vuejs-templates/vuedemo: Response code 404 (Not Found)

    还原问题现场: 第一次使用vue init webpack projectName的时候,由于操作失误,执行了两次npm install -g vue-cli,然后再使用vue init webpac ...

  10. mysql命令框中向表中插入中文字符,在可视化工具MySQL Workbeach或phpMyAdmin中不显示或显示乱码的问题解决

     一.问题导出 在刚刚开始学习MySQL数据库应用与开发这门课程的时候,老师建议我们使用可视化工具MySQL Workbeach进行数据库的相关管理,但是小编在mysql命令框使用insert命令向表 ...