JAVA的安全性怎么理解?为什么它是安全的?

JAVA的安全性怎么理解?为什么它是安全的?,第1张

分类: 游戏 >>手机游戏

解析:

Java适用与网络/分布式环境,因此在安全方面投入了很大精力.使用Java可以构建防毒、防篡改的系统.

最初的Java就包括:

禁止运行时堆栈溢出.(例如蠕虫等病毒常用的袭击手段)

禁止在自己的处理空间之外破坏内存

未经授权禁止读写文件.

并且,许多安全特性相继不断被加入java中.从1.1开始,java就有了数字签名类(digitally signed class)的概念.(我们浏览网页时会经常遇到的.)通过数字签名类,可以确定类的作者.如果信任这个类的作者,这个类在你机器上就能拥有更多权限.

但是即使这样,还是要说一句"安全不是绝对的".

并发编程三要素(线程的安全性问题体现在):

原子性:原子,即一个不可再被分割的颗粒。原子性指的是一个或多个 *** 作要么 全部执行成功要么全部执行失败。

可见性:一个线程对共享变量的修改,另一个线程能够立刻看到。 (synchronized,volatile)

有序性:程序执行的顺序按照代码的先后顺序执行。(处理器可能会对指令进行 重排序)

出现线程安全问题的原因:

线程切换带来的原子性问题

缓存导致的可见性问题

编译优化带来的有序性问题

解决办法:

JDK Atomic开头的原子类、synchronized、LOCK,可以解决原子性问题

synchronized、volatile、LOCK,可以解决可见性问题

Happens-Before 规则可以解决有序性问题


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

原文地址: https://outofmemory.cn/yw/11073161.html

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

发表评论

登录后才能评论

评论列表(0条)

保存