Java非静态成员变量之死循环(详解)
作者:bateman6988 发布时间:2022-04-15 09:18:20
标签:java,非静态成员变量,死循环
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实现MD5加密的方法。分享给大家供大家参考,具体如下:private String getMD5Str(String
- 前言前一篇文章我们熟悉了HikariCP连接池,也了解到它的性能很高,今天我们讲一下另一款比较受欢迎的连接池:Druid,这是阿里开源的一款
- 本文实例讲述了Android AutoCompleteTextView控件基本用法。分享给大家供大家参考,具体如下:当输入部分内容之后会有相
- 前天在做批量数据导入新增时,要对数据进行有效性判断,其中还要去除重复,如果没出现linq的话可能会新声明一个临时对象集合,然后遍历原始数据判
- 大家好,我是指北君。Java的 record 关键字是Java 14中引入的一个新的语义特性。record 对于创建小型不可变的对象非常有用
- 一、系统介绍1.开发环境开发工具:Eclipse2021JDK版本:jdk1.8Mysql版本:8.0.132.技术选型Java+Swing
- 废话不多说了,一切尽在代码中,具体代码如下所示:界面<?xml version="1.0" encoding=&q
- 开发工具下载:Tomcat下载:wget http://learning.happymmall.com/tomcat/apache-tomc
- 验证码及它的作用验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是
- 写在前面,在笔者完成这个demo的时候,笔者发现现在大家已经不用Ajax来完成联级菜单了,实际上笔者这个demo也并不是为了完成这个,笔者主
- 在jdk文档中对RandomAccess接口的定义如下: public interface RandomAccess下面是jdk
- springboot URL带有斜杠的转义字符百分之2F导致的400错误今天项目上出现一个问题,是前端的GET请求url中带有路径参数,这个
- 本文实例为大家分享了Java分形绘制山脉模型的具体代码,供大家参考,具体内容如下如何绘制一个山脉构思设计任意选取三个点,选取一个范围和一个比
- AbstractAutowireCapableBeanFactory#applyMergedBeanDefinitionPostProces
- 本文实例讲述了C#实现对Json字符串处理方法,分享给大家供大家参考。具体分析如下:一般对于web应用开发人员来说对Json字符串都会很熟悉
- 引言 基于生成图片实现了一个手机号转图片的需求。 内容也很简单,直接
- 在处理网络请求时,有一部分功能是需要抽出来统一处理的,与业务隔开。登录校验可以利用spring mvc的 * Interceptor,实现H
- 前言最近在阅读 .NET Threadpool starvation, and how queuing makes it worse 这篇博
- 深拷贝是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象
- 本文较为详细的分析了vc提示unexpected end of file found的原因。分享给大家供大家参考。具体分析如下:预编译出错,