java 无限递归的构造器实例详解


在一些情况下,程序可导致构造器进行无限递归,如:

 public class ConstrucorRecursion {
 {
  ConstrucorRecursion rc = new ConstrucorRecursion();
 }
 public ConstrucorRecursion()
  { 
   System.out.println("程序执行无参数的构造器");
  }
 public static void main(String[] args)
 {
  ConstrucorRecursion rc = new ConstrucorRecursion();
 }
}


 

public class InstanceTest
{
  private String name;
  //持有当前类的实例
  private InstanceTest instance;
  //定义一个无参数的构造器
  public InstanceTest()
  {
   }
  //定义有参数的构造器
  public InstanceTest(String name)
  {
    //调用无参数的构造器初始化intance实例
    instance = new InstanceTest();
    instance.name = name;
  }
  //重写toString()方法
  public String toString()
  {
   return "InstanceTest[instance="+ instance + "]";
   }
  public static void main(String[] args)
  {
   InstanceTest in = new InstanceTest();
   InstanceTest in2 = new InstanceTest("测试name");
   //让两个对象相互引用
   in.instance = in2;
   in2.instance = in;
   System.out.println(in);
   System.out.println(in2);
  }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索递归
, 实例
, static
, 程序
, 参数
new
递归算法经典实例、java递归算法经典实例、递归函数详解、递归算法详解、递归调用详解,以便于您获取更多的相关知识。

时间: 2024-10-24 01:10:30

java 无限递归的构造器实例详解的相关文章

Java Web请求与响应实例详解_java

Servlet最主要作用就是处理客户端请求并作出回应,为此,针对每次请求,Web容器在调用service()之前都会创建两个对象,分别是HttpServletRequest和HttpServletResponse.其中HttpServletRequest封装HTTP请求消息,HttpServletResponse封装HTTP响应消息.需要注意的是,Web服务器运行过程中,每个Servlet都会只创建一个实例对象,不过每次请求都会调用Servlet实例的service(ServletRequest

Java编程之文件读写实例详解_java

本文实例讲述了Java编程中文件读写的方法.分享给大家供大家参考,具体如下: Java中文件读写操作的作用是什么? 回答这个问题时应该先想到的是Java只是一门语言,我们的一种使用工具而已,这样答案就明晰了,就是将外来的各种数据写入到某一个文件中去,用以保存下来:或者从文件中将其数据读取出来,供我们使用.就如下电影过程,从网络资源中下载一部电影保存于你电脑中(写文件),当你想看的时候就用播放器打开(读文件). Java中如何对文件进行读写操作? 先理一理,Java中的流分两种,字节流和字符流,其

Java组件javabean用户登录实例详解_java

本文简单讲述使用javabean实现用户登录,包括用户登录,注册和退出等. 1.关于javabean JavaBean 是一种JAVA语言写成的可重用组件.为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器.JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取.众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 的属性. 2.系统架构2.1登录用例图 2.2页面流程图 2.3系统架构图

JSP学习之Java Web中的安全控制实例详解_JSP编程

本文实例讲述了JSP学习之Java Web中的安全控制.分享给大家供大家参考.具体如下: 一.目标: ① 掌握登录之后的一般处理过程: ② 能够为每个页面添加安全控制: ③ 能够共享验证代码: ④ 使用过滤器对权限进行验证: ⑤ 能够对文件的局部内容进行验证: ⑥ 掌握安全验证码的基本实现方式: ⑦ 通过异常处理增强安全性. 二.主要内容: ① 通过修改前面的登录功能,分别对管理员和普通用户的登录进行处理: ② 为管理员才能访问的页面添加控制: ③ 共享各个页面中的控制代码,使用专门的文件,然后

Java加载JDBC驱动程序实例详解_java

本文实例说明了Java加载JDBC驱动程序的方法,运行本文实例代码后,如果连接成功就会显示如下一条语句:sun.jdbc.odbc.JdbcOdbcDriver@6ec12,如果连接不成功,则显示加载数据库驱动程序出现异常. Java加载JDBC的实现方法: 通过调用Class.forName()方法可以显式地加载一个驱动程序.该方法的入口参数为要加载的驱动程序.例如:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")语句加载了SUN 公司开发的

Java mongodb保存/读取应用实例详解

下面的例子是把User对象插入到Mongodb中,并读出来  代码如下 复制代码 User.java: package com.mongo;   public class User {  String name;  int age;  Oid _id;  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }  public int getAge(

Java对数组实现选择排序算法的实例详解_java

一. 算法描述    选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成. 以下面5个无序的数据为例: 56 12 80 91 20(文中仅细化了第一趟的选择过程) 第1趟:12 56 80 91 20 第2趟:12 20 80 91 56 第3趟:12 20 56 91 80 第4趟:

Java中JSON字符串与java对象的互换实例详解_java

在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好,下面先看下JSON的格式, JSON可以有两种格式,一种是对象格式的,另一种是数组对象, {"name":"JSON","address":"北京市西城区","age":25}//JSON的对象格式的字符串 [

JAVA中的final关键字用法实例详解_java

本文实例讲述了JAVA中的final关键字用法.分享给大家供大家参考,具体如下: 根据上下文环境,java的关键字final也存在着细微的区别,但通常指的是"这是无法改变的."不想改变的理由有两种:一种是效率,另一种是设计.由于两个原因相差很远,所以关键子final可能被误用. 接下来介绍一下使用到final的三中情况:数据,方法,类 final数据 许多编程语言都有某种方法,来向编译器告知一块数据是恒定不变的.有时数据的恒定不变是很有用的,例如: 1. 一个编译时恒定不变的常量 2.