草庐IT

【小嘟陪你刷题02】牛客网——Java专项练习

❤️❤️个人主页:摸鱼王胖嘟嘟🌟🌟作品专栏:小嘟陪你刷题系列📑给大家推荐一款非常火的面试、刷题、学习神器👉牛客网👉点击注册一起刷题、学习、讨论收获大厂offer吧!前言本篇是对JavaSE基础知识的一些练习!希望能够很快的掌握JavaSE的知识!第一题:解析:C不存在x[25]索引从0开始到length-1x[24]存的是默认值0(java中没有’\0’这一说)x[25]属于数组越界了!超出了内存!x[0]才是访问此数组的第一个元素第二题:解析答案:B在类方法中不能有this关键字直接调用类方法即可,A错误,B正确,在类方法中可以通过创建实例对象调用类的实例方法,C\D错误第三题:解析答案:A

【技术积累】Java中的JVM【一】

什么是JVMJVM英文全称为JavaVirtualMachine,中文意为Java虚拟机。JVM是一种能够执行Java语言编写的程序的虚拟机器,它首次作为Java语言的一部分,后来又被移植到了许多平台上。JVM可以执行Java字节码,即Java源代码经过编译后生成的二进制中间代码。JVM根据字节码指令来执行程序,这就使得Java程序跨平台,在不同的操作系统上运行时不需要修改源代码。JVM本身也是跨平台的,因为JVM实际上就是使用底层机器代码实现的软件层,因此只需安装相应平台的JVM即可。JVM的主要组件包括:类加载器:负责将.class二进制文件转换为在运行时可以被JVM识别的类对象。运行时数

JAVA父类强转子类

父类转子类父类强转子类的要求:父类必须是子类的实例,(换句话说就是需要强转的父类必须是子类构造出来的,它本身就是子类的实现)原理:父类的实现是父类的实例,和子类没有关系,不能直接强转//AA父类publicclassAA{privateStringaa;publicAA(){this.aa="AA";System.out.println("父类构造");}//toString}//CC子类publicclassCCextendsAA{publicCC(){System.out.println("CC子类构造");}}父类对象是子类实现父类对象可以强转为子类对象publicclassBB{pub

深入分析JVM执行引擎

程序和机器沟通的桥梁一、闲聊相信很多朋友在出国旅游,或者与外国友人沟通的过程中,都会遇到语言不通的烦恼。这时候我们就需要掌握对应的外语或者拥有一部翻译机。而笔者只会中文,所以需要借助一部翻译器才能与不懂中文的外国友人交流。咱们的执行引擎就类似于这部“翻译机”。二、概述执行引擎的作用就是将字节码指令解释或者编译为对应平台上的本地机器指令。简单来说,执行引擎充当了将高级语言翻译为机器语言的翻译者。对于Hotspot虚拟机,执行引擎中包含两部分:解释器和JIT编译器(即时编译器)。下图是执行引擎的原理:三、解释器解释器所承担的角色就是一个运行时翻译者,将字节码文件中的内容翻译为对应平台的本地机器码指

JVM中的锁优化

锁优化Jvm在加锁的过程中,会采用自旋、自适应、锁消除、锁粗化等优化手段来提升代码执行效率。什么是锁升级,降级?锁的4中状态:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态(级别从低到高)。所谓的锁升级、降级,就是JVM优化synchronized运行的机制,当JVM监测到不同的竞争状况是,会自动切换到不同的锁实现。这种切换就是锁的升级、降级。锁升级偏向锁因为经过大量的研究发现,大多数时候是不存在锁竞争的,常常是一个线程多次获得同一个锁,因此如果每次都要竞争锁会增大很多没有必要付出的代价,为了降低获取锁的代价,才引入的偏向锁。在程序的一开始,处于无锁状态。紧接着,有一个线程申请锁,此时通过C

JVM——VisualVM使用说明

概述VisualVM是一款免费的\集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力,对Java应用程序做性能分析和调优。VisualVM提供了包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和CPU分析,同时它还支持在MBeans上进行浏览和操作等功能。VisualVM下载地址:http://visualvm.github.io/download.html相比JConsole,感觉功能更强大,且可集成各类插件,使其更强大。Jconsole算是VisualVM的子集吧。另外VisualVM也有JConsole的插件;相比Arthas,它最大的特点肯定就是图形化了。

Java面向对象:继承特性的学习

本文介绍了面向对象的继承特性:什么是继承继承的概念Java中继承的语法在继承下父类成员的访问super和this关键字父类和子类构造方法在继承下类中出现初始化代码的执行顺序父类成员的访问权限对子类的可见性Java的继承关系final关键字认识继承和组合关系继承特性的学习一.面向对象特性:继承1.为什么需要继承2.继承的概念3.Java继承的语法4.父类成员的访问①.子类和父类不存在同名成员变量时②.子类和父类存在同名成员变量时③.子类和父类不存在同名成员方法时④.子类和父类存在同名成员方法时⑤.使用super访问父类成员6.super和this的区别①.super和this的相同点②.supe

一文深度讲解JVM 内存分析工具 MAT及实践(建议收藏)

1.前言熟练掌握MAT是Java高手的必备能力,但实践时大家往往需面对众多功能,眼花缭乱不知如何下手,小编也没有找到一篇完善的教学素材,所以整理本文帮大家系统掌握MAT分析工具。本文详细讲解MAT众多内存分析工具功能,这些功能组合使用异常强大,熟练使用几乎可以解决所有的堆内存离线分析的问题。我们将功能划分为4类:内存分布详情、对象间依赖、对象状态详情、按条件检索。每大类有多个功能点,本文会逐一讲解各功能的场景及用法。此外,添加了原创或引用案例加强理解和掌握。如图所示:​编辑切换为居中添加图片注释,不超过140字(可选)为减少对眼花缭乱的菜单的迷茫,可以通过下图先整体熟悉下各功能使用入口,后续都

【编程实践】JVM内存管理的核心数据结构和算法思想&代码示例说明

【编程实践】JVM内存管理的核心数据结构和算法思想&代码示例说明文章目录【编程实践】JVM内存管理的核心数据结构和算法思想&代码示例说明前言堆内存管理堆内存年轻一代老一辈非堆内存堆元空间预留空间代码缓存YoungGenerationOldGenerationPermGenClassMetadata数据结构(仅供参考)JVM中Metaspace的数据结构栈内存管理总

JVM成神路终章:深入死磕Java虚拟机序列总纲

先附上之前画的JVM全景架构图。  时光荏苒,时间一点一点地流逝,不知不觉中半载光阴便稍纵即逝,犹如白驹过隙。继之前的《并发编程系列》后,JVM系列的文章至此也画上了句号,与《并发编程》系列相同,列出总纲目录方便诸位翻阅。  在刚接触Java虚拟机时,JVM的一些常识认知,HotSpot虚拟机的“前世今生”以及Java虚拟机发展史上的一些趣事,作为了《JVM系列》的开篇:(一)《JVM成神路之初识虚拟机-探寻Java虚拟机的前世今生之秘》  紧接着,作为Java代码入口的类加载子系统出现在了我们的视野中,本篇中对于虚拟机的类加载机制,从类加载过程、类加载器、双亲委派模型、自定义类加载器以及打破