class Test2 { private Test2 a; //private static Test2 a=new Test2(); public static void main(String[] args) { Test2 t = new Test2(); } public Test2 getA() { return a; } public void setA(Test2 a) { this.a = a; } }
第一种情况,自己调用自己,并迭代;但没有new出新对象,正常
class Test3 { private Test3 a=new Test3(); //private static Test3 a=new Test3(); public static void main(String[] args) { Test3 t = new Test3(); } public Test3 getA() { return a; } public void setA(Test3 a) { this.a = a; } }
第而种情况,自己调用自己,并迭代,生成新的对象;
结果 Exception in thread "main" java.lang.StackOverflowError;
class Test4 { private static Test4 a=new Test4(); public static void main(String[] args) { Test4 t = new Test4(); System.out.println(t.getA()); System.out.println(t.getA().getA()); System.out.println(t.getA().getA().getA()); } public Test4 getA() { return a; } public void setA(Test4 a) { this.a = a; } }
第三种情况,没有报错,因为生成了静态对象,结果
com.b5map.Test4@6084fa6a
com.b5map.Test4@6084fa6a
com.b5map.Test4@6084fa6a
总结:static关键字,只保留自己唯独一份的变量;而且对自身的引用始终是自己;
相关推荐
在Java中想要调用python程序,可以加入python的依赖包。 Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。...
其中一个有趣的应用场景是利用Swing调用系统的摄像头进行拍照。以下是对标题“java Swing 中调用摄像头拍照源码(有说明)”和描述的详细解释,以及相关知识点的深入探讨。 1. **Swing简介**: Swing是Java的GUI库...
在Java编程世界里,"Java有趣代码"是一个充满创意和娱乐性的编程实践,旨在通过代码创造出五颜六色的星星效果。这样的项目不仅能够提升开发者的技术能力,还能够带来编程的乐趣,激发对计算机图形学的兴趣。下面我们...
然而,"Java实现的vimdemo"这个标题暗示了一个有趣的项目,即用Java语言重新实现Vim的一些核心功能或者创建一个类似的文本编辑器。下面将详细介绍这个项目可能涉及的知识点以及相关的编程技术。 1. **Java基础**:...
首先,我们来看看标题中提到的有趣问题:`String str=new String("abc");` 这行代码会创建几个String对象。答案是两个。`"abc"`在Java中是一个字面量,它在运行时会被自动放入字符串池。`new String("abc")`则会创建...
标题中的“一个轮询的Java案例”提示我们这个话题与编程中的轮询机制有关,而描述则提供了一个有趣的比喻,用以解释轮询的过程。在这个比喻中,20个人代表了程序中的多个参与者,3包降落伞相当于有限的资源,每数到...
使用 Java 连接 SAS 可以实现许多有趣的应用场景,如数据分析、数据挖掘、报表生成等。下面我们将详细介绍如何使用 Java 连接 SAS。 SAS Connect Driver for Java SAS Connect Driver for Java 是 SAS 官方提供的...
### Java编写简单有趣的猜数字游戏 #### 背景与目标 猜数字游戏是一种非常受欢迎的益智游戏,尤其适合编程新手练习逻辑思维与编程技巧。本文将详细介绍如何使用Java语言来开发这样一个游戏,帮助读者理解游戏的...
标题中的“java两条有趣的题目”可能指的是两个具有挑战性的编程问题,旨在测试或提升Java程序员的基础知识和解决问题的能力。描述中提到这些题目“很详细”且“很有意思”,暗示它们可能涉及到一些深入的Java概念,...
Java Web服务(Webservice)与Flash技术在IBM Lotus Domino环境中的整合是一个复杂而有趣的主题,它涉及了多种技术的交互。让我们深入探讨一下这个话题。 首先,Java Web服务是一种通过HTTP协议提供和消费的标准化...
brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准...
1. **Java基础语法**:Java的基础包括变量、数据类型、运算符、流程控制(如if-else、switch-case、for、while、do-while)以及方法的定义和调用。理解封装、继承和多态三大面向对象特性是核心。 2. **内存管理**:...
6. **反射**:Java反射API允许在运行时检查类、接口、字段和方法的信息,甚至动态调用方法。但滥用反射可能破坏封装性,降低性能,增加代码复杂性。 7. **集合框架**:Java集合框架中的List、Set、Map各有特性,...
Java是最流行的编程语言之一,使用Java和OpenCV可以实现许多有趣的图像和视频处理应用。 在本文中,我们将使用Java和OpenCV从视频文件中获取帧。首先,我们需要安装OpenCV和FFmpeg,下载javacv包。然后,我们可以...
一言网是一个集合了各种经典、有趣、富有深意的句子的平台,它提供了API接口,使得开发者可以通过编程的方式调用这些“一言”来丰富自己的应用或网站内容。在描述中提到的效果,“成熟的人眼里满是前途,稚嫩的人...
而通过阅读《通过Java字节码发现有趣的内幕之初始化篇(下)》这份资料,开发者可以进一步巩固这些知识,提升自己的Java开发技能。不过,值得注意的是,这里提到的"赚钱项目"并不明确,可能与本文的主题不直接相关,...
不过,这个项目提供了一个有趣的交叉点,使得开发者可以在Java环境中研究和实现C语言的特性。 总的来说,这个"预处理(JAVA实现C语言预处理程序)"项目为学习编译原理的人员提供了一个实用的工具,帮助他们理解和...
10. **反射**:Java反射机制允许程序在运行时检查类的信息,如字段、方法、构造器等,并能在运行时动态创建对象和调用方法。 11. **枚举**:枚举是一种特殊的类,用于定义一组预定义的常量,具有类型安全和防止硬...
brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准...
栈遵循“后进先出”(LIFO)原则,常用于表达式求值、函数调用等场景;队列遵循“先进先出”(FIFO)原则,常见于任务调度和数据缓冲。这两种数据结构是理解和解决许多算法问题的关键。 "第5章 数组和广义表"进一步扩展...