志达IT
做快乐程序员

java运行环境(Java语言的特性)

java运行环境

Java言语与是由美国Sun公司于1995年推出的一门计算机编程言语,其拥有跨渠道、面向对象、泛型编程等特色,因此被广泛使用在互联网程序的开发领域,如大型网站构建、大数据发掘及移动使用开发等方向。

Java语言的特性

简单性:Java言语继承了C++的长处,但是又没有C++中比方:头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等概念,能够说Java言语是C++言语的一个”纯洁”版别;而从另一个角度来讲,”简单”也意味着小,Java供给了一个独立的具有较小类库的Java微型版(JavaMicroEdition),这个版别支撑开发能运转在小型机器上独立运转的软件,比方嵌入式设备;
面向对象:Java的面向对象特性与C++相当,首要的不同点在于Java中使用了接口”替代”了C++的多重继承机制(有关面向对象相关的内容会在后边专门出一篇面向对象编程相关的文章);
渠道无关性(可移植性):Java规范中没有”依靠详细完成”的当地,例如根本数据类型的大小以及有关运算的行为都有明确的阐明(关于C/C++来说,int可能是16位整数,也可能是32位整数,而Java中int永远是32位整数)。Java的渠道无关性首要是JVM的劳绩,JVM针对不同体系都有其对应的完成,我们只需要将编译后的字节码文件交给JVM,JVM会依据不同体系的完成翻译成对应体系详细履行的机器码;
尽管Java绝大多数库都能支撑很好地支撑渠道无关性,但关于用户界面相关部分的类库尽管经过了屡次重写,依旧还是不能很好地进行跨渠道移植;java
可靠性(安全性):Java舍弃了C++的指针对存储器地址的直接操作,程序运转时,只能经过类的实例操作相应的内存空间,这样能够避免病毒经过指针侵入体系进行修改(指针能够随意指向一个内存区域,而不管这个区域是否可用),也避免了指针操作中易发生的过错。一起,Java对程序供给了安全管理器,避免程序的非法拜访;
早期的Java关于长途代码是全盘接纳的情绪,Java将不可信代码在一个沙箱环境中履行。但在遭受屡次高调进犯之后,Java浏览器插件不再信任长途代码,除非代码有数字签名而且用户同意履行这个代码;
多线程:Java是第一个支撑并发程序设计的干流言语(C++言语在11版别之前没有内置的多线程机制,因此必须调用操作体系的多线程功能来进行多线程程序设计,11版别开端C++才引入了多线程库);
支撑便利的网络编程:Java言语诞生本身便是为简化网络编程而设计的,Java供给了一种在网页中运转的Java程序applet。要使用applet只需要一个启用Java的Web浏览器,而不需要安装任何软件,任何时候只需拜访包含applet的网页,都会得到程序的最新版别;
在创造applet的时代只有JavaScript而没有HTML,但因各种原因,现如今applet根本已被弃用;
编译与解说并存:Java编译程序生成字节码而不是通用的机器码,再依据解说器对生成的字节码文件解说为适用于不同操作体系的机器码。一起,Java还供给了即时编译器(JIT)能够监控高频代码,并优化这些代码已提高速度,比方消除函数调用(内联);
有关内联相关内容会在后期办法&流程结构相关文章中进行阐明;

Java内存空间

办法区(MethodArea):存储.class相关信息,包含办法的信息(办法区中只是存储办法的定义信息,办法的运转还是在栈中)。办法区中还有一块专门的静态区用于寄存静态内容;
栈(Stack):办法实践运转的当地。在办法运转时(办法进栈),会在栈内存中拓荒出一块专属的内存空间。这块内存空间中寄存的都是办法中的局部变量(全局变量不属于办法,而是属于类对象)。而当办法运转结束后(办法出栈),这块栈空间中所有的资源都会被回收;java
堆(Heap):用于存储对象的一块内存空间(浅显来讲,但凡使用new出来的东西,都在堆当中),堆中还有一块专门的字符串常量池用于寄存双引号包裹起来(new出来的字符串不在常量池中)的字符串对象;
本当地法栈(NativeMethodStack):与操作体系相关,用于处理本当地法调用相关的操作;
寄存器(pcRegister):与CPU相关,用于指向实践履行的办法或办法中的办法体;

赞(0)
未经允许不得转载:志达IT网站 » java运行环境(Java语言的特性)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

志达IT网站 每天分享编程和互联网的IT技术博客

登录/注册联系我们