JAVA的技术特点是什么

JAVA的技术特点是什么,第1张

JAVA的技术特点是什么

Java由美国SUN公司(被oracle公司收购)发明于1995年,是目前业界应用最广泛、使用人数最多的语言,连续多年排名世界第一,可以称之为“计算机语言界的英语”。

那么Java这么高的评价它的特点有哪些,下面我来为题主解答:

一、跨平台/可移植性

这是Java的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。

Java首先利用文本编辑器编写 Java源程序,源文件的后缀名为java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀名为class; 最后利用虚拟机(解释器,java)解释执行。如下图所示:

二、安全性

Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。比如Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的。

三、面向对象

面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!Java则是完全的面向对象语言。

四、简单性

Java就是C++语法的简化版,我们也可以将Java称之为“C++-”。跟我念“C加加减”,指的就是将C++的一些内容去掉;比如:头文件,指针运算,结构,联合, *** 作符重载,虚基类等等。同时,由于语法基于C语言,因此学习起来完全不费力。

五、高性能

Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接近C++的效率。

因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。

六、分布式

Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。

七、多线程

多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

八、健壮性

Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。

以上几种特性你了解到啦吗?    记得给个赞!

当然这些还没完,Java除啦这些特性还有一些其他的特点我也来给你讲一讲!!

1java的风格类似C++,从某种意义上讲,java是C++的一个变种。但是java摒弃了C、C++中的容易引发错误和难以理解的指针,结构,以及内存管理等;

2java是一种强类型的语言,比C/C++检查还要严格,java区分大小写字母;

3java禁止非法访问内存,因为java没有指针,内存的申请和释放;

4对于不同的 *** 作系统,会有不同的java虚拟机,这也就决定了java的可移植性;

5java提供了自动垃圾回收机制gc,有效避免了C、C++的内存泄漏问题;

记得给个赞!

1JAVA作为一种编程语言:源代码可移植性

作为一种编程语言,JAVA提供了一种最简单同时也是人们最熟悉的可移植性–源代码移植。这意味着任意一个JAVA程序,不论它运行在何种CPU、 *** 作系统或JAVA编译器上,都将产生同样的结果。这并不是一个新的概念。人们使用C、C++也可以产生同样的效果。但是使用C或C++编程人们可以有太多的选择,在许多细节上它都没有严格定义,如:未初始化变量的值、对已释放的内存的存取、浮点运算的尾数值等等。所以除非你一开始就严格按照系统无关的概念来进行设计,否则这种可移植性只能是一种理论上的设想而不能形成实践。总之,尽管C和C++有严密的语法定义,它们的语意(symantics)定义还不是标准的。这种语意上的不统一使得同一段程序在不同的系统环境下会产生不同的结果。有时即使系统情况完全相同而仅仅由于编译器的设置不同也会产生令人意想不到的结果。而JAVA就不同了。它定义了严密的语意结构,而使编译器不承担这方面的工作。另外,JAVA对程序的行为的定义也比C和C++严格,如:它提供了内存自动回收功能(GarbageCollection),使程序不能访问越界内存;它对未初始化的变量提供确定值等等。它的这些特性能够减小在不同平台上运行的JAVA程序之间的差异,也使得JAVA具有即使没有JAVA虚拟机的存在的情况下比C和C++更好的平台无关性。然而,这些特点也有它不利的一面。JAVA设想运行于具有32位字节长度且每字节为8位的计算机上,这就使得那些8位字长的计算机和一些巨型机不能有效的运行JAVA程序。在这样的平台上就只能运行那些可移植的C和C++程序了。

2JAVA作为一个虚拟机:CPU可移植性

大多数编译器产生的目标代码只能运行在一种CPU上(如Intel的x86系列),即使那些能支持多种CPU的编译器也不能同时产生适合多种CPU的目标代码。如果你需要在三种CPU(如x86、SPARC和MIPS)上运行同一程序,就必须编译三次。

但JAVA编译器就不同了。JAVA编译器产生的目标代码(J-Code)是针对一种并不存在的CPU–JAVA虚拟机(JAVAVirtualMachine),而不是某一实际的CPU。JAVA虚拟机能掩盖不同CPU之间的差别,使J-Code能运行于任何具有JAVA虚拟机的机器上。

虚拟机的概念并不是JAVA所特有的:加州大学几年前就提出了PASCAL虚拟机的概念;广泛用于Unix服务器的Perl脚本也是产生与机器无关的中间代码用于执行。但针对Internet应用而设计的JAVA虚拟机的特别之处在于它能产生安全的不受病毒威胁的目标代码。正是由于Internet对安全特性的特别要求才使得JVM能够迅速被人们接受。当今主流的 *** 作系统如OS/2、MacOS、Windows95/NT都已经或很快提供对J-Code的支持。

作为一种虚拟的CPU,JAVA虚拟机对于源代码(SourceCode)来说是独立的。我们不仅可以用JAVA语言来生成J-Code,也可以用Ada95来生成。事实上,已经有了针对若干种源代码的J-Code编译器,包括Basic、Lisp和Forth。源代码一经转换成J-Code以后,JAVA虚拟机就能够执行而不区分它是由哪种源代码生成的。这样做的结果就是CPU可移植性。

将源程序编译为J-Code的好处在于可运行于各种机器上,而缺点是它不如本机代码运行的速度快。

3JAVA作为一种虚拟的 *** 作系统(OS)和图形用户界面(GUI): *** 作系统可移植性

即使经过重新编译,大多数的用C和C++编写的Windows程序也不能在Unix或Macintosh系统上运行。这是为什么呢因为程序员在编写Windows程序时使用了大量的WindowsAPI和中断调用,而Windows程序对系统功能的调用与Unix和Macintosh程序有很大的差别,所以除非将全套WindowsAPI移植到其它 *** 作系统上,否则重编译的程序仍不能运行。

JAVA采用了提供一套与平台无关的库函数(包括AWT、UTIL、LANG等等)的方法来解决这个问题。就象JVM提供了一个虚拟的CPU一样,JAVA库函数提供了一个虚拟的GUI环境。JAVA程序仅对JAVA库函数提出调用,而库函数对 *** 作系统功能的调用由各不同的虚拟机来完成。JAVA也在它的OS/GUI库中使用了一种“罕见名称符”(least-commom-denominator)来提供对某种特定 *** 作系统的功能调用,即此功能只在特定环境下生效而在其它 *** 作系统下则被忽略。这样做的好处在于可以针对某 *** 作系统生成拥有人们熟悉的界面的应用程序而同时此程序又能在其它系统下运行。缺点则是系统中的某些功能调用有很强的依赖性因而在JAVA的虚拟OS/API中难以实现。遇到这种情况,程序员就只能写不可移植的程序了。

总之,JAVA在可移植性方面的特点使它在Internet上具有广泛的应用前景。同时它本身具有的防病毒的能力也使它在需要高可靠性的应用中占有一席之地。

为了解决Unix自定义结构在GCC优化编译中对齐问题,一般解决办法是用如下宏封装

自定义结构

#pragma pack(1)

struct my_arphdr

{

};

#pragma pack()

如果是SPARC/Solaris,还可以这样

struct my_arphdr

{

} __attribute__ ((packed));

两种办法其实都可以用在Unix系统/GCC编译器中。

D: mbuf@smth

关于结构中字节对齐问题,相应编译器选项为

GCC/G++ : -fpack-struct

Sun Workshop cc/CC: -misalign

最好不这样做,会大大降低程序效率,特别在某些架构中。应该尝试用位 *** 作来处理。

D: Unknown@smth

GCC可以这么解决

#ifdef __GCC__

#define PACKED __attribute__((__packed__))

#else

#define PACKED

#endif

struct msg

{

u_int16_t PACKED first;

};

还是 VC 简单,#include <pshpack1h> 就搞定了

A: gfh_nuaa

DEC : #pragma pack(1)

SUN : #pragma pack(1)

AIX : 编译时 -q align=packed

HP-UX : #pragma pack 1

D: Joe Durusau

在 Visual C++ 中,使用 "-ZP1" 就可以让编译器对自定义结构进行单字节对齐,实

际就是取消了对齐优化。

A: law@apuedhsorg 2001-12-20 13:09

1) 结构内部成员的pack

struct foo

{

char a;

int b __attribute__ ((packed));

};

2) 整个结构的pack

struct foo

{

char a;

int b;

}__attribute__ ((packed));

3) 文件范围的pack

#pragma pack(1)

struct foo

{

char a;

int b;

};

4) 编译选项的pack

-fpack-struct

但这是最危险的做法,因为这样做可能会使库函数和你的程序对结构内成员的偏移理

解不一致。

注意:不是JAVA程序编程,而是用编译器,开发环境来编程

推荐使用JBuilder和Eclipse(比较流行,也很好用)

1。JBuilder2005和2006下载地址:>

Java语言引入了Java虚拟机 具有跨平台运行的功能 能够很好地适应各种Web应用 同时 为了提高Java语言的性能和健壮性 还引入了如垃圾回收机制等新功能 通过这些改进让Java具有其独特的工作原理

.Java虚拟机

Java虚拟机(Java Virtual Machine JVM)是软件模拟的计算机 它可以在任何处理器上(无论是在计算机中还是在其他电子设备中)安全兼容地执行保存在 class文件中的字节码 Java虚拟机的 机器码 保存在 class文件中 有时也可以称之为字节码文件

Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行 Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行 因此在运行时 Java源程序需要通过编译器编译成为 class文件

Java虚拟机的建立需要针对不同的软硬件平台来实现 既要考虑处理器的型号 也要考虑 *** 作系统的种类 由此在SPARC结构 X 结构 MIPS和PPC等嵌入式处理芯片上 在UNIX Linux Windows和部分实时 *** 作系统上都可实现Java虚拟机

.无用内存自动回收机制

在程序的执行过程中 部分内存在使用过后就处于废弃状态 如果不及时进行回收 很有可能会导致内存泄漏 进而引发系统崩溃 在C++语言中是由程序员进行内存回收的 程序员需要在编写程序时把不再使用的对象内存释放掉 这种人为管理内存释放的方法往往由于程序员的疏忽而致使内存无法回收 同时也增加了程序员的工作量 而在Java运行环境中 始终存在着一个系统级的线程 专门跟踪内存的使用情况 定期检测出不再使用的内存 并自动进行回收 避免了内存的泄露 也减轻了程序员的工作量

.代码安全性检查机制

安全和方便总是相对矛盾的 Java编程语言的出现使得客户端计算机可以方便地从网络上上传或下载Java程序到本地计算机上运行 但是如何保证该Java程序不携带病毒或者没有其他危险目的呢?为了确保Java程序执行的安全性 Java语言通过Applet程序来控制非法程序的安全性 也就是有了它才确保Java语言的生存

Java字节码的执行需要经过以下 个步骤

( )由类装载器(class loader)负责把类文件( class文件)加载到Java虚拟机中 在此过程需要检验该类文件是否符合类文件规范

( )字节码校验器(bytecode verifier)检查该类文件的代码中是否存在着某些非法 *** 作 例如Applet程序中写本地计算机文件系统的 *** 作

( )如果字节码校验器检验通过 由Java解释器负责把该类文件解释成为机器码进行执行

注意

Java虚拟机采用 沙箱 运行模式 即把Java程序的代码和数据都限制在一定内存空间里执行 不允许程序访问该内存空间以外的内存 如果是Applet程序 还不允许访问客户端机器的文件系统

Java的运行环境

无论哪种语言都需要有它特定的运行环境 也就是平台 Java语言同样不例外 但是如何理解Java程序与硬件环境无关呢?

几乎所有的语言都需要通过编译或者解释才可以被计算机执行 但是Java有一点不同 它同时需要这两个过程 其实 也正是因为这个原因才使Java这种语言具有了平台无关性 当完成一个Java源程序后 首先 通过Java翻译程序将它编译成一种叫做字节码的中间代码 然后再由Java平台的解释器将它转换成为机器语言来执行 这一平台的核心就是JVM

Java的编译过程与其他的语言不同 像C++这样的语言 在编译时它是与计算机的硬件平台信息密不可分的 编译程序通过查表将所有指令的 *** 作数和 *** 作码等转换成内存的偏移量 即程序运行时的内存分配方式 目的是保证程序正常运行 而Java却是将指令转换成为一种 class的文件 这种文件不包含硬件的信息 需要执行时只要经过安装有JVM的机器进行解释 创建内存分配后再通过查表来确定一条指令所在的地址 这样就有效地保证了Java的可移植性和安全性

Java平台具有这样的特性和它的结构有关 通常一个程序运行的平台是一个硬件或者软件运行的环境 目前比较流行的是Windows XP Linux Solaris和MacOS Java的平台不太一样 它由两个部分组成 即JVM和应用程序设计接口

.JVM

JVM是Java平台的核心 为了让编译产生的字节码能更好地解释与执行 因此把JVM分成了 个部分 JVM解释器 指令系统 寄存器 栈 存储区和碎片回收区

◆JVM解释器 即这个虚拟机处理字段码的CPU

◆JVM指令系统 该系统与计算机很相似 一条指令由 *** 作码和 *** 作数两部分组成 *** 作码为 位二进制数 主要是为了说明一条指令的功能 *** 作数可以根据需要而定 JVM有多达 种不同的 *** 作指令

◆寄存器 JVM有自己的虚拟寄存器 这样就可以快速地与JVM的解释器进行数据交换 为了功能的需要 JVM设置了 个常用的 位寄存器 pc(程序计数器) optop( *** 作数栈顶指针) frame(当前执行环境指针)和vars(指向当前执行环境中第一个局部变量的指针)

◆JVM栈 指令执行时数据和信息存储的场所和控制中心 它提供给JVM解释器运算所需要的信息

◆存储区 JVM存储区用于存储编译过后的字节码等信息

◆碎片回收区 JVM碎片回收是指将使用过的Java类的具体实例从内存进行回收 这就使得开发人员免去了自己编程控制内存的麻烦和危险 随着JVM的不断升级 其碎片回收的技术和算法也更加合理 JVM 版后产生了一种叫分代收集技术 简单来说就是利用对象在程序中生存的时间划分成代 以此为标准进行碎片回收

.Java应用程序设计接口

Java Application Programming Interface简称Java API 其中文名为Java应用程序设计接口 它是一个软件集合 其中有许多开发时所需要的控件 可以用它来辅助开发

lishixinzhi/Article/program/Java/hx/201311/26733

1、编写如下:

//100分制

#include <stdioh>

void main()

{

int score,t;

printf("输入成绩:");

scanf("%d",&score);

t=score/10;//t的取值0,1,2,3,4,5,6,7,8,9,10

switch(t)

{

case 0:

case 1:

case 2:

case 3:

case 4:

case 5:printf("不及格\n");break;

case 6:printf("及格\n");break;

case 7:

case 8:printf("良好\n");break;

case 9:

case 10:printf("优秀\n");break;

}

}

2、C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的DMRitchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

3、它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

4、在开发中,他们还考虑把UNIX移植到其他类型的计算机上使用。C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARC和ARM等机器上运行。而C语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。

不同平台的汇编语言差异很大。比如你是不是用Sun sparc的汇编或者MAC的汇编。

现在假定你用X86的汇编,并且假定是32位的。以下是一个示例性代码,我给你加了点注释。这个代码来自于系统的memcpy函数,但是常数定义是需要你自己定的,比如长度length需要先声明(DWORD length之类的)。另外,同样是X86的32位汇编,在不同的汇编器下面的源宿顺序是不同的(例子里面是Linux的顺序(源在前,宿 后),微软的好像是反的),常量表示什么的也不同,需要根据你自己的汇编器修改一下。另外,这个虽然是系统的memcpy实现,但是不是最安全的版本,如果你的STR1和STR2空间有重叠的时候会出现错误,如果两者空间完全不重叠,是没有问题的。

mov length,%ecx ; 将长度保存在ecx寄存器

mov %edi,%eax ; 保存edi到eax (自己的程序不一定必要的,函数是需要的)

mov STR2,%edi ; 将STR2放在edi (目标寄存器)

mov %esi,%edx ; 保存esi到edx

mov STR1,%esi ; 将STR1放到esi

cld ; 清除方向标致,从低地址拷贝到高地址

shr %ecx ; 右移一位长度,相当于除2

jae no_remain_1 ; 检查是否有余数

movsb %ds:(%esi),%es:(%edi) ; 如果有余数,拷贝1个字节的余数部分

no_remain_1:

shr %ecx ; 再右移一位长度,相当于再除2

jae no_remain_2 ; 检查是否有余数

movsw %ds:(%esi),%es:(%edi) ; 如果有余数,再拷贝2个字节的余数部分

no_remain_2:

repz movsl %ds:(%esi),%es:(%edi) ; 现在一定是4的倍数的数据需要拷贝,每次4字节拷贝

mov %eax,%edi ; 恢复eax到edi

mov %edx,%esi ; 恢复edx到esi

Windows 开发商 Microsoft

Windows98/me

Windows2000/XP

Windows Server2003

Windows Vista

Windows98/me是基于MS-DOS的混合的16/32位 *** 作系统正慢慢的退出PC舞台了,2000/XP以及Server2003都是基于WindowsNT的32位 *** 作系统,XP/Server2003已经有64位版本了。Vista是微软最新开发的版本预计在2006年推出。主要支持Intel,AMD,后来增加了对PowerPC,MIPS的支持。微软的 *** 作系统基本上统治了个人PC市场,大概占了90%的市场份额。

UNIX-like

AIX 开发商 IBM

AIX是Advanced Interactive eXecutive的简称,它是IBM 公司的UNIX *** 作系统,整个系统的设计从网络、主机硬件系统,到 *** 作系统完全遵守开放系统的原则

RS/6000 采用IBM 的UNIX *** 作系统-AIX作为其 *** 作系统这是一个目前 *** 作系统界最成功,应用领域最广,最开放的第二代的UNIX系统。它特别适合于做关键数据处理(CRITICAL)

支持PowerPC POWER处理器

目前的版本是AIX 5L 53,

支持64棵处理器,2TB内存,16TB JFS2文件系统,16TB JFS2文件

HP-UX 开发商 HP

惠普公司在1996年随着推出64位PA-8000处理器,开始了64位技术的实施计划,它形成了工业界运算最快的商业和工程技术应用服务器的基础。为了与先进的硬件配套,惠普公司已经逐步地把64位功能放入惠普公司在工业界领先的UNIX *** 作系统HP-UX。HP-UX 1010和1020分别具有非常大的文件系统和文件。

HP-UX 1100也有32位版本,使得基于32位PA-7X00系统也可以得到HP-UX 1100的新功能和特色;基于PA-8X00的K系列和T系列系统的客户要在HP-UX的32位或64位版本之间做出选择。惠普公司单机系统性能在工业界领先(39,469TPMS)的V系列系统,只可以运行64位的HP-UX 1100。

主要运行于HP公司的PA-系列处理器以及Intel的安腾系列处理器上

最新的版本HP-UX 11i v2

可以管理128棵处理器,1TB内存,32TB文件系统,最大2TB的文件。

IRIX 开发商 SGI

SGI公司最早是专门生产图形显示终端的, OpenGL标准便是由SGI提出来的公司开发的这个 *** 作系统是主要运行在基于MIPS处理器的图形工作站上,1992年SGI收购了MIPS, 1998年MIPS又脱离了SGI成立MIPS技术公司2003年SGI推出了基于Linux的Altix系列 *** 作系统

Mac OS X 开发商 Apple

Apple公司的Macintosh机上的 *** 作系统, 苹果机主要用于图形领域,在图形处理领域占有很大市场份额。Mac OS是首个在商用领域成功的图形用户界 *** 作系统。Mac OS9及以前的版本都在搭在苹果机上销售的。它不支持其它设备,每当有新的设备时都要通过添加扩展来支持设备。新的Mac OS X结合BSDUnix、NeXTStep和Mac OS 9的元素。采用Unix风格的内存管理和抢占式多任务处理,它的最底层建基于BSDUnix的内核,实行的是部分开放源代码。

现行的最新的系统版本是Mac OS X v1042。

只能运行在PowerPC G3以上处理器的苹果机上,苹果公司正在跟Intel合作,表示以后苹果机会采用x86处理器。

Solaris 开发商 SUN

最早也是基于BSD Unix开发的,那时就直接叫Sun OS,从Sun OS5以后就以Solaris的名字面市,从Solaris10开始它也是免费开源的软件了,开始主要是为SPARC和x86写的,后来经过一些改动也可以支持一大批的处理器Solaris10开始支持64位处理器

FreeBSD 开发者 Nate Williams,Rod Grimes,Jordan Hubbard

Bill Jolitz的 386BSD发展形成3个分支FreeBSD,NetBSD,OpenBSD了,这些都是免费的开源 *** 作系统。第一张FreeBSD光盘是在1993年12月发布的。

FreeBSD 是一个在个人电脑上执行的作业系统,主要支持x86处理器,其他跟 Intel 相容的 CPU 如 AMD 跟 Cyrix也被支持。

FreeBSD 能提供你许多昂贵工作站才有的先进功能,这些特色包括:

抢占式多任务处理

完整的 TCP/IP 网路功能 包含 SLIP, PPP, NFS 跟 NIS。

内存保护(Memory protection) 能确保一个使用者不能打扰其他人。而一个应用程式也不能影响其他的程式。

标准的 X 视窗系统 (X Window, X11R6) 提供良好的图形用户接口(GUI)以便在一般的 VGA 显示卡以及萤幕上使用, 并且提供完整的原始程式码。

能直接执行在其他作业系统 (如 SCO, BSDI, NetBSD, Linux 跟 386BSD)上编译的 (Binary) 程式。

数以千计 可以直接执行(ready-to-run) 的应用程式, 可以在 FreeBSD ports 及 packages 中找到。 免去你上网路到处找软体的苦境。

需要时才置换的虚拟记忆体(Demand paged virtual memory 以及合理的虚拟记忆体及档案缓冲区之缓冲功能(merged VM/buffer cache)

NetBSD 开发者 NetBSD小组

NetBSD是一种完全免费的类UNIX *** 作系统,它是一个重于夸平台应用的 BSD分支,它支持50多种硬件平台,具有高度可移植性和硬件平台兼容性它可以运行在从64位alpha服务器到手持设备的多种硬件平台上 NetBSD的清晰设计以及它的众多高级特性使得它不论作为产品还是研究环境都表现得非常出色。而且它对用户在资源上进行全方位的支持。其上的应用程序很多都可以非常容易地获得。

OpenBSD 开发者 由NetBSD的前核心成员Theo de Raddt领导的一个开发小组。

OpenBSD由NetBSD分支出的计划,

它是一个免费、多平台、基于44BSD的类Unix *** 作系统。目标在于强调正确性、安全性、标准化以及可移植性。着重于安全性,致力于成为最安全的 *** 作系统。OpenBSD支持包括SVR4(Solaris),FreeBSD,Linux,BSDI,SunOS和HPUX等大部分二进制的模拟。

Linux

RedHat/Fedora 开发商 RedHatInc

Redhat linux是最早的Linux发行版本之一,也是最早使用软件管理包RPM的Linux版本, Redhat 自90以后,不再发布桌面版的,而是把这个项目与开源社区合作,于是就有了Fedora 这个 Linux 发行版。最新版本是FC40

Slackware 开发商Slackware Linux, Inc

Slackware Linux是由Patrick Volkerding开发的GNU/Linux发行版。与很多其他的发行版不同,它坚持KISS(Keep It Simple Stupid)的原则,就是说没有任何配置系统的图形界面工具。一开始,配置系统会有一些困难,但是更有经验的用户会喜欢这种方式的透明性和灵活性。

Slackware Linux的另一个突出的特性也符合KISS原则:Slackware没有如RPM之类的成熟的软件包管理器。Slackware的软件包都是通常的 tgz(tar/gzip)格式文件再加上安装脚本。Tgz对于有经验的用户来说,比RPM更为强大,并避免了RPM之类管理器的依赖性问题。 Slackware还有一个众所周知的特性就是BSD风格的初始化脚本。Slackware对所有的运行级(runlevel)/任务都用同一个脚本,而不是在不同的运行级中建立一堆脚本的链接。这样让你不必自己写新的脚本就能很容易地调整系统。

Debian 开发商Debian project

Debian 以其忠于Unix和自由软件以及丰富的选择出名,它的最新版本包含有5万个软件包,支持十一种体系结构,从ARM到IBM S390,以及个人电脑上的x86到PowerPC它的软包管理工具APT一样有名最新发布版本是Debian31也叫sarge

Mandriva 开发商 Conectiva

Mandriva Linux的前身是欧洲最大的Linux厂商之一Mandrakesoft,长期以来Mandrake Linux以最为方便、易用、华丽的Linux发行版著称。Mandrake Linux早期方便的字体安装工具和默认的中文支持,为Linux普及做出了很大的贡献。但是2004年前后Mandrakesoft陷入财务危机,濒临破产。公司于2005年2月24日与拉丁美洲最大的Linux厂商Conectiva达成了收购协议,金额为170万欧元,新公司旗下品牌 Mandrake Linux更名为Mandriva Linux。Mandriva以rpm作为软件管理工具,部分兼容Red Hat Linux/Fedora Core的预编译包

SuSE 开发商 Novell

SUSE LINUX是德国的一个发行版,原是以Slackware Linux为基础,并提供完整德文使用界面的产品,2004年Novell收购了SUSE

Gentoo

Gentoo Linux为用户提供了大量的应用程序源代码。Gentoo Linux的每一部分都可以在最终用户的系统上重新编译建造,甚至包括最基本的系统库和编译器自身。通过依赖关系描述和源代码镜像的形式提供软件,Gentoo Linux提供了大量软件供用户选择。 标准的源代码镜像包括30G的数据。选择不仅在软件整体方面,也存在于软件的内部。由于可以在本地编译软件,参数和变量的选择可以由用户自己指定。

事实上,在软件的安装和升级方面,Gentoo拥有自己独特的优势。由于Portage技术的产生,Gentoo Linux可以担当一个理想的安全服务器、开发平台、专业级桌面应用、游戏服务器、嵌入式应用等等各种角色。由于其无限制的可配置性,我们甚至可以称 Gentoo Linux为一个准发行版。

嵌入式式 *** 作系统

uClinux

uClinux是一种优秀的嵌入式Linux版本。uclinux是一个源码开放的 *** 作系统,面向没有MMU(Memory Management Unit)的硬件平台。同标准Linux相比,它集成了标准Linux *** 作系统的稳定性、强大网络功能和出色的文件系,它是完全免费的

uC/OS II 开发商 Micrium

抢占式实时多任务实时 *** 作系统,可以管理63个任务,开源的嵌式 *** 作系统,商业应用需要得到Micrium公司的授权,

VxWorks 开发商 WindRiver

VxWorks *** 作系统是美国风河(WindRiver)公司于1983 年设计开发的一种嵌入式实时 *** 作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时 *** 作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、d道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导d上,甚至连1997年7月在火星表面登陆的火星探测器上也使用到了VxWorks

VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。

PalmOS 开发商 PalmSource,Inc

早期由US Robotics(其后被3Com收购,再独立改名为Palm公司)研制的专门用于其产品"Palm"的 *** 作系统。主要用于PDA产器

WindowsCE 开发商 Microsoft

它是微软针对个人电脑以外的电脑产品所研发的嵌入式 *** 作系统,而CE则为Customer Embedded的缩写。

以上就是关于JAVA的技术特点是什么全部的内容,包括:JAVA的技术特点是什么、简述java程序的可移植性、怎样设置gcc编译出程序的struct member align等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9722644.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存