`

java 变量初始化 容易犯错

阅读更多
private static TBase t = new TBase("1");
//private TBase tt = new TBase("tt");
public TBase(String str){
System.out.println(str);
}
private TBase bb = new TBase("cc");
public static void main(String[] args) {
//TBase t = new TBase("0");
System.out.println("hello");
}
}


这个类运行 就会出现;java.lang.StackOverflowError。

原因、初始化静态变量对象 时 先初始化对象的成员变量,递归操作导致溢出。
分享到:
评论

相关推荐

    java面试题最容易犯错的8道.docx

    - Servlet 的生命周期包括初始化(`init()`)、服务(`service()`)、销毁(`destroy()`)三个阶段。`service()` 方法会根据请求类型调用相应的 `doXXX()` 方法,如 `doGet()` 或 `doPost()`。 - 与 CGI(Common ...

    Java习题(一些不注意就犯的错误)

    构造函数用于初始化对象,封装确保数据安全,继承实现代码重用,多态提供灵活性。不正确的类设计可能导致内存泄漏、对象状态混乱等问题。 5. 库谜题: Java标准库(JDK)提供了丰富的类和方法,但使用不当可能引入...

    java常犯错误

    确保在使用对象前已经正确初始化。 3. **数组越界异常**:当你尝试访问数组的一个不存在的索引时,会抛出`ArrayIndexOutOfBoundsException`。在访问数组元素之前,应检查索引是否在有效范围内。 4. **并发问题**:...

    JavaJava+EE软件工程师就业求职手册.doc

    - **3.2.3 注意变量初始化**:强调变量初始化的重要性。 - **3.2.4 最简单的Java源文件**:展示最基本的Java程序结构。 - **3.3 本章小结**:概括本章核心知识点。 ##### 第4章 运算符和类型转换 - **4.1 Java的...

    JavaJava%BEE软件工程师就业求职手册.doc

    - **3.2.3 注意变量初始化**:强调了正确初始化变量的重要性,并提供了一些避免常见陷阱的方法。 - **3.2.4 最简单的Java源文件**:通过一个简单的示例程序介绍了Java源文件的基本结构和语法。 - **3.3 本章小结*...

    J2EE软件工程师求职手册

    - **注意变量初始化**:强调变量初始化的重要性,避免未初始化的变量导致的程序错误。 - **最简单的Java源文件**:展示一个简单的Java源文件结构示例,帮助初学者快速入门。 - **本章小结** - 概括本章涉及的...

    Java经典入门+笔记

    4. **数组**:讲解一维和多维数组的概念、声明、初始化及操作,以及数组在实际问题中的应用。 5. **类与对象**:深入解析面向对象编程的基础,如类的定义、对象的创建、封装、继承和多态等概念。 6. **方法**:...

    初学者如何更好的运用Java编程共1页.pdf.zip

    学习如何创建类,定义属性和方法,以及如何通过构造函数初始化对象,这些都是Java编程的关键。同时,了解封装、继承和多态这三大面向对象特性,将有助于你构建更复杂的系统。 接下来,熟悉Java集合框架。集合框架是...

    JavaOOP上机练习-Chapter4.zip

    你还会学习如何使用构造器初始化对象,理解静态与非静态成员的区别,以及如何运用访问控制来保护类的内部状态。此外,你可能还会涉及异常处理、包的使用、集合框架等Java OOP的进阶主题。 在完成这些练习时,你不仅...

    java-foundation.rar_foundation

    - **变量**:声明、初始化和使用变量,理解其作用域和生命周期。 - **运算符**:熟悉各种算术、比较、逻辑、位运算符的用法。 - **流程控制**:了解if语句、switch语句、for循环、while循环等控制结构。 2. **...

    SSM(Spring+SpringMVC+MyBatis)整合

    其中,DispatcherServlet是SpringMVC的入口,Filter可以实现权限控制等,Listener可以初始化Spring容器。 6. **编写Controller**:在Java源代码中创建SpringMVC的Controller类,用以处理HTTP请求。通过`@...

    c语言坑爹大冒(C语言课程设计).rar

    5. **指针操作**:未初始化的指针、空指针解引用、越界指针访问都是常见的指针错误。确保每次使用指针前都正确赋值,并避免非法访问内存区域。 6. **函数参数**:C语言的函数参数传递是按值传递的,这意味着修改...

    多功能计算器

    这在代码中可能通过初始化变量或设置特定标志来实现。如果计算器有内存功能,清除键还需要考虑是否同时清除内存中的值。 4. **内存记忆功能**:内存功能允许用户存储和调用中间结果,这对于进行复杂计算非常有用。...

Global site tag (gtag.js) - Google Analytics