You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Java中String作为String变量名合法,int作为int变量名不合法?

为什么Java中String String = "";合法,而int int = 0;非法?

哈哈这个问题确实容易让人绕晕,我来给你掰扯清楚核心逻辑:

本质区别:关键字 vs 预定义类名

Java对标识符(变量名、类名、方法名等)的使用有明确规则,两者的合法性差异根源就在这里:

  • int int = 0;非法的原因
    int是Java的保留关键字,这些关键字是Java语法体系的核心组成部分,用来定义基本数据类型、控制流程、访问修饰符等(比如int、char、if、class都属于关键字)。Java编译器会直接限制关键字作为标识符使用,因为它们有固定的语法含义,绝对不能被当作变量名来用。

  • String String = "";合法的原因
    String并不是Java的关键字,它只是java.lang包下的一个预定义核心类。Java允许使用类名作为变量名(只要这个名字不是关键字)。不过要注意,当你在当前作用域里把String定义成变量后,这个名字就会优先指代变量,而不是原来的String类了——比如你再写String newStr = new String("hello");就会报错,因为编译器会误以为你要把变量String当作类来实例化,这显然是不符合逻辑的。

简单总结:关键字是Java语法层面的“保留字”,绝对不能当变量名;而String只是个类名,不属于关键字范畴,所以可以被用作变量名(虽然这种写法非常不推荐,会严重混淆代码语义)。

内容的提问来源于stack exchange,提问作者skyridertk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:35:48