《java中局部变量和成员变量的区别》
class Car
{
String color;
int number; void run()
{
System.out.println(color+"::"+number);
}
} class CarDemo
{
public static void main(String[] agrs)
{
Car c = new Car();//c是类类型的变量。
//c.color = "blue";
//c.number = 4;
c.run();
}
} /*
类与对象的关系:
类:对事物的描述。需要体现属性和行为。
对象:该类事物创建的示例(实体),通过该对象调用具有的属性和行为。 成员变量和局部变量的区别:
区别一:定义的位置不同。
(1)成员变量定义在类中。
(2)局部变量定义在方法中。 区别二:在内存中的位置不同。
(1)成员变量存储在堆内存的对象中。
(2)局部变量存储在栈内存的方法中。 区别三:声明周期不同:
(1)成员变量随着对象的出现而出现,随着对象的消失而消失。 对区别三第(1)条的解释说明:
class Car
{
//事物的属性:
String color;
int number; //事物行为:
void run()
{
System.out.println(color+"::"+number);
} /*
说明:这个run方法运行的时候,调用的不是Car这个类里面定义的那个
color和number,而是内存中的堆内存中的对象的color和number。
*/
}
class CarDemo
{
public static void main(String[] agrs)
{
Car c = new Car();
c.color = "red";
c.number = ;
c.run();
}
}
()局部变量是随着方法的运行而出现,随着方法的弹栈而消失。 区别四:初始化不同:
()成员变量因为在堆内存中,所以有默认的初始化值。
()局部变量没有默认初始化值,必须初始化后才可以使用。
/*
有一个问题是:Java为什么不把局部变量也初始化呢?
原因是一旦Java把局部变量也初始化了,此时局部变量
就在内存中占据空间了。Java的机制是什么时候用到了
局部变量,什么时候再在内存中为局部变量开辟空间。 //如果写成如下:则当run方法进栈后,会在内存中为局部变量
//x开辟空间。
void show()
{
int x = 4;
} //如果写成如下:则当run方法进栈后,不会在内存中为局部变量
//x开辟空间。
void show()
{
int x;
}
*/ */
《java中局部变量和成员变量的区别》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- apk瘦身(包大小优化)
最近太忙好久没有写随笔,放假才有空写写随笔. 最近在项目中一直在做包大小优化 随着业务需求的增加,包大小是忍不住的往上涨 为了提高应用市场下载转化率,一直在优化包大小 首先 分析你的apk中占比的主要 ...
- 资源 之 4.4 Resource通配符路径(拾贰)
4.4.1 使用路径通配符加载Resource 前面介绍的资源路径都是非常简单的一个路径匹配一个资源,Spring还提供了一种更强大的Ant模式通配符匹配,从能一个路径匹配一批资源. Ant路径通配 ...
- C#程序以管理员权限运行【我采用了第二种,比较好用】
在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录.系统注册表 ...
- java复用和传参
java复用和传参的三种方法总结: (1) 直接在一个类中调用函数 : 1 package test1; 2 3 public class a 4 { 5 public static void get ...
- 二级菜单jquery
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 联系 管理 Hibernate4+Spring JPA+SpringMVC+Volecity搭建web应用(三)
hibernate注解实体类示例 package cn.bdqn.smvc.entity; import java.io.Serializable; import javax.persistence. ...
- Linux服务器下用svn创建多个项目
(1): 创建svn仓库路径 mkdir -p /opt/svn/project1 mkdir -p /opt/svn/project2 svnadm ...
- hdu----149850 years, 50 colors(最小覆盖点)
50 years, 50 colors Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 转 数据库中的 date datetime timestamp的区别
转 数据库中的 date datetime timestamp的区别 DATETIME, DATE和TIMESTAMP类型是相关的.本文描述他们的特征,他们是如何类似的而又不同的. DATETIME类 ...
- 服务订单SO创建
FUNCTION Z_SD_SALESORDER_CREATE. *"------------------------------------------------------------ ...