第三天 方法和jvm

JVM源码剖析之registerNatives方法 在Java类库中很多类都有一个registerNatives的native方法,并且写在static静态代码块中进行初始化调用,有不少的读者应该会对这个方法感兴趣,但是此方法是一个native方法,让不少的读者望而却步,所以笔者写在这一篇关于registerNatives方法的文章~ 阅读详情

                                                 第三天

1.方法

     注意事项:方法可以嵌套调用,不可以嵌套定义

                       方法自己调用自己(递归)

                      同一个类中不能出现重复的方法

      方法的好处:1.提高了代码的复用性

                            2.提高了代码的封装性

                            3.有利于代码的维护

1.2方法的定义:

        1.返回值类型(int)必须和返回值(int c)类型一致,无返回值时,返回值类型为void;

        2.参数列表为形式参数,调用方法时输入实际参数

        3.return,有返回值时必须写return,无返回值时,可写(代表提前结束方法)可不写

1.3方法的分类:

        无参数无返回值                方法的调用: 直接调用 

        有参数无返回值                方法的调用: 直接调用 

        无参数有返回值                方法的调用:赋值调用和打印调用

        有参有返回值                    方法的调用: 赋值调用和打印调用

有返回值可以赋值调用和打印调用(可直接调用但无意义),无返回值得不能打印调用和赋值调用;

1.4方法的调用:

       直接调用   赋值调用    打印调用

       直接调用:方法名(参数列表);

       赋值调用:数据类型  变量 =  方法名(参数列表);

       打印调用:System.out.println(方法名(参数列表));

1.3重载(method overload)

      在同一个类中,多个方法存在方法名一样,参数列表不同,与返回值类型无关的多个方法之间的关系,叫做方法的重载.

      好处:多个相同逻辑的方法避免了起很多名字,只需更改参数列就行

2.jvm

jdk开发者工具包>jre java程序运行环境>jvm虚拟机

java程序执行的容器(jvm是容器)

系统会为jvm划分5块内存空间:

栈内存    堆内存     方法区    本地方法区    程序计数器

栈区:方法执行进栈,变量定义在栈内存中(方法中) ,栈内存管理特点:先进后出,每个方法在栈内存中开辟的内存空间叫栈针

堆区:对储存引用类型数据(类,接口,枚举,数组)

方法区:储存字节码文件形成的对象及常量和静态内容

本地方法区:java底层依赖的c语言内容

程序计数器:程序执行流程控制

聊聊JVM虚方法表和方法调用 作者:小牛呼噜噜 |计算机内功、源码解析、科技故事、项目实战、面试八股等更多硬核文章,首发于公众号「大家好,我是呼噜噜,今天我们来填坑,在之前的一篇文章中我们遗留了一个问题:当父类引用指向子类对象时,JVM是如何知晓调用的是哪个子类的方法? 阅读详情

相关推荐

JVM堆和方法区是怎样的关系?

一个Java源文件中的类,接口,编译后产生一个字节码文件,而Java中的字节码需要数据支持,通常这种数据会很大,以至于不能直接存到字节码里,换另一种方式,可以存到常量池,这个字节码包含了指向常量池的引用,在动态链接的时候会用到运行时常量池。这回懂了吧,方法区在逻辑上是在堆里的,但是1.8之后在物理上各个虚拟机基本都给划分出来了,并且《Java虚拟机规范》也趋向于将两个区分开来(所以大家背面经的时候是分开背的,hhhhh,混淆的小伙伴们在看完这篇之后就懂一些了)它们不是一个概念,存放的位置是不同的。...

流楚丶格念的博客 2616

JVM学习第三天——JVM内存模型

JVM需要使用计算机的内存,Java程序运行中所处理的对象或者算法都会使用JVM的内存空间,JVM将内存区划分为5块,JVM内存模型定义了Java程序在运行时如何存储和访问数据。它包括堆(Heap)、方法区程序计数器虚拟机栈(VM Stack)和本地方法栈这样的结构称之为JVM内存模型。

qq_74011163的博客 1747

Gradle进阶:4:结合Sonarqube进行代码审查

作为代码质量检查的流行工具,比如Sonarqube能够检查代码的“七宗罪”,跟代码结合起来能够更好地提高代码的质量,这篇文章将会介绍如何结合gradle和sonarqube对代码质量与测试覆盖率进行分析。

知行合一 止于至善 1万+

JVM方法区详解

线程共享角度来分析运行时数据区 栈,堆,方法区的交互

勇心在馨 8083

RTL优化与PPA分析:数字电路设计的关键技术

在数字集成电路设计中,RTL(寄存器传输级)优化是提升芯片性能、降低功耗和减小面积的核心技术。通过PPA(Power-Performance-Area)指标的平衡,工程师可以在不同时序约束下实现设计的最优化。本文基于Synopsys Design Compiler和开源工具Yosys的实验数据,展示了RTL优化在算术单元和控制逻辑中的显著效果,特别是在乘法器和除法器等复杂运算模块中。文章还探讨了AI辅助工具在RTL优化中的应用潜力,为数字电路设计提供了实用的技术参考和工程实践建议。

weixin_42186387的博客 621

告别Modern Standby噩梦:Win11睡眠断网冻结的根源剖析与S3睡眠回归实战

本文深入剖析了Windows 11中Modern Standby(现代待机)模式导致睡眠后断网、系统冻结等问题的根源,指出其与硬件驱动、后台活动的兼容性矛盾。文章提供了通过修改注册表键值强制系统回归稳定S3睡眠状态的详细实战步骤,帮助用户彻底解决睡眠故障,实现可靠的远程访问与挂机任务。

weixin_29210727的博客 609

JVM——JVM 是如何执行方法调用的?

JVM——JVM 是如何执行方法调用的?

从知识输入到知识输出 1747

Android Profiler 帧率优化实战与性能调优

本文详细介绍了使用Android Profiler进行帧率优化与性能调优的实战方法。通过分析主线程状态、FPS曲线和渲染阶段耗时,精准定位卡顿根源,并提供减少过度绘制、优化绘制命令及改善资源使用的具体策略。文章结合电商、游戏等真实案例,帮助开发者有效解决卡顿问题,提升应用流畅度。

palm99的专栏 537

JVM之堆和方法区

JVM JAVA

qq_43649937的博客 1604

西电微原课设——矩阵式键盘数字密码锁设计

内容要求:根据设定好的密码,采用4x4矩阵键盘实现密码的输入功能。当密码输入正确之后,锁就打开(绿灯亮),10秒之后,锁自动关闭(红灯亮);如果连续输入三次密码不正确,就锁定按键5秒钟,同时发出报警(黄灯闪),5秒后,解除按键锁定,恢复密码输入。...

Polaris的博客 1万+

OpenClaw实战四|内容创作全流程AI助理:自动撰稿+智能剪辑+多平台发布,一人顶一个内容团队

AI替代的是「写稿、剪辑、发布」这种流水线工作,真正让你解放出来,去做选题、创意、人设、变现这些高价值的事。OpenClaw这套内容创作全流程AI助理,最大的价值不是「帮你发内容」,而是让一个人,拥有一个内容团队的产能。不管是个人博主、小团队,还是企业新媒体,都能用零代码的方式,快速搭建属于自己的自动化内容矩阵。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 590

小白学习Java第三天,JVM的内存划分及方法中参数的传递

一、JVM的内存划分 内存是计算机中的重要原件,临时存储区域,作用是运行程序。我们编写的程序是存放在硬盘中的,在硬盘中的程 序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。 为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式,共分为5部分: 栈:存储的都是方法中的局部变量,方法...

cp_number1的博客 320

【即插即用模块】Transformer篇 | CVPR 2025 | D2T:双域特征融合,完美适配缺陷检测/小目标检测和分割等频域细节敏感的任务!

本文提出了一种基于小波和原型增强的双域Transformer(WPFormer)用于像素级表面缺陷检测。该模型通过Dual-domain Transformer (D2T)模块融合频域和空间域特征:小波增强交叉注意力(WCA)分解高低频特征并加权平衡,增强缺陷细节捕捉;原型引导注意力(PCA)生成全局原型向量强化关键信息聚合。实验表明,该模块在缺陷检测任务中性能优于现有方法,通过频域细节增强和全局依赖建模有效提升了复杂场景下的检测效果。代码已开源,适用于对频域敏感的目标检测和分割任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1374

JVM之方法执行和方法调用

JVM之方法执行和方法调用Java虚拟机栈二级目录三级目录 Java虚拟机栈 二级目录 三级目录

weixin_40471676的博客 804

北斗导航 | SPP、RTK、RTD、PPP-RTK、PPP算法原理,公式及完整matlab代码

开发参考:SPP适合入门学习GNSS定位原理和最小二乘。RTK是工程高精度定位主流方案,但依赖基站。PPP适合无基站区域的广域高精度应用。PPP-RTK是融合两者优点的新一代技术,但系统复杂度最高。· 代码资源:raPPPid(VieVS PPP)是功能完整的MATLAB开源PPP工具箱,支持多系统PPP-AR。MATLAB GPS Toolbox 提供从SPP到PPP的完整功能实现。· 实际应用:农业自动驾驶、无人机航测通常使用网络RTK;大地测量、地壳形变监测常采用PPP事后处理;

尘世冰封的专栏 829

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JVM之 方法区 和 堆 的总结(学习笔记)

1、方法区(Method Area),又称永久代(Permanent Generation),又称非堆区(Non-Heap space) 方法区,又称永久代(Permanent Generation),常称为PermGen,位于非堆空间,又称非堆区(Non-Heap space)。 方法区是被所有线程共享。 所有字段和方法字节码,以及一些特殊方法如构造函数,接口代码也在此定义。 简单说,所有定...

猎人在吃肉 6991

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JVM方法区和堆中的Class对象

JVM方法区和堆中的Class对象 Class对象是存放在堆区的,不是方法区,这点很多人容易犯错。类的元数据(元数据并不是类的Class对象!Class对象是加载的最终产品,类的方法代码,变量名,方法名,访问权限,返回值等等都是在方法区的)才是存在方法区的。 方法区 在一个JVM实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。 JVM实现的设计者决定了类型信息的内部表现形式。如,多字节变量在类文件是以big

wit_cx的博客 2524

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java JVM 方法区和堆的区别

JVM 中的 方法区(Method Area)和 堆(Heap)是两个重要的内存区域,它们在存储的内容、用途以及内存管理方面有很大的区别。下面是它们的详细对比:方法区是 JVM 中用于存储类信息、常量池、静态变量以及代码等数据的区域。具体来说,方法区存储的是以下内容:堆是 JVM 用来存放 所有对象实例 和 数组 的内存区域。堆中的内容主要是:总结:方法区在 JVM 启动时加载,并且它的生命周期基本与 JVM 相同。当一个类被加载时,它的相关数据(如类信息、常量池等)会存放在方法区中,直到 JVM 退出时,

qq_35082497的博客 873

JVM 堆栈分析工具和方法

一、通过windows版JDK自带的图形化工具 1.工具jvisualvm.exe 1.1.1启动脚本配置 tp-provider的start.sh: pid=`ps -ef|grep task-platform-provider-*.jar|grep -v "grep"|awk '{print $2}'` if [ "$pid" = "" ] ; then echo "provider is starting" nohup java -agentlib:jd...

CUITAO2305532402的博客 3490

Java的JVM运行时栈结构和方法调用详解

详细介绍了Java 的JVM的运行时栈结构,以及和方法调用详解,包括解析调用和分派调用。

终生学习践行者 4000

JVM中的方法调用

转载请注明链接: JVM中的方法调用 版本:2018/9/9-1(23:59) JVM中的方法调用 问题汇总 可变长参数的方法重载 重载 重写 静态绑定和动态绑定 调用指令 符号引用 知识扩展 问题汇总 可变长参数方法的重载 官方文档建议避免重载可变长参数方法 什么是重载? 如何绕开多个方法名字相同、参数类型相同的限制? 当一个类(具有多个方法,方法名相同...

feather(猎羽) 778

本地方法栈、JVM栈、本地内存和JVM Heap的区别与关系

在Java出现之前,像C/C++这样的编译型语言写出来的代码都是编译为机器码(machine code)后直接运行的,machine code其实就是native code,直接和操作系统交互。 对于内存,主要分三部分: 1)存储可执行代码(冯·诺依曼的存储程序的思想),即编译后的machine code; 2)用来保存代码执行时用到的局部变量,即stack; 3)代码执行时,动态找操作系统申请(最终要归还给操作系统)的heap; 对于Heap的分配和归还都是由程序代码手工维护的。如下图所示,写一段C++

Hopefully Sky的博客 3390

《隔离十四天》系列 -第三天 -理解JVM以及JVM的内存结构

昨天说到了线程的问题,线程中的synchronized关键字是基于JVM层面实现的,所以今天就来说说JVM, JVM是干嘛的呢,请看下图, 图片来自百度百科。 我最烦恼的就是理解这些概念,所以说下我的理解。 jvm就是将我们所写的代码解析成机器可以识别的语言。举个例子来说,比如我们跟老外聊天(不懂中文的老外哈), 我说:嘿!你是煞笔! 老外说:Oh,Young man,you are my br...

qq_40126996的博客 181

详解一下JVM诊断方法和其工具的使用

JVM(Java虚拟机)是Java程序运行的基础环境,它提供了内存管理、线程管理和性能监控等功能。吃透JVM诊断方法,可以帮助开发者更有效地解决Java应用在运行时遇到的问题。通过这些方法,你可以更深入地了解JVM的内部工作机制,从而更有效地诊断和解决Java应用中的问题。下面一一来讲解使用方法。

s44359487yad的博客 1217
上一篇: javase基础第二天----条件和循环语句
下一篇: 第四天 一维数组和二维数组
java_xiaoguo
博客等级 码龄7年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值