java什么是局部与全局变量_Java中的局部VS全局变量
我以为我了解了Java中局部变量和全局变量之间的区别,直到今天看到一个示例。在这段代码中,我们尝试将元素添加到方法的链接列表中:
public void addDataPacket(DataPacket data){
PacketQueueElement newElement = new PacketQueueElement(data);
if(firstElement != null){
lastElement.setNextElement(newElement);
lastElement = newElement;
}
else{
firstElement = newElement;
lastElement = newElement;
}
}
我不明白的是,为什么在关闭方法后newElement不会消失?因为这是局部变量,并且未在任何地方的类中定义。这是此类的完整代码:
public class PacketQueue {
/** Das erste Element in der Warteschlange */
private PacketQueueElement firstElement;
/** Das letzte Element in der Warteschlange. */
private PacketQueueElement lastElement;
/**
* Instanziert eine neue Warteschlange.
*/
public PacketQueue(){
this.firstElement = null;
this.lastElement = null;
}
/**
* Fuegt ein neues Paket ans Ende der Warteschlange an.
*
* @param data Das neue Paket
*/
public void addDataPacket(DataPacket data){
PacketQueueElement newElement = new PacketQueueElement(data);
if(firstElement != null){
lastElement.setNextElement(newElement);
lastElement = newElement;
}
else{
firstElement = newElement;
lastElement = newElement;
}
}
/**
* Entfernt das erste Element der Warteschlange und gibt es zurueck.
*
* @return Das erste Element in der Warteschlange
*/
public PacketQueueElement getAndRemoveFirstElement(){
PacketQueueElement element = this.firstElement;
this.firstElement = element.getNextElement();
return element;
}
/**
* Gibt das erste Paket aus dem ersten Element zurueck.
*
* @return Das erste Paket
*/
public DataPacket getFirstDataPacket(){
return this.firstElement.getData();
}
/**
* Entfernt das erste Paket der Warteschlange und gibt es zurueck.
*
* @return Das erste Paket in der Warteschlange
*/
public DataPacket getAndRemoveFirstDataPacket(){
return this.getAndRemoveFirstElement().getData();
}
/**
* Gibt das erste Element der Warteschlange zurueck
*
* @return Das erste Element
*/
public PacketQueueElement getFirstElement(){
return this.firstElement;
}
/**
* Ueberprueft, ob die Wartschlange leer ist.
*
* @return true, wenn sie leer ist
*/
public boolean isEmpty(){
if(firstElement == null){
return true;
}
else{
return false;
}
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
public String toString(){
PacketQueueElement element = this.firstElement;
String s = "";
while(element != null){
s += element + "\n";
element = element.getNextElement();
}
return s;
}
}
先感谢您
java什么是局部与全局变量_Java中的局部VS全局变量相关推荐
- java 私有全局变量_java中的全局变量
知识点,转自网上 首先,java中是没有全局变量这个概念的,java程序中不能像C++那样在类外定义全局变量,因为JAVA当初出现的初衷就是为了安全性和跨平台性, 所以去掉了类似C.C++中的全局变量 ...
- java 全局变量_Javascript中的局部变量、全局变量的详解与var、let的使用区别
前言 Javascript中的变量定义方式有以下三种方式: 1.直接定义变量,var与let均不写: a = 10; 2.使用var关键字定义变量 var a = 10; 3.使用let关键字定义变量 ...
- java什么是栈和堆_JAVA中的栈和堆
JAVA在程序运行时,在内存中划分5片空间进行数据的存储.分别是:1:寄存器.2:本地方法区.3:方法区.4:栈.5:堆. 基本,栈stack和堆heap这两个概念很重要,不了解清楚,后面就不用学了. ...
- c语言define定义全局变量,webpack中使用DefinePlugin定义全局变量
webpack中使用DefinePlugin来传递构建的环境变量给源代码使用 最近在思考如何提供一种前后端开发功能测试既高效又安全的方案,因为对于我平时的项目是前后端同时进行的,后端我已经有了完备的权 ...
- java 全局变量线程安全_Java中的线程安全全局变量
我试图了解 java中的线程安全机制,我需要一些帮助.我上课了: public class ThreadSafe { private Executor executor = new Scheduled ...
- java设置全局变量_java中如何实现全局变量
有时一个项目中会多处涉及到路径,当你把这个项目移植到别的电脑上时就要一一修改这些路径,过程十分繁琐,所以一个全局变量在这时是必不可少的. 遗憾的是java等oo语言并没有全局变量,这怎么办呢?下面介绍 ...
- java 多线程全局变量_Java多线程操作局部变量与全局变量
在这篇文章里,我们首先阐述什么是同步,不同步有什么问题,然后讨论可以采取哪些措施控制同步,接下来我们会仿照回顾网络通信时那样,构建一个服务器端的"线程池",JDK为我们提供了一个很 ...
- java常量能改变值吗_java中的常量和变量
变量 含义:在程序过程中变量的值会发生变化,直白来说就是用来存储可变化的数据 变量的好处:使内存空间的得到重复利用 举个例子: 1 System.out.println(10);2 System.ou ...
- java键盘输入字符串静态变量_Java 中为什么样在静态方法中可以调用的方法、可以使用的成员变量必须是静态的?老师说字符串常量和静态变量放在data segment中...
在上一篇文章中,小编为您详细介绍了关于<C字符串以'\0'结尾的问题?为什么样C语言字符串常量可以当做指针>相关知识.本篇中小编将再为您讲解标题Java 中为什么样在静态方法中可以调用的方 ...
最新文章
- CentOS 命令提示符颜色及样式详解
- 性能测试中传——lr理论基础(四)
- c++ 构造函数析构函数 数据安全_C++知识点 16:构造函数和析构函数的语法
- VB6 通过winsock控件数组实现客户端和服务器多对一通信
- python有什么隐藏功能_Python的隐藏功能
- 大数据分析实战-信用卡欺诈检测
- java配置lib_Java环境配置
- 每日小记 2017.4.24
- 【联合仿真】电机与机械臂的联合simulink仿真
- 01.redis初识
- avast注册号|好用的avast注册号|没过期avast注册号
- caffe 连接 matlab2016b
- 表单进阶 单选框 多选框
- 计算机用三角函数时如何用弧度制,弧度制 三角函数的简单应用
- DNA非编码区突变,DNA外显子突变,DNA内含子突变的区别,什么是DNA突变,什么是基因突变
- vc控制计算机关机,192上位机VC MFC实现电脑的重启关机注销功能
- WPF 矢量图形编辑软件- Inkscape
- 数据库(My SQL 、SQL Server)的数据类型
- 将小米SoundMove 无缝接入 ChatGPT
- yolact模型DCNv2模块编译错误解决方法