「java安全管理器」开源软件安全管理

博主:adminadmin 2022-11-25 14:04:06 81

今天给各位分享java安全管理器的知识,其中也会对开源软件安全管理进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java是干什么用的 说的明白点啊 谢谢啦~

Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?

Java语言其实最早是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。

在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEB中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。

Java的开发环境有不同的版本,如sun公司的Java Development Kit, 简称JDK。后来微软公司推出了支持Java规范的Microsoft Visual J++ Java开发环境,简称 VJ++。

[编辑本段]Java名称的由来

说起Java这个名称是怎么来的,在世界上还流传着不同版本的传说。

1.咖啡说

1995年,SUN公司和好莱坞准备开展一个技术交流会,皆以宣传公司的产品。James Gosling带着他的系统来到了技术交流会。但他不能用OAK这个名字了。OAK已经被一家半导体公司注册了,并且注册了好多领域,只能换名。James Gosling四处观望寻找灵感,他看到了一个泡咖啡的杯子,杯子上印着Java,James Gosling就把这种语言改名为Java。

2.度假说

1994年6、7月间,在经历了一场历时三天的头脑风暴的讨论后,Green团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。此时Green小组组员正在在印度尼西亚爪哇岛(Java)度假时,于是他们把Oak改名为Java。

3.简写说

Java命名来源于开发人员名字的组合:James Gosling、Arthur Van Hoff和Andy Bechtolsheim首字母的缩写。

4.头脑风暴说

关于Java命名的由来,James Gosling是曾经这样回答过Jonathan Schwartz,原文如下:

From: James Gosling

Date: August 24, 2007 8:16:58 PM PDT

To: Jonathan Schwartz

Subject: How was Java named?

The story goes like this:

We needed a name. We had been using "oak" (which was selected essentially randomly by me), and while the team had grown attached to it, the trademark lawyers ruled it out. We had lots of email debates about names, but nothing got resolved. We ended up in the awkward position where the #1 thing stopping us from shipping was the name.

Our marketing lead knew someone who was a "naming consultant" (I don't remember his name, but he was great). We could neither afford the price nor the time of a conventional product naming process. He agreed to do something rather odd, but effective and quick: he acted as a facilitator at a meeting where about a dozen of us locked ourselves in a room for an afternoon. He started asking us questions like "How does this thing make you feel?" (Excited!) "What else makes you feel that way?" (Java!) We ended up with a board covered with essentially random words. Then he put us through a sorting process where we ended up with a ranking of the names. We ended up with a dozen name candidates and sent them off to the lawyers: they worked down the list until they hit one that cleared their search. "Java" was the fourth name on the list. The first name on the list was "Silk", which I hated but everyone else liked. My favorite was "Lyric", the third one on the list, but it didn't pass the lawyers test. I don't remember what the other candidate names where.

So, who named Java? Marketing organized the meeting, the consultant ran it, and a whole pile of us did a lot of yelling out of random words. I'm honestly not real sure who said "Java" first, but I'm pretty sure it was Mark Opperman.

There certainly wasn't any brilliant marketing mind who went through a coherent thought process.

中文翻译如下:

我们需要一个名字。我们已经使用了oak(那是我随机挑选的),然而当开发团队接触它的时候,这个商标已经被律师排除了。我们收到许多关于命名争论的电子邮件,但是问题没有解决。我们需要结束这种棘手的处境,阻挠我们前进的首要问题就是这命名。

我们市场部领导了解到某人是“命名顾问”(我不记得他的名字了,但是他是很棒)。我们既不可能提供金钱也不可能提供时间用于常规产品的命名过程。他同意做个临时的事,但是要高效和快捷:一天下午,我们大概十二个人将自己锁在一个房间内,他在会上充当一个主持人。他让我们写一些名称来做一个挑选。我们最终写了十二个候选名称,并且将其送达给律师团审阅。律师团看了列表,选定了能排出其它名称的候选项。“Java”是列表里的第四个名称。列表里的第一个名称是“Silk”,那是我讨厌但是其他人喜欢的名称。我最喜欢的是列表里的第三个名称“Lyric”,但是它没有通过律师团的审核。我不记得其它候选名称了。

为什么命名Java呢?市场部组织了一个会议,顾问提名,我们全体人员喊出随机的词语。说实话,我真的不确定谁最先说“Java”,但是我有很有把握说这人是Mark Opperman。

确实不存在任何杰出的市场理念能够通过一致的认可。

[编辑本段]Java的特点

1.平台无关性

平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。

2.安全性

Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。

3.面向对象

Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。

4.分布式

Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。

5.健壮性

Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。

[编辑本段]Java与C/C++语言

Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C++安全性不好,但C和C++被大家接受,所以Java设计成C++形式,让大家很容易学习。Java去掉了C++语言中的指针运算、结构、typedefs、#define、需要释放内存等功能,减少了平常出错的50%,让Java的语言功能很精炼。而且,因为Java很小,所以整个解释器只需215K的RAM,并增加了一些很有用的功能,如自动收集碎片。Java实现了C++的基本面象对象技术并有一些增强,(为了语言简单,删除了一些功能)。Java处理数据方式和用对象接口处理对象数据方式一样。

Java与C和C++直接相关.Java继承了C的语法,Java 的对象模型是从C++改编而来的.现代程序设计始于C,而后过渡到C++,现在则是JAVA.通过大量的继承,JAVA提供了一个强大的,可以更好地利用已有成果的,逻辑一致的程序设计环境,并且增加了在线环境需求的新功能.或许最重要的一点在于,由于它们的相似性,C,C++和JAVA为专业程序员定义了一个统一的概念架构.程序员从其中的一种语言转到另一种语言时,不会遇到太大的困难.

[编辑本段]Java与Internet

我们知道,早先的www仅可以传送文本和图片,Java的出现实现了互动的页面,是一次伟大的革命。Java并不是为Internet、www而设计的,它也可以用来编写独立的应用程序。Java是一种面向对象语言,Java语言类似于C++语言,所以已熟练掌握C++语言的编程人员,再学习Java语言就容易得多!Java程序需要编译,它被放置在Internet服务器上,当用户访问服务器时,Java程序被下载到本地的用户机上,由浏览器解释运行。实际上有两种Java程序:一种Java应用程序是一个完整的程序,如Web浏览器。另一种Java小应用程序是运行于Web浏览器中的一个程序。Java程序和它的浏览器HotJava,提供了可让你的浏览器运行程序的方法。你能从你的浏览器里直接播放声音,你还能播放页面里的动画,Java还能告诉你的浏览器怎样处理新的类型文件。当我们能在2400 baud线上传输视频图象时,HotJava将能显示这些视频。

[编辑本段]Java与电子商务

电子商务是当今的热门话题,然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能与运行于不同平台的机器的全世界客户开展业务。Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。

什么是java多平台功能的关键元素peer方法

Java盛行的原因很多。首先,Java是一门多平台语言。Java多平台功能的关键元素是peer方法。peer方法提供了一个应用程序接口(Application Program Interface,API)。

该接口的目标就是提供一个从高级Java应用程序接口到初级操作系统子程序的映射。peer方法提供了一种实现可移植操作系统接口的方法。

操作系统软件接口库提供了一个ANSI C、C++或FORTRAN都没有的编程环境。这种环境为程序提供外观和运行方式。例如,C++程序员在Windows下编程,编程环境就像是一个Windows编程环境。也就是说,可能会调用Microsoft基础类。如果在UNIX下编程,编程环境就像一个UNIX环境,即要调用X-Window库子程序。

Java的独特之处是它能够提供一个可移植的操作系统软件接口。例如,不管使用哪种操作系统,用Java编写一个显示对话框的程序都是相同的。但是,Java的可移植功能也会受到库的跨平台支持的限制。在这种情况下,使用非可移植库的Java程序将不再是可移植的了。例如,有人在Java内创建了到C库子程序的链接。由于要使Java成为可移植的,其他平台上必须提供这些子程序。

把Java臆想成一门“编译一次,走遍天下”式的语言是错误的。Java在每个平台上都需要测试,有时还需要调试。因为在一个平台上运行良好的程序在另一个平台上却不能运行,这种情况很常见。

此外,Java以外的语言也可以利用Java技术。例如,要实现一个非Java编译器来创建可在Java虚拟机(JVM)上运行的Java字节码是有可能的。

1.3 Java模型与HTML模型的比较

我们已经知道Java是为嵌入式系统而设计的一门语言。但是,Java过去并没有广泛用于嵌入式系统。相反,人们认为可以用Java来补充甚至替代HTML模型。本节将讲述HTML模型以及Java怎样替代HTML模型。

我们可以在Internet上找到很多文件。数据结构保存在文件中并需要解码。可被生成的不同数据文件的数量是不受限制的。尽管文件格式的数量是可计算的,但通常谁都没有计算,并且该数字将以未知的速度增长。用于计算不同文件格式数量的工具很少,而用来解码这些文件格式的工具就更少了。

图1.2讲述了数据分布的Web模型。Web服务器通过超文本文件传输协议(Hyper Text Transfer Protocol,HTTP)把Web页面传给客户端。

浏览器使用包含特定格式代码的插件程序(plug-ins)来进行解码。不同的文件格式要求用不同的插件程序或辅助程序来显示。所以,插件程序扩展了浏览器的性能。

使用Java技术的浏览器通过动态下载的算法能够进行解码。这一过程要求一种能够即时运行程序的方法。为了明确安全性,Java给即时下载的程序设置了功能限制。安全管理器(security manager)对即时下载的Java程序的功能进行了准确控制。

用Java模型代替HTML模型的基本前提是,程序可以在不同的平台上按要求运行。但是,由于Java缺乏统一的支持,所以Java模型没能代替HTML模型。当前的不利因素包括人们对Java技术及知识产权的争论。

1.4 小结

与C或C++不同,当用Java编程的时候,编程环境感觉像Java。另外,C++没有Java所具备的可移植应用编程接口(API)。如果在Windows中用C++编程,编程环境就像Windows,因此必须学习Windows API。同样,如果在Macintosh下用C++编程,编程环境就会有一种类似Maxintosh接口的外观和运行方式。

基于上述的讨论,有人认为客户端的Java是一成不变的,HTML模型的变革也不可能发生。然而,仅在2001年3月到8月短短5个月的时间内,600多万部用Java开发的手机在日本被抢购一空。无线供应商(NTT DoCoMo、J-Phone和KDDI)已提供了交互式服务。有人预计,在2001年到2005年期间,有7亿多台Java虚拟机将要被配置到这些新设备上。或许,这些具有JVM特性的新平台会使客户端Java能够长久地延续下去。

Java的安全机制有哪些?

》类装载器结构 (class loader)

》class文件检查器 (the class file verifier)

》内置于Java虚拟机(及语言)的安全特性

》安全管理器及Java API (security manager)

在Java沙箱中,类装载器体系结构是第一道防线。它在三个方面对Java的沙箱起作用:

1它防止恶意代码区干涉善意的代码

2它守护了被信任的代码的边界

3它将代码归于某类(称为保护域),该类确定了代码可以进行哪种操作

Class文件检查器:

Class文件检查器保证装载的class文件内容有正确的内部结构,并且这些class文件互相间协调一致。Class文件检查器实现的安全目标之一就是程序的健壮性。如果某个有漏洞的编译器,或某个聪明的黑客,产生了一个class文件,而这个class文件中包含了一个方法,则合格方法的字节码中含有一条跳转到方法之外的指令,那么,一旦这个方法被调用,它将导致虚拟机的崩溃,所以,处于对健壮性的考虑,由虚拟机检验它装载的字节码的完整性非常重要。

Class文件检查器要进行四趟独立的扫描来完成它的操作。

第一趟:Class文件的结构检查

在这一趟扫描中,对每一段将被当做类型导入的字节序列,Class文件检查器都会确认它是否符合JavaClass文件的节本结构。在这一趟检查中检查器会进行很多检查例如:每个Class文件都必须以四个同样的字节开始:0xCAFEBABE。因为这个魔数Class文件分析器会很容易判断出某个文件具有明显问题而加以拒绝。检查器还必须确认在Class文件中声明的版本号和次版本号,这个版本号必须在这个虚拟机实现可以支持的范围之内。而且第一趟扫描还必须确认这个Class文件有没有被删减。总之第一趟扫描的目的就是保证这个字节序列正确的定义了一个新类型。

第二趟:类型数据的语义检查

第二趟扫描,检查器要查看每个组成部分,确认它们是否是其所属类型的实例,他们的结构是否正确。另外还要检查这个类本身是否符合特定的条件,它们是由Java编程语言规定的。例如,检查器强制规定除Object类以外的类必须有一个超类,或者检查final类有没有被子化等。

第三趟:字节码验证

这一趟是要确保采用任何路径在字节码流中都得到一个确定的操作码,确保操作数栈总是包含正确的数值以及正确的类型。

第四趟:符号引用的验证

在动态链接的过程中,如果包含在一个Class文件中的符号引用被解析时,Class文件检查器要进行第四趟检查。第四趟扫描仅仅是动态链接过程的一部分。当一个Class文件被装载时,它包含了对其他类的符号引用以及它们的字段和方法。一个符号引用是一个字符串,它给出了名字,并且可能还包含了其他关于这个被引用项的信息------这些信息必须足以唯一的识别一个类、方法、字段。这样对于其他类的符号引用必须给出这个类的全名;对于其他类的字段的符号引用必须给出类名、字段名以及字段描述符;对于其他类中的方法的引用必须给出类名、方法名以及方法的描述符。

所谓的动态链接是一个将符号引用解析为直接引用的过程。

此外,由于Java程序是动态链接的,所以Class文件检查器在进行第四次扫描中,必须检查相互引用类之间的兼容性。

除此之外,Java虚拟机还有一些内置的安全特性:

》类型安全的引用转换

》结构化的内存访问

》自动垃圾收集(不必显式地释放被分配的内存)

》空引用检查

通过保证一个Java程序只能使用类型安全的、结构化的方法去访问内存,Java虚拟机使得Java程序更为健壮。

java有哪些功能?

Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。

Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.7。

Java分为三个体系J2SE(Java2 Standard Edition),J2EE(Java 2 Platform,Enterprise Edition),J2ME(Java 2 Micro Edition)。

Java的简介

Java是一种简单的,面象对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。

当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?

Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。

在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。

Java的开发环境有不同的版本,如sun公司的Java Development Kit, 简称JDK。后来微软公司推出了支持Java规范的Microsoft Visual J++ Java开发环境,简称 VJ++。

Java的特点

1.平台无关性

平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。

2.安全性

Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。

3.面向对象

Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。

4.分布式

Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。

5.健壮性

Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。

Java与C/C++语言

Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C++安全性不好,但C和C++被大家接受,所以Java设计成C++形式,让大家很容易学习。

Java去掉了C++语言中的指针运算、结构、typedefs、#define、需要释放内存等功能,减少了平常出错的50%,让Java的语言功能很精炼。而且,因为Java很小,所以整个解释器只需215K的RAM,并增加了一些很有用的功能,如自动收集碎片。

Java实现了C++的基本面象对象技术并有一些增强,(为了语言简单,删除了一些功能)。Java处理数据方式和用对象接口处理对象数据方式一样。

本回答由网友推荐

关于java安全管理器和开源软件安全管理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。