Java安全体系结构-Java基础-Java-编程开发

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
<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的原始APIClass文件,类加载器主要负责加载、连接和初始化这些class文件以后,就交给虚拟机中的执行引擎运行,执行引擎将class文件中的Java指令解释成具体的本地操作系统方法来执行,而安全管理器将在执行过程中根据设置的安全策略控制指令对外部资源的访问。

Java的执行方式不是编译执行而是解释执行,不同平台上面相同的源代码编译成符合Java规范的相同的二进制字节码,然后再交给支持各自平台的虚拟机去解释执行,"先编译,后解释,再执行"三步走的方式使得Java实现了"一次编写,到处运行",如果Java应用使用的是100%标准JavaAPI并且没有直接调用本地方法,那就可以不加修改地运用在多种平台上,这样的平台无关性使得在异构的网络环境或者嵌入式方面的应用更方便和现实。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语言本身对信息安全提供的基础。

Java编程与游戏开发基础解析 本文深入解析了计算机的基本组成、内存层次结构、编程语言的发展及Java在游戏开发中的应用。重点讨论了Java面向对象特性如何支持游戏开发,包括类、方法、构造函数、数据类型转换等核心概念,并通过多个实例代码展示了Java编程实践。此外,文章还探讨了游戏开发的教学价值及其与编程思维培养的关联。 阅读详情

相关推荐

Java编程进阶】Java语言基础入门篇

整个 Java 编程技术栈体系十分庞大,建议初学者首先学习 Java 基础,例如语法基础,集合,IO 流,多线程,反射,注解等,再学习数据库,学会数据的持久化存储,这部分主要是 SQL 语句的学习,学会使用JDBC基础代码操作数据库等,接下来学习 JavaWeb ,主要学习 TomCat,Servlet,JSP等内容,学会使用 Java 技术解决 Web 互联网相关问题。接着学习主流的框架开发,例如 Spring ,SpringMVC,MyBatis等内容。

zhangxia_的博客 1万+

Java安全体系结构

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

到黄昏,点点滴滴 1149

Java编程案例开发实战指南

自定义异常类是在标准异常类无法满足需求时,我们通过继承Exception或其子类来创建的。自定义异常类需要指定父类,可以加入额外的构造方法,以及可能的成员变量和方法来传递异常详情。

weixin_42605397的博客 1194

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

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/javascript"

java专栏 368

JavaTM安全体系结构 1

JavaTM安全体系结构(JDK1.2) 1. 引言自从Java技术开始应用以来,人们对Java平台的安全以及由于部署Java技术所引发的安全问题,越来越感兴趣。 按照Java设计者的观点,Java安全包括两个方面的内容: 将Java作为一种安全的、安装好的平台提供给用户(主要通过JDK),在此平台上,可安全地运行Java应用程序。 提供用Java编程语言实现的安全

wxyxl的专栏 1034

JavaTM安全体系结构 2

JavaTM安全体系结构(JDK1.2) 2. 新的保护机制──基本概念概述现在,我们讨论一下新的保护体系结构,并对它的功能性做一个简要的说明。我们将从新体系结构的基本概念说起,然后按自然顺序介绍主要的新类,即先从许可说明开始,然后是策略和有关特性及访问控制和它的使用,最后是安全类装载和解决方案。 一个基本的概念和系统安全性的重要积木是保护域。一个域可通过对象集来划分范围,这些

wxyxl的专栏 1055

Java编程基础

Java基础编程知识汇总

小S的博客 4154

JavaTM安全体系结构 4

JavaTM安全体系结构(JDK1.2)4. 访问控制机制和算法4.1 java.security.ProtectionDomain 这个类代表了Java应用环境中的一个保护单元,它典型地与 "主体(principal)" 的概念发生关联,这里的主体是在计算机系统中被授予许可的一个实体。 从概念上讲,一个域是一个类的集合,这些类的实例被授予了相同的许可集。目前,一个域单独地由一个代

wxyxl的专栏 6174

Java基础编程及思维导

java基础编程及其思维导感谢尚硅谷宋红康老师java学习导一、java基本语法1.关键字与标识符2.变量分类3.运算符4.流程控制二、数组1.数组概述2.一维数组3.二维数组4.数组常见算法5.Arrays工具类使用三、面向对象java类及其类成员三大特性(封装、继承、多态)关键字 感谢尚硅谷宋红康老师 第一次在B站上看见 宋红康老师 的视频,真的是不一样感觉!不一样的收获!跟着你学习java编程方面知识有种随其自然、水到成渠的感觉。谢谢您!宋红康老师! 如果正在学习java小伙伴,推荐学习B站尚硅谷

qq_45625194的博客 2868

JavaTM安全体系结构 8

JavaTM安全体系结构(JDK1.2)8. 未来发展方向8.1 用户、认证和信任书 今天,主体(例如:用户)的概念已经不太清楚了,因为每个JVM都由一个用户所拥有。将来,有必要扩展ProtectionDomain的现存概念以包括"代表一个主体运行"的概念。 因此,我们热切地期望在不远的将来为你提供如下特性: 明确的主体的概念和类用户认证原语(既有基于口令的, 也是其它

wxyxl的专栏 1067

JavaTM安全体系结构 5

JavaTM安全体系结构(JDK1.2)5. 安全类装载 动态类装载是Java虚拟机的一个重要特性,因为它为Java平台提供了一种在运行时安装软件的能力。它有许多独特的性质。首先,惰性装载表示按需求并在可能的最后一刻装载类;第二,通过增加链接时检查(它代替了某些运行时检查,并仅执行一次),动态类装载维护了Java虚拟机的类型安全;再有,程序员可定义他们自己的类装载器。例如,指定某些的远

wxyxl的专栏 1275

Java编程基础教程

Java编程基础教程

Zff121017的博客 1775

Java编程需要必须掌握哪些基础知识?

Java编程基础知识学习是每一个程序猿进入编程领域的人所必须经历的学习过程,只有基本功修炼好,才能有更深远更好的的发展,那Java编程基础知识有哪些,需要必须掌握的呢? 1掌握静态方法和属性 静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征。Java中大量应用了静态方法和属性,这是一个通常的技巧。但是这种技巧在很多语言中不被频繁地使用。 理解静态方法和属性对于理解类与对象的关系是...

IT知堂 3874

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

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

weixin_43250822的博客 323

JAVA编程基础

变量必须先声明再使用//声明一个变量数据类型 变量名;//一次声明多个变量数据类型 变量名1=变量值1,变量名2=变量值2,变量名3=变量值3;方法就是定义在类中的具有特定功能的一段独立小程序,用来完成某个功能操作。集合。

2302_81778939的博客 1591

JavaTM安全体系结构 3

JavaTM安全体系结构(JDK1.2)3. 许可和安全策3.1 许可类? 许可类表示了对系统资源的访问。java.security.Permission类是一个抽象的类,且在适当的时候可生成子类以表示特定的访问。 作为许可的一个例子,下列代码可被用来生成一个阅读在/tmp目录下名为“abc”的文件的许可?br>perm = new java.io.FilePermission

wxyxl的专栏 1263

全面掌握Java编程:从基础到进阶

安装好JDK后,你还需要一个集成开发环境(IDE)来编写和调试代码。流行的Java IDE包括Eclipse, IntelliJ IDEA, 和NetBeans。本节会简要介绍它们的特点:Eclipse: 开源且功能丰富的IDE,通过安装各种插件可以扩展功能。: 商业IDE,以其智能代码完成和重构支持而闻名。NetBeans: 另一款开源IDE,易于使用,提供强大的GUI设计工具。Java有八种基本数据类型,分为四类:整型、浮点型、字符型和布尔型。

weixin_29476595的博客 983

Java开发实例大全基础卷PDF资源:深入学习Java编程的不二选择

Java开发实例大全基础卷PDF资源:深入学习Java编程的不二选择 【下载地址】Java开发实例大全基础卷PDF资源 《Java开发实例大全 基础卷》是一本专为初学者打造的Java编程指南,通过丰富的实例讲解,帮助读者轻松掌握Java基础语法、面向对象编程、异常处理、文件IO操作和多线程等核心知识。本书内容由浅入深,注...

gitblog_06786的博客 433

Java高手真经_编程基础卷:Java核心编程技术》(JAVA开发专家)扫描版[PDF]

编辑推荐 本书详细讲解Java语言基础开发中的各种技术,主要内容包括如下。   ·Java开发入门:JDK、JVM、Eclipse、Linux。   ·Java语法基础:类、抽象类、接口、内部类、匿名类、异常、编码规范。   ·Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。   ·Java网络编程Applet、Sockt/TCP/UDP、NIO、RMI

闹腾的外行 1925
上一篇: java的30个学习目标-Java基础-Java-编程开发
下一篇: 学习java安全技术前的准备-Java基础-Java-编程开发
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值