解析Java体系结构对信息安全的支持-Java基础-Java-编程开发

Java协议解析:探索网络编程的核心 Java协议是指在Java编程语言中用于网络通信的规范和标准。它定义了数据在网络中的传输方式、通信协议、数据格式等规则,使得不同设备和系统之间可以进行可靠的数据交换。在Java中,协议通常由一系列的API(Application Programming Interface,应用程序编程接口)或库来实现,开发者可以利用这些API来构建网络应用程序。Java提供了丰富的网络编程API,如java.net包和java.nio包,用于实现各种协议的通信。 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

Java语言拥有三大特征:平台无关性、网络移动性和安全性,而Java体系结构对这三大特征提供了强大的支持和保证,本文着重介绍Java体系结构对支持信息安全的原理和使用方法。

Java体系结构

Java的体系结构如下图所示,首先Java的源代码Java文件由编译器编译成Java的二进制字节码class文件,然后class文件由Java虚拟机中的类装载器进行加载,同时类装载器还会加载Java的原始 API Class文件,类加载器主要负责加载、连接和初始化这些class文件以后,就交给虚拟机中的执行引擎运行,执行引擎将class文件中的Java指令解释成具体的本地操作系统方法来执行,而安全管理器将在执行过程中根据设置的安全策略控制指令对外部资源的访问。

Java的执行方式不是编译执行而是解释执行,不同平台上面相同的源代码编译成符合Java规范的相同的二进制字节码,然后再交给支持各自平台的虚拟机去解释执行,"先编译,后解释,再执行"三步走的方式使得Java实现了"一次编写,到处运行",如果Java应用使用的是100%标准Java API并且没有直接调用本地方法,那就可以不加修改地运用在多种平台上,这样的平台无关性使得在异构的网络环境或者嵌入式方面的应用更方便和现实。Java的网络移动性带来了一种全新的软件模式,在分布式处理模式的基础之上,可以将软件和数据通过网络传送到客户端去,这样确保了客户端有必备的软件来浏览和操纵通过网络传输的数据,Java体系结构支持把单一的执行文件切割成小的二进制字节码文件Class文件,而这些文件可以按照应用的需要动态连接、动态扩展。Java体系结构对安全性的支持主要是通过Java语言本身安全性、虚拟机的类加载器和安全管理器以及Java提供的安全API几个方面来实现:防止恶意程序的攻击,程序不能破坏用户计算机环境;防止入侵,程序不能获取主机或所在内网的保密信息;鉴别,验证程序提供者和使用者的身份;加密,对传输交换的数据进行加密,或者给持久化的数据进行加密;验证,对操作设置规则并且进行验证。

Java信息安全的必要性

随着互联网应用越来越广泛,并且互联网其本身独特的资源共享性,因此能够按照用户需求及时准确获得信息和处理信息的应用对用户而言就相当重要,这也是Java得以迅速发展和被广泛接受的原因。但同时网络也提供了一条攻击接入计算机的潜在途径,特别是当用户下载网络软件在本地运行,这就要求Java能够对病毒/木马的问题加以防范,对信息以及本地环境进行保护。比如我们浏览一个网页的时候,网页上的Applet可能会自动下载并且运行,而这个Applet完全有可能来自不可靠的地方,又或者我们使用通过JINI服务查找到的网络上不可靠的服务对象来获得服务,如果没有Java体系结构提供的安全机制,这就很有可能引入了一个怀有敌意的程序造成信息丢失、资料泄密、相信伪造数据和修改本地计算机安全设置等等后果,带来未知的严重后果。

Java语言本身安全性

Java语言的设计者们是在C 的基础上设计出来Java的,因此与C 相比它的语法更加简单清晰,结构、单元、运算符重载、虚拟基础类等在Java中都没有采用,并且取消了多重继承而采用实现多个接口的方式。这样能降低开发人员犯错误的几率,帮助他们写出更安全的代码。

Java中去除了C 语言中的令人费解、容易出错的"指针",用列表、堆、哈希表等结构来代替,避免了任何不安全的结构。Java也没有索引核查的数组访问,因为这往往会导致不定的、不可预测的程序操作,它所有的数组访问都必须先检查是否越界。Java要求所有的变量在初始化以前不能使用,对于基本数据类型变量都会自动地赋给某个初始值,避免了未初始化变量获取内存信息。所有这些都使得程序不能访问任意的内存地址,对于内存中的实体信息只能通过有权限的对象进行访问,而不会出现象C 那样把类型指针强制转换成内存的指针,然后通过内存查找的方法找到私有的变量。

Java分配内存对于开发人员来说是透明的,开发人员使用new方法新建对象,这时候虚拟机就会从堆内存中找到合适的内存空间,开发人员不需要也不能够进行干预。而对于内存的回收,Java避免了开发人员明确干预对象的回收,比如C的free或C 的delete命令,避免了开发人员无意间对内存的破坏。Java采用虚拟机的"垃圾回收"机制来实现的内存自动管理,释放不再被使用的内存资源,内存回收器就像一台垃圾收集车,但是和我们在大街上看到的收集车,仅仅收集大家放在垃圾桶里面的垃圾不同的是,它还要到你家里去帮你找出那些东西是不要用的垃圾,然后把这些东西拿走,最后还要整理家里的空间,腾出最大的空间让你放新东西。Java的内存回收器目的就是找到不再引用的对象,释放内存空间,并且需要整理内存的碎片空间,尽量避免出现"内存不足"的情况。

对于在网络中交换的序列化对象很容易在重建对象的时候访问到对象的私有信息,这时候Java提供了两种办法来保护信息,一种就是采用给变量加上transient关键字的方法,这样对象序列化的时候就不会读写该变量,另一种就是在实现Externalizable接口而不是Serizlizable接口,这样对象就只能通过writeExternal和readExternal方法来保存和重建,其他方法无法进行了。

以上这些都是Java语言本身对信息安全提供的基础。

[1] [2] [3] [4]

30、深入解析现代计算机体系结构编程基础 本文深入解析了现代计算机体系结构编程基础,涵盖了计算机的基本组成部分、数据表示与编码、指令执行过程、硬件与软件的关系、编程语言网络通信、数据库管理、编译器与解释器、进程管理、文件系统以及图形化用户界面等内容。通过全面的知识讲解,帮助读者建立起对计算机系统整体架构的理解,为后续学习和实践打下坚实的基础 阅读详情

相关推荐

Java编程实践:从基础到框架案例全解析

本文还有配套的精品资源,点击获取 简介:Java案例开发集锦详细介绍了Java编程语言在各种实际场景中的应用,包括基础语法、异常处理、数据类型、输入/输出流、集合框架、多线程编程网络编程、设计模式、图形用户界面(GUI)开发、数据库操作以及Web开发。该集锦通过案例形式深入浅出地帮助开发者理解和掌握Java编程技能,并提供对Spring框架和MyBatis等流行Java技...

weixin_36212459的博客 866

Java安全体系结构

原文出处:http://bbs.51cto.com/thread-970888-1.html 1 绪论 Java的安全好象是目前的编程语言中最优秀的一种,Java技术之所以适用于网络就是因为它有完备的、设计到其结构中的安全模式。上面我们讨论过关于类装载和命名空间等Java特有的属性,那么现在我们来看一看在实际的操作中这些特性是怎样达到安全的。 1.1 概述 Java编程语言是一种

到黄昏,点点滴滴 1149

全面解析Java编程:从基础到高级概念

Java作为一门广泛使用的编程语言,在软件开发领域占有举足轻重的地位。自1995年由Sun Microsystems公司发布以来,Java凭借其“编写一次,到处运行”的跨平台特性,迅速成为企业级应用开发的首选语言。本章将带领读者初步了解Java语言的基本概念、历史背景和发展前景,为后续章节的学习打下坚实的基础。在Java编程语言中,类(Class)是面向对象编程基础。它是一种定义对象属性和行为的模板或蓝图。类可以包含字段(Field)来存储数据,方法(Method)来描述行为,以及嵌套类和内部类。

weixin_42601608的博客 1009

解析Java体系结构信息安全支持

Java语言拥有三大特征:平台无关性、网络移动性和安全性,而Java体系结构对这三大特征提供了强大的支持和保证,本文着重介绍Java体系结构支持信息安全的原理和使用方法。  Java体系结构  Java体系结构如下图所示,首先Java的源代码Java文件由编译器编译成Java的二进制字节码class文件,然后class文件由Java虚拟机中的类装载器进行加载,同时类装载器还会加载Java的原始

波波熊的专栏 769

Java编程思想看Java体系结构

     Java编程思想中的章节一共有22章,除了图形界面那一章之外,其他的可以简单的分为三大类,主要包括Java的核心语言基础、面向对象的有关特性和开发相关。这也是Java体系结构的组成部分。下面来细细划分三大类,并由此管窥Java体系结构。   Java语言核心基础      语言特性相关或者说是通用语言相关的部分又可以以下七个部分。    操作符      Java中的操作符主要包括+,-...

pb_yan的博客 332

Java编程学习:从基础知识到高级应用的全面解析

类的定义使用。

929

Java基础Java网络编程详解

网络编程是现代软件开发中不可或缺的一部分,它通过网络实现了计算机之间的通信,使得信息交换和数据共享成为可能。在网络通信的实现过程中,语言的选择和工具的使用至关重要,而Java提供了强大的支持,使得开发者可以更便捷地构建网络应用程序。网络通信的核心是数据的发送与接收,而Java网络编程模型为此提供了一套易用且高效的工具。无论是点对点的通信,还是基于更复杂协议的多节点交互,Java都能满足需求。在网络编程中,基础的通信模式是基于Socket的点对点连接,它可以实现客户端和服务器之间的直接通信。

道可道非常道 2036

Java春招面试题之编程基础类(一)

通过考察Java编程基础,用人单位可以了解求职者对Java语言的理解程度和熟练程度,一个熟练、具备开发经验的程序员,可以轻松地解答相关问题。而对于刚刚准备步入职场的新人,由于基础不扎实,准备不充分,Java基础编程方面的面试题往往会给他们造成一定的困扰。值得注意的是,企业和学校对Java基础考察的方向有很大的不同,往往求职者对哪些编程基础必须掌握没有一个清醒的认识,不知道企业需要考察哪方面的知识,...

E_book 4448

如何0基础学好java编程开发

如何0基础学好java编程开发基础如何学好Java编程Java学习路线是什么?“做软件开发、做编程这件事一定要有思想,有逻辑,否则只相当于搬砖”一个从事Java开发多年的“老司机”如是说。编程思想,历来是重中之重,不止要学会,还要应用好,如何赋予空洞的代码以灵魂,让刻板的字符可以按照某种秩序灵活的在指尖跳跃,这个思想很重要。当然想要学好编程不仅仅是看书就能学会的 也要通过观看相关的学习视频然...

weixin_43250822的博客 323

Java 基础全面解析

Java 作为一门广泛应用于企业级开发、安卓应用开发等领域的编程语言,凭借其跨平台性、面向对象特性和强大的类库,备受开发者青睐。本文将对 Java 基础进行全面讲解,涵盖基础语法、程序流程控制、数组与二维数组、面向对象编程、抽象类与接口,以及 Lambda 表达式。​。

m0_71744084的博客 1591

Java编程深入解析与实践:从基础到高级特性

Java作为一种广泛使用的面向对象的编程语言,已成为IT行业的主流语言之一。它由Sun Microsystems公司于1995年推出,以其“一次编写,到处运行”的跨平台特性受到业界青睐。Java语言的设计理念强调了简单性、面向对象、分布式计算、健壮性、安全性、体系结构中立、解释执行、高性能、多线程和动态性等特性。在本章中,我们将首先探讨Java的起源和发展历程,接着深入了解其跨平台的实现机制和JVM(Java虚拟机)的作用。

weixin_36059856的博客 770
上一篇: 谈谈JAVA程序的反编译-Java基础-Java-编程开发
下一篇: Taglib原理和实现:再论El和JSTL标签-Java基础-Java-编程开发
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值