JAVA安全基础

Java安全入门基础知识篇-01 intell常用快捷键:ctrl+n 快速查找定位类的位置ctrl+q 快速查看某个类的文档信息shift + F6 快速类、变量重命名ctrl + i 在当前类实现接口的方法ctrl + o 复写基类的方法alt+insert 快速设置类的方法ctrl+shift+a 快速查找各种类,变量,操作ctrl+alt+b 定位抽象方法的实现ctrl+alt+v 反射提取出类的对象ctrl+/ 注释/取消单行ctrl+shift+/ 注释多行shift+F1 浏览器中打开当前元素对应的文档。 阅读详情
 

一、Java简介

    Java是由美国Sun Microsystem,Inc.开发出来的一种面向对象的语言,它已经广泛用于Internet 上以完成一些HTML无法完成的功能。Java有简单、稳定、安全、界面友善等几大特点,而且对于UNIX,Macintosh或者PC机都能使用,这就是为什么Java如此受欢迎的原因了,Java是由C++衍生过来的,它的风格和C++很相似,不过就和C++相比就简单得多 。Java由于其指令和结构都是十分严谨的,而且是专门为不同环境些执行所设计,所以Java编写的程序远比C++要稳定,而且改错也比较容易。在网络上执行程序时,Java对安全性的保障具有非常严格的控制,尤其是对用户端安全的保护以及规定都有详尽而严格的规定。

二、Java的特点

   Java在运行机理上和C++很相似,但是两者也有很多差异:
1、Java不支持结构和指针;在C/C++中,最灵活也是最头疼的东东就是指针(一说到这个玩意我就全身发冷),但是在JAVA中,为了保持它的平台无关性,Java取消了指针。

2、自动内存管理和线索控制。在C和C++中,内存必须用free、 malloc和其它许多内存管理标准库管理。因此,系统要了解何时分配、释放内存并且跟踪所有的内存使用情况是非常困难的。如果要在C和C++中实现线索功能,必须使用一个可对线索进行各种控制的类库。而在Java中,尽管线索仍然需要类的支持,但系统却在语言级包括了线索同步机制。

3、Java具有内嵌的内存管理程序。一旦创建了一个对象,Java的运行系统就开始跟踪这个对象,直到不再需要跟踪该对象的所有引用为止。当某个对象不存在相应的引用时,Java把这个对象放到一个用于垃圾搜集的栈内。为在性能损失最小的情况下提供自动垃圾搜集机制,这个垃圾搜集程序将在后台或作为低优先级线索运行。这样,Java的垃圾搜集软件将在前台线索的执行期间抽空执行,或者在系统显式提出需要使用那些被已经死亡的类所占用的内存空间时执行。

从后台内存管理程序可以很明显地看出,多线索的确可以增强Java环境的相对性能。鉴于多线索的重要性,Java在语言级提供了线索同步机制,使多线索成为一种内嵌特性。Java 语言支持针对方法的同步修饰符,并通过该修饰符来指明线索的运行顺序。此外,Java还能控制方法与实例变量的相互作用机制,确保了各方法之间在修改数据时不会产生冲突。

Java的内存管理和线索支持还具有使Java语言简单化的作用。正是由于把内存管理任务嵌入到了Java环境,Java语言才可以取消指针数据类型、malloc和free函数。这样,程序员就可以把更多的时间化在真正的编程工作上,而不是去跟踪调试与内存使用相关的程序错误。正是由于其多线索机制,Java才可以为一个可移植的解释系统提供较高的性能。

 4、Java的编译和C/C++大有不同,C/C++的编译器是将源代码编译成某种处理器所能处理的机器码,而Java编译器只是将它编译成一种临时代码,称为字节码或虚拟机代码,通过文件.class进行存储,运行时通过Java虚拟机运行,而不基于任何特定处理器。

三、Java在浏览器上的运用

首先时网页制作人员,在HTML代码中写入<Applet>标记,在客户端的浏览器遇到该标志的时候,如果它与Java兼容的话,就会下载相应的类文件,类文件中装的就是我们刚刚说的字节码,浏览器中的虚拟机根据客户端的处理器将字节码转换为特定的机器码,于是它就在这台机器上执行了。

四、Java组件

浏览器下载applet的类文件后,Java虚拟机将执行applet的即定动作。但是由Java虚拟机编译执行之前,下面的几个Java组件功劳不可抹杀:Java Applet类装载器,Applet校验,Applet安全性管理器,这些组件载完成必要的代码装入、校验以及安全性运行方面不可替代。

Applet类装载器将浏览器下载的applet装入内存,除了为运行applet做准备之外,Applet类装载器还要完成下面的任务:

  • 加强Java的命名空间组织;所谓命名空间就是指Java虚拟机用以存储Java类的一块内存空间,Java虚拟机会为它下载的每一个Java类分配一块空间,之后Applet类装载器将和校验器一起确保没有任何类越过它的命名空间去访问不属于它的命名空间的其他内存。
  • 确保每一个类都存在一个来自本地的文件系统的唯一的命名空间并且对每一个网络资源也都有一个唯一的命名空间;
  • 浏览器下载applet的类文件后,Applet类装载器将这些类放入与他们的源代码相联系的命名空间中,这样Applet类装载器将把每一个Applet分放在不同的命名空间中以保护安全性sandbox;
  • 在Applet类装载器载入该类之前,类验证器将首先检查该类;
类校验器用以保证applet符合安全性标准的运行系统中的一部分。它先确认applet符合Java语言规范,类校验器不检查那些可信任的编译器所生成的类文件,而是对那些有意违背命名空间规定和Java语言规则的类文件加以检查,并关闭具有安全性漏洞的类文件,如下所述,类校验器将:
  • 保证程序没有昌盛堆栈上溢或下溢;
  • 保证程序对所有注册内容进行有效的存取;
  • 保证所有的字节码指令的参数是正确的;
  • 保证程序没有对数据进行非法转换;
类校验器通过分析穿来的字节指令代码文件来完成以上的严格检查,它还为类文件格式和对象签名,执行Java程序的异常Finally语句。在Java源程序中,try-catch-finally语句序列捕捉和响应Java的程序错误。

Applet安全性管理器用以保证Java Applet符合Java的安全限制。

PFC胶结模型实战:从线性到平行粘结的力学行为解析 本文深入解析了PFC中线性接触与平行粘结(pb模型)的核心差异与应用。平行粘结模型通过模拟胶结层的力学行为,能够有效传递拉力和抵抗弯矩,是模拟岩石、混凝土等胶结材料的关键。文章详细介绍了其变形与强度参数的设置、法向与切向行为的验证方法,并揭示了全量与增量力计算中易出现的“幽灵力”问题及其解决方案,为复杂模型的构建与调试提供了实用策略。 阅读详情

相关推荐

一文入门Qwen-Agent【附实战代码】

Qwen-Agent 是一个开源框架,用于开发基于 Qwen 模型的 AI 智能体应用,一文带你入门使用

m0_55303420的博客 1875

Java知识大全 - 十一、Java与安全

Java具有许多旨在提高应用程序安全性的功能和技术。以下是与 Java 和安全性相关的一些知识点:身份验证和授权:Java 提供了许多 API 和框架来在应用程序中实现身份验证和授权,包括 Java 身份验证和授权服务 (JAAS)、Java Security Manager 和 Spring Security。安全编码实践:编写安全代码对于确保应用程序不易受到攻击至关重要。Java 开发人员需要遵循安全编码实践,以避免常见的安全问题,例如 SQL 注入、跨站点脚本 (XSS) 和缓冲区溢出。

LegendaryChen的博客 1188

LangGraph的容错机制:从节点失败到图级回滚

核心概念铺垫:讲解LLM应用容错与事务性的核心概念(幂等性、重试策略、降级策略、快照、回滚、原子性、一致性、隔离性、持久性、最终一致性),对比LangGraph容错机制与传统数据库ACID事务、Apache Airflow/Kubernetes Workflow/Kubeflow Pipelines容错机制的异同;LangGraph容错机制的演进历史:用markdown表格梳理LangGraph从0.0.1到1.5.0(截止202X年X月)的容错机制发展历程;节点级别的容错:重试与降级。

AI Python 编程之道的博客 175

java安全入门(一)

编译型语言和解释性语言 大家之前都或多或少接触过python与php,刚开始可能接触过一些C,但是其实这几种是不同的语言 有的编程语言要求必须提前将所有源代码一次性转换成二进制指令,也就是生成一个可执行程序(Windows 下的 .exe),比如C语言、C++、Golang、Pascal(Delphi)、汇编等,这种编程语言称为编译型语言,使用的转换工具称为编译器 有的编程语言可以一边执行一边转换,需要哪些源代码就转换哪些源代码,不会生成可执行程序,比如 Python、JavaScript、PHP、She

shayebudon的博客 5557

LAMMPS模拟新合金没势函数?手把手教你用`pair_style hybrid`混合势函数(附FeCMnSiTi案例)

本文详细介绍了在LAMMPS中如何使用`pair_style hybrid`混合势函数模拟新型高熵合金(如FeCMnSiTi),解决缺乏现成势函数的问题。通过实战案例,涵盖参数查找、命令编写、错误排查等关键步骤,特别适合处理多组元体系的复杂相互作用。文章还提供了EAM势函数与LJ势的组合技巧,帮助研究者准确模拟合金性能。

weixin_30635053的博客 246

CMIP6数据处理及在气候变化、水文、生态等领域中的应用

CMIP6、Biome-BGC、生态、气候变化、气象、水文、气候模式、植被、生态模式、遥感、极端气候、降水、WRF模式、动力降尺度、RCM、大气环流模型、贝叶斯模型、、降尺度

PhyliciaFelicia的博客 1561

java安全入门

是所有的类加载器的父类,有非常多的子类加载器,比如我们用于加载jar包的其本身通过继承类,重写了findClass方法从而实现了加载目录class文件甚至是远程资源文件。现在用来尝试写一个加载类器来加载自定义的字节码,并调用hello方法如果类存在的情况下,我们可以使用如下代码即可实现调用hello但是,如果不在我们的classpath中,我们可以通过自定义的类加载器重写findClass方法,然后在调用的时候,传入该类的字节码,最后通过反射机制就可以调用类的hello方法了。/***/

why811的博客 8444

SAP期初库存导入 (1)

LSMW

IT养家 7192

java安全入门【持续更新】

java安全入门 概述 发现一个总体学习路线:Java Web基础 – EastJun’s Blog 发现一个入门网站:https://how2j.cn/?p=50613 了解了javaEE Java EE,Java 平台企业版(Java Platform Enterprise Edition),之前称为Java 2 Platform, Enterprise Edition (J2EE),2018年3月更名为 Jakarta EE(这个名称应该还没有得到群众认可)。是 Sun 公司为企业级应用推出的标准平

weixin_51458899的博客 3985

遗传算法驱动吃豆人进化:从零构建AI游戏智能体

遗传算法是一种模拟自然选择过程的优化技术,其核心原理是通过选择、交叉和变异等操作,在解空间中迭代搜索最优解。该技术为解决复杂优化问题提供了强大工具,尤其在游戏AI、机器人控制和参数调优等场景中价值显著。在游戏AI领域,遗传算法常被用于训练智能体自主决策,例如在经典游戏《吃豆人》中,通过定义智能体的“基因”(如神经网络权重)和“适应度”(如游戏得分),可以引导其进化出躲避幽灵、高效吃豆等策略。本项目结合Pygame框架与神经网络,构建了一个完整的遗传算法训练沙盒,详细展示了如何通过适应度函数设计和参数调优,实

weixin_30467199的博客 273

【以太网硬件九】1000base-X是什么?

简要描述1000base-X物理层规范

highman110的博客 1万+

Mac OS 在Finder中显示隐藏文件

苹果Mac OS X操作系统下,隐藏文件是否显示有很多种设置方法,最简单的要算在Mac终端输入命令。显示/隐藏Mac隐藏文件命令如下(注意其中的空格并且区分大小写):   显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏Mac隐藏文件的命令:defaults write com.app...

一切皆有可能 154

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

在Finder中显示隐藏文件

<br /><br />在Finder中显示隐藏文件<br />很多使用Mac的同学都知道,Mac OS X是基于FreeBSD(Unix)的。可是我们在使用的时候,发现很多Unix下的文件和目录像/etc,/var,/bin等都找不到了。其实,这些文件和目录都在,只不过是都被系统隐藏了。Mac的一个设计原则就是,你不需要看到的或者你不希望看到的,都不会显示给你。如果你需要访问或修改这些文件,只能使用“终端”,通过Unix命令来访问。但是通过“终端”毕竟不如使用Finder方便,今天的这个小窍门我们就来告诉

禚来强(亿刀) 的iphone开发专栏--我们 一群 热爱 移动开发,如果你也是,就加入我们。 2179

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【Mac】Mac开启或关闭显示隐藏文件命令

打开终端,输入: defaults write com.apple.finder AppleShowAllFiles -bool true搜索 此命令显示隐藏文件 defaults write com.apple.finder AppleShowAllFiles -bool false 此命令关闭显示隐藏文件 命令运行之后需要重新加载Finder:快捷键option+comm...

bug制造者 565

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Mac OS finder : 显示和隐藏文件[夹] show and hide files or folders

Finder默认是不显示隐藏文件[夹]的,要显示出怎么办? 要显示的话,可以GUI(graphic user interface)和CLI(command line interface)两种方式 CLI: 显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏Mac隐藏文件的命令:defa...

weixin_33816946的博客 452

显示/隐藏Mac下的隐藏文件

true为显示,false为隐藏 defaults write com.apple.finderAppleShowAllFiles -bool false 转载于:https://www.cnblogs.com/lsan/p/4424229.html

weixin_34255793的博客 72

mac下显示隐藏文件的方法

在命令行输入显示 : defaults write com.apple.finder AppleShowAllFiles -bool true关闭所有文件夹 KillAll Finder隐藏 : defaults write com.apple.finder AppleShowAllFiles -bool false关闭所有文件夹KillAll Finder 转载于:ht...

weixin_30906185的博客 68

mac显示隐藏文件

defaults write com.apple.finder AppleShowAllFiles –bool true killall Finder

287

OSX Finder显示隐藏文件

Automator -> [服务] -> 搜索栏中找到"Run Shell Script"拖到右边的工作区 -> 复制以下脚本文本框中: STATUS=`defaults read com.apple.finder AppleShowAllFiles` if [ $STATUS == YES ]; then defaults write com.apple.f...

weixin_30622107的博客 75

mac 显示隐藏文件

显示:defaults write com.apple.finder AppleShowAllFiles -bool true隐藏:defaults write com.apple.finder AppleShowAllFiles -bool false 转载于:https://www.cnblogs.com/liulipeng/p/4007087.html

weixin_30319153的博客 57

显示/隐藏Mac隐藏文件

#defaultswritecom.apple.finderAppleShowAllFiles -booltrue#defaults writecom.apple.finder AppleShowAllFiles -bool false

lcxhjg的专栏 212

Mac中直接打开隐藏的文件或文件夹

http://hi.baidu.com/54827158/blog/item/520a7c4669ebd8009313c606.html http://www.dengor.com/archives/213.html http://www.dengor.com/archives/477.html   发现mac上面对隐藏文件夹的操作不像在windows里面那么容易,找了下解决方案

idaretobe的专栏 1558

mac osx 显示隐藏文件

defaults write com.apple.finder AppleShowAllFiles -bool true defaults write com.apple.finder AppleShowAllFiles -bool false

hypercube2的专栏 164

如何在Mac OS X中开启或关闭显示隐藏文件命令

如何在Mac OS X中开启或关闭显示隐藏文件命令 打开终端,输入: defaults write com.apple.finder AppleShowAllFiles -bool true 此命令显示隐藏文件 defaults write com.apple.finder AppleShowAllFiles -bool false 此命令关闭显示隐藏文件 命令运行之后需要重新加载Finder...

panadalove的博客 277

Mac上如何隐藏桌面上的文件

打开终端输入下面的命令 隐藏桌面文件: defaults write com.apple.finder CreateDesktop -bool false;killall Finde 显示桌面文件: defaults write com.apple.finder CreateDesktop -bool true;killall Finder

codeblank的博客 402
上一篇: 利于ThreadLocal管理Hibernate Session
下一篇: iText 简介
xiaojunjava
博客等级 码龄22年 7粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值