Mark

“JVM性能调优解析”,查缺补漏JVM进阶面试题77问.你都遇到过哪些?

烈酒焚心 提交于 2020-08-17 08:42:35
前言 Java虚拟机有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统。 Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。 Java虚拟机不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。Java技术使同一种应用可以运行在不同的平台上。Java平台可分为两部分,即Java虚拟机(Java virtual machine,JVM)和Java API类库。 1、java中会存在内存泄漏吗,请简单描述。 2、64 位 JVM 中,int 的长度是多数? 3、Serial 与 Parallel GC 之间的不同之处? 4、32 位和 64 位的 JVM,int 类型变量的长度是多数? 5、Java 中 WeakReference 与 SoftReference 的区别? 6、JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用 当你将你的应用从 32 位的 JVM 迁移到 64 位的 JVM 时,由于对象的指针从32 位增加到了 64 位

JAVA的CAS及其ABA问题

我的未来我决定 提交于 2020-08-17 05:55:57
1 CAS是什么 CAS是Compare-And-Swap的缩写,即 对比和替换 ,它在保证数据原子性的前提下尽可能的减少了锁的使用,很多编程语言或者系统实现上都大量的使用了CAS。 因为没有没有线程阻塞唤醒带来的性能消耗问题。这也是为什么CAS比synchronized性能高的原因! 1.1 JAVA中CAS的实现 JAVA中的CAS主要使用的是Unsafe类。Unsafe的CAS操作主要是基于硬件平台的汇编指令,目前的处理器基本都支持CAS,只不过不同的厂家的实现不一样罢了。 sun.misc.Unsafe虽然类提供了一系列直接操作内存对象的方法,但只是在 jdk 内部使用,JAVA官方不建议开发者直接调用Unsafe类;所以我们一般直接使用到的,都是java.util.concurrent.atomic 包下的Atomic*类,比如 AtomicBoolean、AtomicInteger 等,其compareAndSet方法,也都是调用的Unsafe的CAS方法。 public final class Unsafe { ... public final native boolean compareAndSwapObject(Object var1, long var2, Object var4, Object var5); public final native

从jvm源码看synchronized

情到浓时终转凉″ 提交于 2020-08-17 03:47:45
synchronized的使用 synchronized关键字是Java中解决并发问题的一种常用方法,也是最简单的一种方法,其作用有三个:(1)互斥性:确保线程互斥的访问同步代码(2)可见性:保证共享变量的修改能够及时可见(3)有序性:有效解决重排序问题,其用法也有三个: 修饰实例方法 修饰静态方法 修饰代码块 修饰实例方法 public class Thread1 implements Runnable{ //共享资源(临界资源) static int i=0; //如果没有synchronized关键字,输出小于20000 public synchronized void increase(){ i++; } public void run() { for(int j=0;j<10000;j++){ increase(); } } public static void main(String[] args) throws InterruptedException { Thread1 t=new Thread1(); Thread t1=new Thread(t); Thread t2=new Thread(t); t1.start(); t2.start(); t1.join();//主线程等待t1执行完毕 t2.join();//主线程等待t2执行完毕 System.out

物联网安全发展趋势

橙三吉。 提交于 2020-08-16 06:15:49
物联网(IoT)市场发展迅速,终端数量剧增,安全隐患大,物联网产业链中安全环节占比低。物联网业务深入多个行业,全方位影响人民生活,相应的安全问题也将带来严重威胁,甚至包括生命和财产安全。本期我们将分享近期物联网安全相关的两条分立的趋势信息,分别是关于物联网安全威胁评估和依靠政策保障设备安全的启示。 物联网安全的防御方向与技术要求指南指出了应对物联网威胁的评估方法,并强调保护物联网安全需要在产品全生命周期内,特别是在安全开发和硬件设计方面尽职尽责,同时对系统组件执行弹性测试和分析。随着物联网规模日益扩张,物联网安全威胁日益加剧,如何评估物联网安全成为当下的研究热点。 如何评估更复杂的物联网威胁 随着连接我们和世界的设备和技术不断发展,网络罪犯正在发展其方法,以***和危害物联网(IoT)的关键系统。构建能够经受住时间考验的IoT产品,需要始终如一地在软件开发生命周期和供应链中内置安全控制。整个供应链中的任何重大安全漏洞都可能带来巨大风险。保护IoT需要在整个产品生命周期,特别是安全开发和安全硬件设计方面尽职尽责,同时对系统组件执行弹性测试和分析,以检测在生产之前运行时可能出现的问题。 第一个挑战是物联网拥有多样化的供应链和庞大的***面。了解IoT生态系统和所有各种接口需要了解各种风险,以及所呈现的接口在遭到破坏时如何影响整个系统。对于安全团队来说

2020,最新APP重构:网络请求框架

半腔热情 提交于 2020-08-16 05:20:10
在现在的app,网络请求是一个很重要的部分,app中很多部分都有或多或少的网络请求,所以在一个项目重构时,我会选择网络请求框架作为我重构的起点。在这篇文章中我所提出的架构,并不是所谓的 最好 的网络请求架构,因为我只基于我这个app原有架构进行改善,更多的情况下我是以app为出发点,让这个网络架构能够在原app的环境下给我一个完美的结果,当然如果有更好的改进意见,我会很乐于尝试。 关于网络请求框架 一个好的网络请求框架对于一个团队来说是十分重要的。如果一个网络请求框架没有封装好,或者是在设计上存在问题,那么在开发上会造成许多问题,就拿这段代码作为例子: [leaveAPI startWithCompletionBlockWith:^(BaseRequest * baseRequest, id responseObject) { // check the response object BOOL isSuccess = [leaveAPI validResponseObject:responseObject]; if (isSuccess) { // do something... } }failure: ^(BaseRequest * baseRequest) { // do something... }]; 上面这段代码存在着不少的问题,比如把请求数据的判断放到了每一个请求中

CSDN-头条-第一期(必问)[导读:]1.CSDN必问赏金流向何方 2.CSDN必问偷偷做的手脚 3.CSDN必问靠谱吗 4.关于钱于回答的平衡问题:一美元拍卖骗局 作者:qq3461896724

无人久伴 提交于 2020-08-16 04:03:11
本期是关于CSDN 必问 ( biwen.csdn.net ) 的内容,欢迎评论 文末,文中插入有 小姐姐 img(附py代码,1.49G) + coding资料 哟~~~ 你看到这篇很可能是在提问。推荐加qq 3461896724 帮解决 作者 汪慕零paperb qq3461896724 精通 py;C/c++ 有问必答 文章是 抨击 必问的(见导读,标题)。 希望转发,多一个人看到就多一份了解(必问关了吐槽吧,没法评价,只能发博 注:强烈建议转发: 1.全部属实:可以自己尝试,注: https://biwen.csdn.net/question/2192 (新标签页打开),不存在"造谣" 2.必问的人们许多不知道,导致利益收到侵害 3.我是受害者.你也间接的成为了. 4.转发很简单,发链接就行. 5. 多一个人看到就多一份了解( 必问关了吐槽吧,没法评价,只能发博 [ 创作不易, 希望读完全文 ,这事关所有回答者的利益,回答者不满意,提问者又怎能得到耐心细致的满意答复! ]作为用户,我们有权利伸张正义! 可以把文章链接转发biwen.csdn.net.的问题上 或者自已的blog 简介: 相信"金山词霸,金山打字通"许多人都用过,而金山副总监 创办了 "全球最大中文IT技术平台,成就一亿技术人"的CSDN(Chinese software dev net) CSDNblog

GrammaTech收购JuliaSoft,将CodeSonar®SAST平台的应用范围扩展到Java和C#

元气小坏坏 提交于 2020-08-16 03:34:14
软件应用安全测试解决方案的领先提供商GrammaTech,今天宣布已收购JuliaSoft S.r.l.的知识产权及资产。通过针对Java和C#代码的自动代码分析来扩展其CodeSonar®静态应用程序安全测试(SAST)平台。 为了向客户提供可靠的能够检测出嵌入式应用程序中安全漏洞和其他缺陷的集成解决方案,Julia静态分析器将统一到CodeSonar®平台中,使开发人员能够对C,C ++,Java和C#代码执行静态分析,更快速的开发安全的应用程序。 在最近的一份报告中,“ Gartner观察到AST(应用程序安全测试)市场发展的主要动力是支持企业DevOps计划的需求。客户需要的是能够为其提供高保证,高价值的分析结果,同时又能避免不必要地减慢开发工作的速度。他们希望在开发流程的早期阶段提供适合的产品,测试通常由开发人员而不是安全专家来驱动。” “一些全球最注重安全性的组织如美国军方,NASA以及汽车,航空航天,工业和医疗设备制造商等均已采用 GrammaTech,以确保其应用程序免受缺陷和安全漏洞的影响,”GrammaTech公司的首席产品官Vince Arneja表示。“无论用例是实现代码检查,代码质量,代码安全性还是遵守编码标准,Julia产品都将通过进一步扩展其深度和广度,立即扩大CodeSonar的市场范围和差异化。” [1] Gartner,“应用程序安全魔力象限”

ros 伪随机修改mac和ssid脚本,所谓的ros试玩脚本

情到浓时终转凉″ 提交于 2020-08-15 14:12:49
原文: http://bbs.routerclub.com/forum.php?mod=viewthread&tid=104819&extra=page%3D2&page=1 mirktotk route ROS 伪随机修改mac和ssid脚本,所谓的试玩脚本就是指这东西? mac.txt文件为 mac地址前缀,主要目的是尽量模拟 IEEE分配的真实mac范围 mac.txt可要可不要,看懂了的稍微改个注释就行了。 ============添加规则 { :for aa from=1 to=10 do={ /interface wireless { add disabled=no keepalive-frames=disabled master-interface=wlan1 multicast-buffering=disabled name=("v-wifi" . $aa) security-profile=profile1 ssid=("v-ssid" . $aa) } /ip address { add address=("192.168." . $aa . ".254/24") interface=("v-wifi" . $aa) network=("192.168." . $aa . ".0") } /ip pool { add name=("v-pool" . $aa)

XML中的<![CDATA []]>是什么意思?

拟墨画扇 提交于 2020-08-15 07:32:18
问题: I often find this strange CDATA tag in XML files: 我经常在 XML 文件中找到这个奇怪的 CDATA 标记: <![CDATA[some stuff]]> I have observed that this CDATA tag always comes at the beginning, and then followed by some stuff. 我观察到这个 CDATA 标签总是在开头,然后是一些东西。 But sometimes it is used, sometimes it is not. 但有时它被使用,有时则不然。 I assume it is to mark that some stuff is the "data" that will be inserted after that. 我认为这是为了标记 some stuff 是将在此之后插入的“数据”。 But what kind of data is some stuff ? 但是什么样的数据是什么 some stuff ? Isn't anything I write in XML tags some sort of data? 我在XML标签中写的东西不是某种数据吗? 解决方案: 参考一: https://stackoom.com/question