第三天 方法和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

深入LSM6DSL的FIFO连续模式:基于STM32和MEMS库的数据流高效处理指南

本文深入探讨了LSM6DSL的FIFO连续模式,结合STM32硬件平台和ST官方MEMS库,提供了高效的数据流处理方案。通过优化I2C通信时序、中断驱动设计以及动态ODR调整,实现低功耗数据采集与处理,显著提升嵌入式传感器应用的性能和续航能力。

weixin_30387799的博客 350

JVM方法区详解

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

勇心在馨 8083

AXI4协议之AXI4-Lite接口详解及实战

本文首先对AXI4总线协议进行了一个简单的介绍,然后使用vivado提供的模板创建了一个AXI4-Lite Master的接口,并生成了一个具有Master和Slave的代码实例,阅读该示例代码,进行修改后用于自己的项目。

高阶近似的博客 2万+

STorM BGC V1.31硬件+SimpleBGC固件:从零搭建三轴云台开发环境(Keil+JLink避坑指南)

本文详细介绍了如何从零搭建STorM BGC V1.31硬件+SimpleBGC固件的三轴云台开发环境,涵盖硬件连接、Keil+JLink开发工具配置、固件编译与烧录等关键步骤,并提供了常见问题的解决方案和调试技巧,帮助开发者快速上手三轴云台开发。

weixin_28693683的博客 381

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

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

从知识输入到知识输出 1747

计组实验5:cache大小测量与 cache line 大小测量

前言 今天做了实验5,通过 c 语言测 cache 参数。其实按理来说挺简单的,只是我们班没给代码,纯靠自己。听说别的班有给代码 emm 因为《深入理解计算机系统》这本书上面给的代码是 Linux 平台下的,而且需要一个 fcyc2 头文件,可以在 https://github.com/fabiensanglard/CpuCacheMountainViewer 这里找到。 ⚠ 我没有在 Linux 下试过课本上面的代码。。。 我是在 win10 下测试的。。。 所以 。。。 我并不确定我的代码是否正确。

AKGWSB 's blog 1万+

JVM之堆和方法区

JVM JAVA

qq_43649937的博客 1604

Matlab2018a崩溃解决的办法No sandbox or build area path

Matlab 2018a (No sandbox or build area path)出现崩溃后需要使用terminal进行如下操作: cd /home/david/MySoft/MATLAB/R2018a/bin/glnxa64 (你的matlab路径) mkdir exclude mv libfreetype* exclude/ 执行后图片如下: 如果你用的Windows系统,请手动按照上面步骤剔除了dll。 Matlab 2018a (No sandbox or build are

David Xiao 1万+

SXU—软件测试方法和技术-朱少民-第三部分 软件测试方法大题汇总-附考点和相关习题及解答

软件测试方法和技术-朱少民-第三部分 软件测试方法—-最少测试用例个数,强一般弱一般强健壮、边界值分析、ns流程图、白盒逻辑覆盖代码、等价类划分,逻辑组合(条件)覆盖,计算圈复杂度等—附考点和相关习题及解答

weixin_63597914的博客 2213

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

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

cp_number1的博客 320

OpenClaw实战系列10(完结篇):企业级应用实战案例——从0到1搭建智能客服系统

本文以一家跨境电商公司为例,从需求分析、系统设计、分步搭建到上线运营,完整呈现智能客服系统的落地全过程。所有配置命令和截图均来自实测环境,你可以直接复制使用。

PeterPan的博客 1306

JVM之方法执行和方法调用

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

weixin_40471676的博客 804

瑞芯微RK3588平台YOLOv8Pose模型RKNN部署与C++优化实战:从模型转换到高效推理的全流程指南-附源码

错误码 | 原因 | 解决方案 || -1001 | ONNX算子不支持 | 升级RKNN SDK至最新版 || -2003 | 量化校准数据不足 | 增加校准图片至500张 || -3005 | 输入尺寸不匹配 | 固定模型输入尺寸为640x640 || 资源消耗 | CPU 35% | NPU 90% |

m0_64661770的博客 990

NTscan扫描工具

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

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

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

猎人在吃肉 6991

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JVM方法区和堆中的Class对象

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

wit_cx的博客 2524

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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、付费专栏及课程。

余额充值