Java非静态成员变量之死循环(详解)
作者:bateman6988 时间:2022-04-15 09:18:20
1.非静态成员变量
当成员变量为非静态成员变量且对当前类进行实例化时,将会产生死循环
例子:
public class ConstructorCls {
private ConstructorCls obj=new ConstructorCls();
}
public class TestC {
public static void main(String[] args) {
ConstructorCls c =new ConstructorCls();
}
}
结果:
Exception in thread "main" java.lang.StackOverflowError
at com.ConstructorCls.<init>(ConstructorCls.java:7)
at com.ConstructorCls.<init>(ConstructorCls.java:7)
at com.ConstructorCls.<init>(ConstructorCls.java:7)
分析:当new ConstrutorCls() 会对ConstrutorCls进行实例 化,后然对这个类的成员obj进行初始化,obj又是对自已所在类进行实列化,这一样一直下去,直到StackOverflowError
2.静态成员变量
静态成员变量是属于类的,不会出现死循环
例如:
public class ConstructorCls {
private static ConstructorCls obj=new ConstructorCls();
}
public class TestC {
public static void main(String[] args) {
ConstructorCls c =new ConstructorCls();
}
}
分析:当new ConstructorCls()时,首先将ConstructorCls加截到JVM中,在加载时对该类的静态成员进行初始化(仅加载时初始化一次),初始化obj对像,new 一个ConstructorCls, 这里的一个关键点 是这个静态成员是属于类的,并不属于某一个实例对像,所以不会产生死循环。
如果大家想了解更多游戏活动与游戏攻略,请持续关注本站,本站小编将在第一时间为大家带来最好看、最好玩、最新鲜的游戏资讯。更多精彩内容,尽在jb51游戏频道!
来源:http://www.cnblogs.com/bateman6988/archive/2017/09/21/7571589.html
标签:java,非静态成员变量,死循环
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
java实现字符串四则运算公式解析工具类的方法
2021-11-03 09:22:23
C#实现基于Base64的加密解密类实例
2023-02-09 19:35:57
Java传入用户名和密码并自动提交表单实现登录到其他系统的实例代码
2023-09-20 00:40:46
intellij idea修改maven配置时总是恢复默认配置的解决方法idea版本(2020.2.x)
2023-06-30 23:56:10
![](https://img.aspxhome.com/file/2023/5/89585_0s.png)
java中struts2实现简单的文件上传与下载
2022-12-23 22:53:21
UGUI绘制多点连续的平滑曲线
2022-01-16 06:22:45
android视频截屏&手机录屏实现代码
2022-12-10 15:20:31
![](https://img.aspxhome.com/file/2023/7/87537_0s.png)
android仿微信聊天界面 语音录制功能
2022-09-21 17:55:08
![](https://img.aspxhome.com/file/2023/9/120159_0s.jpg)
SpringBoot自动装配原理详解
2023-07-03 05:49:08
Gradle:修改默认的Build配置文件名方式
2023-11-28 20:18:01
![](https://img.aspxhome.com/file/2023/7/60617_0s.png)
详解Java编程的Observer观察者设计模式
2023-11-10 04:06:07
java加载properties文件的六种方法总结
2023-09-20 05:24:54
![](https://img.aspxhome.com/file/2023/9/64809_0s.png)
浅谈Java之Map 按值排序 (Map sort by value)
2021-06-20 01:23:10
C#图像处理之边缘检测(Sobel)的方法
2022-05-12 02:05:50
Android进阶Handler应用线上卡顿监控详解
2022-12-21 11:31:00
![](https://img.aspxhome.com/file/2023/6/90116_0s.png)
C语言与C++中关于字符串使用的比较
2022-01-22 01:30:37
java selenium使用浏览器调试工具实现方法
2023-07-27 04:04:22
![](https://img.aspxhome.com/file/2023/7/57897_0s.gif)
详解java中String、StringBuilder、StringBuffer的区别
2023-06-17 06:03:23
关于SpringBoot中controller参数校验的使用
2023-02-24 04:24:10
![](https://img.aspxhome.com/file/2023/3/64063_0s.png)
android开发基础教程—SharedPreferences读写
2022-11-30 08:07:16