JAVA的关键特性
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的关键特性的更多相关文章
- JAVA语言对比C++语言的几个优点和自身的关键特性
之所以写这篇博客不是为了比较JAVA语言和C++语言到底孰优孰劣,而是从语言本身出发进行对比总结程序编码设计上的差别.因水平有限,某些内容可能太过片面,欢迎指正和讨论. JAVA语言在设计上很好地借鉴 ...
- Java 8 新特性终极版
声明:本文翻译自Java 8 Features Tutorial – The ULTIMATE Guide,翻译过程中发现并发编程网已经有同学翻译过了:Java 8 特性 – 终极手册,我还是坚持自己 ...
- Java 8 新特性——Lambdas 表达式
本文内容 引入 测试数据 collect(toList()) map filter flatMap max 和 min reduce 整合操作 参考资料 Java 8 对核心类库的改进主要包括集合类的 ...
- Lithium中关键特性更新
Lithium中关键特性更新 1. Lithium特性更新概述 Lithium相对于Helium更新特性共27项,其中原有特性提升或增强13项,新增特性14项,如下表所示 特性类型 相对于Helium ...
- Java 8 新特性终极指南
1.前言 毫无疑问,Java 8的发布是自从Java5以来Java世界中最重大的事件,它在编译器.工具类和Java虚拟机等方面为Java语言带来的很多新特性.在本文中我们將一起关注下这些新变化,使用实 ...
- Java 11 新特性介绍
Java 11 已于 2018 年 9 月 25 日正式发布,之前在Java 10 新特性介绍中介绍过,为了加快的版本迭代.跟进社区反馈,Java 的版本发布周期调整为每六个月一次——即每半年发布一个 ...
- Java 8 新特性——实践篇
Java 8 新特性--实践篇 参考 Java8新特性 重要更新:Lambda 表达式和Stream API Lambda 表达式 Lambda 表达式引入之前: 举个场景例子:当我们要对一个班级里的 ...
- Java 12 新特性介绍,快来补一补
Java 12 早在 2019 年 3 月 19 日发布,它不是一个长久支持(LTS)版本.在这之前我们已经介绍过其他版本的新特性,如果需要可以点击下面的链接进行阅读. Java 11 新特性介绍 J ...
- InnoDB关键特性学习笔记
插入缓存 Insert Buffer Insert Buffer是InnoDB存储引擎关键特性中最令人激动与兴奋的一个功能.不过这个名字可能会让人认为插入缓冲是缓冲池中的一个组成部分.其实不然,Inn ...
随机推荐
- [Codeforces 321D][2018HN省队集训D4T2] Ciel and Flipboard
[Codeforces 321D][2018HN省队集训D4T2] Ciel and Flipboard 题意 给定一个 \(n\times n\) 的矩阵 \(A\), (\(n\) 为奇数) , ...
- MySQL 导出远程服务器数据库 为 sql文件
MySQL 导出远程服务器sql文件 mysqldump -h192.168.1.111 –P3306 -uroot -ppassword --default-character-set=utf8 t ...
- Asp.net MVC 控制器扩展方法实现jsonp
项目需要,在使用KendoUI,又涉及到jsonp数据格式的处理,网上看到这样一种实现方法,在此小记一下(其实是因为公司里只能上博客园等少数网站,怕自己忘了,好查看一下,哈哈哈) 1. 新建控制器扩展 ...
- [JSOI2008]Blue Mary的战役地图
嘟嘟嘟 当看到n <= 50 的时候就乐呵了,暴力就行了,不过最暴力的方法是O(n7)……然后加一个二分边长达到O(n6logn),然后我们接着优化,把暴力比对改成O(1)的比对hash值,能达 ...
- Hadoop学习之路(三)Hadoop-2.7.5在CentOS-6.7上的编译
下载Hadoop源码 1.登录官网 2.确定你要安装的软件的版本 一个选取原则: 不新不旧的稳定版本 几个标准: 1)一般来说,刚刚发布的大版本都是有很多问题 2)应该选择某个大版本中的最后一个小版本 ...
- Java基础加强之并发(二)常用的多线程实现方式
概述 常用的多线程实现方式有2种: 1. 继承Thread类 2. 实现Runnable接口 之所以说是常用的,是因为通过还可以通过JUC(java.util.concurrent)包中的线程池来实现 ...
- js如何将时间戳转换为标准时间
function formatDate(date,fmt){ let o = { 'M+' : date.getMonth() +1, //月份 'd+' : date.getDate(), //日 ...
- mac 安装secureCRT
下载 http://www.xue51.com/mac/1632.html 会得到下面的文件: 打开dmg文件: 将SecureCRT移到Applications中,然后点击打开一次(重要): 然后打 ...
- virtualbox+vagrant学习-3-Vagrant Share-3-SSH Sharing
SSH Sharing vagrant share通过向vagrant share提供--SSH标志,使远程SSH访问vagrant环境变得非常容易. 如果你想让同事访问你的SSH,以便对ops问题进 ...
- smtp outlook邮件发送非授权码模式
1.起因:send fail SMTP AUTH extension not supported by server. 使用端口25 和587均失效出现此问题 首先前往outlook修改设置pop和I ...