`
ghost_away
  • 浏览: 17975 次
文章分类
社区版块
存档分类
最新评论

无需main方法打印hello word

 
阅读更多
public class Test {
static{
System.out.println("hello");
System.exit(0);
}
}


本身其实是借助 JVM 在装载类定义时,就会先执行static块这个特性,来得到输出的。
但是JVM在完成类定义装载后,就会用反射来查找main函数,此时如果找不到就会报错,但此时static块已经执行完毕了。
但这个程序又利用System.exit(0);来强制结束程序,所以JVM也就不会再去查找main函数并执行了。


你要确定这个类有以下几种情况才会被jvm的ClassLoader加载:
   a、new这个类的一个实例;
   b、访问类的静态变量或者静态方法
   c、反射
   d、访问该类的子类,即创建子类对象
   e、标示该类为启动类

应该有6种的 ,好像b包含了两种 ,以上就是类的主动使用,jvm会加载类,加载类才会初始化 ,才会运行static模块
分享到:
评论

相关推荐

    普通的IDEA maven java项目demo(hello word)-1.8

    标题中的“普通的IDEA maven java项目demo(hello word)-1.8”指的是一个基于IntelliJ IDEA的Java项目,使用Maven构建系统,并且是初学者级别的Hello World示例。这个项目可能是为了教授Java编程语言的基础知识,...

    Android中使用ormlite实现持久化(一)--HelloOrmLite.docx

    以上代码在`onCreate`方法中创建一个新的`Hello`对象并保存到数据库,然后打印出插入后的对象信息。这只是一个简单的示例,实际应用中可以根据需要进行更复杂的查询和操作。 总之,ORMLite为Android开发提供了便捷...

    aspose-words-20.12-jdk17.jar及aspose-words-18.6-jdk16.jar

    Aspose.Words是一款著名的Java库,它允许开发者在应用程序中处理Microsoft Word文档,无需依赖Microsoft Word本身。这个库提供了丰富的功能,包括创建、读取、编辑、转换和打印DOC、DOCX、RTF、HTML、PDF等多种格式...

    2021-2022计算机二级等级考试试题及答案No.12806.docx

    3. 在JavaScript中,打印出"HelloWorld"的语句是`document.write("HelloWorld")`。 4. 逻辑表达式`F=Not(C1 And C2 And…And…CN)`表示当所有条件Ci都为真时,F为假。 5. 存储过程与存储函数的区别在于存储过程不能...

    C#入门教程

    - 编写简单的 `Main` 方法,打印 “Hello World”。 - 编译并运行程序。 #### 第二章 C# 数据类型、运算符和表达式 - **数据类型**: - 整型 (`int`, `long`, `short`, `byte`)、浮点型 (`float`, `double`)、...

    个个的aspose-words-20.4-c-jdk17.jar

    Aspose.Words是一款著名的Java库,它允许开发者在应用程序中处理Microsoft Word文档,无需依赖Microsoft Word软件本身。这个"aspose-words-20.4-c-jdk17.jar"文件是Aspose.Words的一个特定版本,即版本20.4,针对...

    c语言删除字符串中指定的所有字符

    例如,给定字符串 "hello world" 和指定字符 'l',处理后的结果应为 "heo word"。 ### 二、解析代码结构 #### 1. **头文件导入** ```c #include #include ``` - `#include <stdio.h>`:引入标准输入输出...

    java poi导入导出

    Java POI是Apache软件基金会开发的一个开源库,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在Java应用中,POI库提供了API来读取、写入和修改这些文件,使得开发者无需依赖Microsoft ...

    GNU+make中文手册

    - **示例**:可以用来定义一个只打印信息的目标。 #### 第六章:Makefile中的变量 **6.1 变量的引用** - **语法**:`${VAR}` 或 `$(VAR)`。 **6.2 两种变量定义** - **递归展开式变量**:定义时保留变量值,在...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    在这是junit测试单元类我就不提交了,在main()方法中有几个小测试,有兴趣自己玩吧. 这个工具类目前主要有25种正规表达式(有些不常用,但那时才仔细深入的研究了一下正规,写上瘾了,就当时能想到的都写了): 1....

Global site tag (gtag.js) - Google Analytics