第七课 Static关键字和main方法

本文详细介绍了Java中的Static关键字,解释了其如何修饰成员变量及方法,并探讨了它们的特性和应用场景。通过具体示例,展示了静态成员变量和静态方法的作用与访问方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 Static关键字

public class A6_10{
	public static void main(String[] args){
		Student A=new Student();
		A.country="中国";
		Student B=new Student();
		A.print();
		System.out.println(B.country);
	}
}
/*
static关键字
作用:是一个修饰符,用于修饰成员(成员变量,成员方法)
1.被static修饰后的成员变量只有一份
2.当成员被static修饰之后,多了一种访问方式,除了可以对对象调用之外,
还可以被类直接调用(类名.静态成员)

static的特点:
1.随着类的加载而被加载
2.优先于对象的存在
3.被所有的对象所共享的
4.可以直接被类名所调用

存放位置
类变量随着类的加载而存在于data内存区
实例变量随着对象的建立而存在于堆内存

生命周期:
1.类变量生命周期最长,随着类的消失而消失
2.实例变量生命周期比类变量短,它是随着对象的消失而消失的

静态方法注意事项:
1.静态方法只能访问静态变量
2.非静态的方法既能访问静态的(成员变量,成员方法),也能访问非静态的成员
3.静态的方法中是不可以定义this super关键字
因为静态优先于对象存在,所以静态方法不可以出现this

一般是许多对象拥有的属性都是一样的,可以用static这一个关键字,可以共享,而且
对象中如果改变了static值得时候,就会影响所有对象。
*/
class Student{
	String name;
	int age;//实例变量
	String country;//静态变量(类变量)
	static void print(){
		System.out.println(name);//这里无法访问到name
	}
}
什么时候使用静态
static所修饰的内容是成员(成员变量,方法)
从两方面入手:
什么时候使用静态的成员变量:
当属于同一个类的所有对象出现共享数据时,
需要将存储这个共享数据的成员变量用static修饰

什么时候使用静态方法
当功能内部没有访问到非静态的成员时(对象特有的数据)
那么该功能可以定义成静态的

二、main方法(程序入口)

1.public (访问修饰符,公共的)代表该类或者该函数访问权限是最大的
2.static 代表主函数随着类的加载就已经存在了
3.void 代表主函数没有具体的返回值
4.main main不是java中的关键字,它是一个特殊的单词,他能够
被JVM(java虚拟机)所识别
5.String[] args 函数的参数,参数类型是一个字符串数组,
该数组的元素是字符串

public class A6_38{
	public static void main(String[] args){
		for(i=0;i<=args.length;i++){
			Ststem.out.print(args[i]);
		}
		
	}
}







<think>好的,我现在要解决用户在IntelliJ IDEA中运行程序时只执行Build而不运行Main方法的问题。首先,我需要理解用户的具体情况。用户提到在运行配置中,Main方法没有被执行,只是构建解决方案。这可能涉及到多个方面的问题,比如配置错误、插件冲突、缓存问题或者其他设置问题。 首先,我应该回忆常见的导致此类问题的原因。根据经验,可能有以下几种可能性: 1. **运行配置错误**:可能用户的运行配置中Main类没有正确指定,或者启动参数有误。 2. **项目结构问题**:模块的依赖关系或者输出路径设置不正确,导致生成的类文件无法被正确找到。 3. **缓存或索引损坏**:IntelliJ的缓存有时候会导致奇怪的问题,需要清除缓存并重启。 4. **插件冲突**:某些第三方插件可能与当前版本的IDE不兼容,干扰了正常的运行流程。 5. **编译器设置问题**:比如使用错误的JDK版本,或者编译器选项导致编译失败但未报错。 6. **主类未正确生成**:可能构建过程中出现了错误,导致主类未被编译,但用户没有注意到错误提示。 接下来,我需要逐步分析每个可能性,并提供对应的解决步骤。用户可能需要检查运行配置,确认Main类是否正确,检查是否有编译错误,清除缓存,或者重新导入项目等。 另外,参考用户提供的引用内容,其中提到了关于方法命名的问题(比如hashcode()应为hashCode()),这可能与代码中的错误有关,但用户的问题更偏向于运行配置而非代码本身。不过,如果用户的主类存在编译错误(比如方法签名错误),可能导致类无法被正确加载,从而运行失败。但根据用户描述,程序只执行Build而不运行,可能构建成功但执行步骤被跳过。 另外,引用[2]提到的线程调度垃圾回收,可能与程序运行时的环境有关,但更可能的问题还是出在IDE配置上。 可能的解决步骤包括: 1. **检查运行配置**:确认Main类是否正确,是否有启动参数错误。 2. **重新构建项目**:手动执行Rebuild Project,确保所有类文件正确生成。 3. **检查项目结构**:确认模块的输出路径依赖是否正确。 4. **清除缓存**:通过File菜单中的Invalidate Caches选项。 5. **检查插件**:禁用第三方插件,尤其是可能影响构建的插件。 6. **检查JDK配置**:确保项目使用的JDK版本正确,并且环境变量设置无误。 7. **查看日志**:检查IntelliJ的日志文件,查找可能的错误信息。 还需要考虑是否有其他因素,比如防火墙或安全软件阻止了Java进程的启动,或者项目中的主方法存在语法错误但被忽略。例如,如果主方法没有被正确识别(比如缺少static或参数错误),编译器可能不会报错,但运行时找不到主类。但这种情况通常会导致运行时错误提示,而不是构建后不执行。 另外,用户是否在运行配置中勾选了“Build”选项,而没有勾选“Run”选项?或者是否存在多个运行配置,导致执行了错误的配置? 需要指导用户逐一排查这些可能性,并提供具体的操作路径,比如如何在IntelliJ中找到运行配置设置,如何检查项目结构等。</think>### 解决IntelliJ IDEA运行配置中Main方法未执行的问题 当IntelliJ IDEA仅执行构建(Build)而不运行Main方法时,可能是以下原因导致的。请按以下步骤逐步排查: --- #### 1. **检查运行配置** - **步骤**:点击右上角运行配置下拉菜单 → 选择`Edit Configurations`。 - **确认项**: - **Main类路径**:确保`Main class`字段正确指向包含`public static void main(String[] args)`方法的类(例如`com.example.Main`)。 - **模块依赖**:检查`Use classpath of module`是否选择了正确的模块。 - **启动前任务**:在`Before launch`部分,确保未误删`Build`以外的必要步骤(如`Build Project`或`Build Artifacts`)[^1]。 --- #### 2. **重新构建项目** - **步骤**:菜单栏选择`Build` → `Rebuild Project`。 - **目的**:强制重新编译所有文件,修复可能因增量编译失败导致的类文件缺失问题。 --- #### 3. **验证项目结构** - **步骤**:`File` → `Project Structure` → 检查以下两项: - **Project SDK**:确认JDK版本与项目兼容(例如Java 8/11/17)。 - **输出路径**:在`Project Settings` → `Project`中,确保`Compiler output`路径正确(通常为`out`或`target/classes`)[^1]。 --- #### 4. **清除缓存并重启** - **步骤**:`File` → `Invalidate Caches` → 勾选`Clear file system cache and Local History` → 点击`Invalidate and Restart`。 - **适用场景**:缓存损坏导致IDE行为异常时使用。 --- #### 5. **检查插件冲突** - **步骤**:`File` → `Settings` → `Plugins` → 禁用所有第三方插件 → 重启IDE后测试运行。 - **常见干扰插件**:Lombok、JRebel等可能与构建流程冲突。 --- #### 6. **检查主类代码** - **代码要求**:确保主方法签名正确: ```java public class Main { public static void main(String[] args) { // 必须为public static void System.out.println("Hello World"); } } ``` - **常见错误**:拼写错误(如`mian`)、缺少`static`关键字或参数类型错误。 --- #### 7. **查看日志文件** - **步骤**:`Help` → `Show Log in Explorer` → 打开`idea.log`文件。 - **关注内容**:查找`ERROR`或`WARN`级别的日志,尤其是与`Execution`或`ClassLoader`相关的条目。 --- #### 8. **重新导入项目** - **步骤**:关闭项目 → 从欢迎界面选择`Open` → 重新选择项目根目录。 - **适用场景**:项目元数据(`.idea`目录)损坏时使用。 --- ### 相关问题 1. **如何配置IntelliJ IDEA以支持多模块项目的运行?** 2. **IntelliJ IDEA中如何调试“找不到主类”错误?** 3. **如何优化IntelliJ IDEA的构建性能?** 通过以上步骤,大多数因配置错误或环境问题导致的Main方法未执行问题均可解决。如果问题仍未解决,建议提供`idea.log`中的关键错误信息以进一步分析[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值