一、JVM包含三个内存区:栈内存、堆内存、方法区内存
二、注意点
(1)在MyEclipse中字体是红色的是一个类的名字,并且这个类除了我们自定义的类是JavaSE类库中自带的
(2)其实JavaSE类库中自带的类,例如:String.class\System.class,这些类的类名也是标识符
(3)只要是类名就一定是标识符
内存分析举例:
public class D29_{ public static void main(String[] args) { int a = 10; int b = 20; int retValue = sunInt(a,b); System.out.println(retValue); } public static int sumInt(int i ,int j) { int result = i + j; int num = 3; int retValue = divide(result,num); return retValue; } public static int divide(int x,int y) { int z = x/y; return z; } } 三、方法重载 1.以下代码不使用“方法重载机制“,不使用overload,分析存在的缺点 public class D29_{ public static void main(String[] args) { int result1 = sumInt2(1,2); System.out.println(result1); double result2 = sumDouble(1.0,2.0); System.out.println(result2); long result3 = sumLong(1L,2L); System.out.println(result3); } public static int sumInt2(int a, int b) { return a+b; } public static double sumDouble(double a,double b) { return a+b; } public static long sumLong(long a ,long b) { return a+b; } }
缺点:(1)上面定义的方法功能虽然都不相同,但是功能都是类似的,就是求和,对于我们来说三种方法名字太多不好记,调用不方便,记忆难(2)不美观
需求机制:功能虽然不同,但是功能相似的时候,可以使用这些方法的时候,就想在使用同一种方法一样,后民安编写代码方便,也不需要记忆过多方法名,代码美观,这种机制就是方法重载(overload)
2.改写代码,具体解析下次更新再说。
public class D29_{ public static void main(String[] args) { //调用方法的时候像在使用一个方法一样 //参数的类型不同,对应调用的方法不同 //此时区分方法不再依靠方法名依据的是参数的数据类型 System.out.println(sum(2,7)); System.out.println(sum(2.0,7.0)); System.out.println(sum(2L,7L)); } public static int sum(int a,int b) { return a+b; } public static double sum(double a ,double b) { return a+b; } public static long sum(long a,long b) { return a+b; } }
四、源码:
D29_method_overload_and_perform_memory_analysis.java
地址:
https://github.com/ruigege66/Java/blob/master/D29_method_overload_and_perform_memory_analysis.java
2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
Java连载29-方法执行内存分析、方法重载的更多相关文章
-
Java连载34-对象的内存分析、对象之间建立关系
一.内存分析 代码:引用可以是局部变量也可以是成员变量 public class Test1{ public static void main(String[] args){ User u = new ...
-
Linux下java进程CPU占用率高分析方法
Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...
-
Linux下java进程CPU占用率高分析方法(一)
Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...
-
(转)Linux下java进程CPU占用率高-分析方法
Linux下java进程CPU占用率高-分析方法 原文:http://itindex.net/detail/47420-linux-java-%E8%BF%9B%E7%A8%8B?utm_source ...
-
乐字节Java构造器(构造方法|构造函数)、方法与内存分析
一. 构造器(构造方法|构造函数) 在创建对象时(new),必会调用一个特殊的方法,这个方法是初始化对象信息的为new服务的.这个方法称为“构造器” 使用 new + 构造方法创建一个新的对象. 构造 ...
-
1.4(java学习笔记) 面向对象内存分析
首先介绍几个概念 栈: 1.栈是方法执行的内存模型,每调用一个方法都会创建一个栈帧. 2.jvm为每个线程创建一个栈,存放方法相关信息,栈属于线程私有不共享. 3.栈由系统自动分配,是连续的内存空 ...
-
Java创建对象时的简单内存分析
简单创建对象的内存分析 主程序: 1 public class Application { 2 public static void main(String[] args) { 3 Animal do ...
-
Linux下java进程CPU占用率高-分析方法
今天登陆同事的一台gateway 开始以为hive环境登陆不了了,仔细一看看了下是因为机器很卡,我每次等几秒没登陆就ctrl+c了,看了下是有个java进程cpu:340.4% mem:14.6% ...
-
Redis内存分析方法
一般会采用 bgsave 生成 dump.rdb 文件,再结合 redis-rdb-tools 和 sqlite 来进行静态分析. BGSAVE:在后台异步(Asynchronously)保存当前数据 ...
随机推荐
-
获取request的变量
由于IP代码未实现,先注释掉. package com.helloweenvsfei.servlet; import java.io.IOException; import java.io.Print ...
-
Swift - 使用网格(UICollectionView)进行流布局
一.网格UICollectionView最典型的例子是iBooks.其主要属性如下: 1,layout 该属性表示布局方式,有Flow.Custom两种布局方式.默认是Flow流式布局. 2,Acce ...
-
Java的引用c++的引用和C指针的区别
Java的引用本质上就是C中的指针,而c++的引用则完全不同:有一个类 class Point { int x; int y;} 同样的一个Point p; 在Java中p表示一个引用,它等同于C语言 ...
-
python作业设计:输入用户名密码,认证成功后显示欢迎信息,输错三次后锁定
作业需求: 1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定实现思路: 1.判断用户是否在黑名单,如果在黑名单提示账号锁定. 2.判断用户是否存在,如果不存在提示账号不存在. 3.判 ...
-
Chrome插件汇总
Chrome浏览器可以增加很多插件,帮助我们更方便地使用. 1 重新定位新标签页 名字:Infinity.crx 官网:http://www.infinitynewtab.com/ 效果图如下: ...
-
BZOJ3297: [USACO2011 Open]forgot DP+字符串
Description 发生了这么多,贝茜已经忘记了她cowtube密码.然而,她记得一些有用的信息.首先,她记得她的密码(记为变 量P)长度为L(1 <= L<=1,000)字符串,并可 ...
-
NAT功能测试
一.测试目标和功能: 1.内网设备可以访问外网的IP: 2.外网PC可以登录内网设备的telnet. 二.设备硬件结构 1.3135相当于交换机: 2.eth0.netra和业务网口通过内部端口连接3 ...
-
LightGBM的算法介绍
LightGBM算法的特别之处 自从微软推出了LightGBM,其在工业界表现的越来越好,很多比赛的Top选手也掏出LightGBM上分.所以,本文介绍下LightGBM的特别之处. LightGBM ...
-
HDOJ 5693 D Game
众所周知,度度熊喜欢的字符只有两个:B 和D. 今天,它发明了一个游戏:D游戏. 度度熊的英文并不是很高明,所以这里的D,没什么高深的含义,只是代指等差数列[(等差数列百科)](http://baik ...
-
day06_03 购物车讲解01
1.0 思路 1.1 列表嵌套 # name1 = ['mac','book','bike','kindle'] a = [[1,2,3],'alex',(2,3,4)] print(a[0]) #& ...