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. firewalld防火墙简单理解总结(一)

    参考文章:https://linux.cn/article-8098-1.html https://linux.cn/article-9073-1.html   #多区域使用示例,重点参考 前言 防火 ...

  2. PFC电源设计与电感设计计算学习笔记

    PFC电源设计与电感设计计算 更新于2018-11-30 课程概览 常见PFC电路和特点1 常见PFC电路和特点1 CRM PFC电路设计计算 CCM PFC电路设计计算 CCM Interleave ...

  3. September 18th 2017 Week 38th Monday

    The only person you should try to be better than is the person you were yesterday. 你唯一应该试着去超越的人,是昨天的 ...

  4. 高性能网站架构缓存——redis集群

    相信你已经对redis有一定的了解,并能够安装上,进行简单的使用了,但是在咱们的实际应用中,使用redis肯定不会使用单机版,不光是redis不能使用单机版,其他的也不会使用,所以今天我们来说一下re ...

  5. 在web.xml中配置404错误拦截

    <error-page> <error-code>404</error-code> <location>/home.do</location> ...

  6. 洛谷 P1251 餐巾计划问题(线性规划网络优化)【费用流】

    (题外话:心塞...大部分时间都在debug,拆点忘记加N,总边数算错,数据类型标错,字母写错......) 题目链接:https://www.luogu.org/problemnew/show/P1 ...

  7. Day2 MySql函数以及单表查询

    SQL中的运算符 算术运算符 --算术运算符(子句) ; ; ; ; --0.75 ; --NULL div ; 比较运算符> < >= <= != = --0表示false, ...

  8. linq to sql 分页技术

    昨天在用LINQ写分页的时候碰到一个很奇怪的问题:翻页的时候,有的数据会莫名其妙地消失,查了半个多小时才发现问题所在,其实是一个很细节的地方. 数据表如下: LINQ分页的实现是: var artic ...

  9. win10下安装Jenkins

    Jenkins是一个基于java的持续集成工具,开源项目.用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.随着近几年docker技术的成熟和应用,很多公司开始大量尝试 ...

  10. node vue 开发环境部署时,外部访问页面出现: Invalid Host header 服务器域名访问出现的问题

    这是新版本 webpack-dev-server  出于安全考虑, 默认检查 hostname,如果hostname不是配置内的,将中断访问.顾仅存在于开发环境: npm run dev,打包之后不会 ...