java - 为什么两个变量可以同名?

标签 java

<分区>

我执行了以下代码并且没有出现任何错误,并且在输出中我看到了 Success! 消息。你能解释一下这种奇怪的行为吗?

public class Main {

    public static void main(String[] args) {
        int р = 0;
        int p = 1;
        if(р == 0 && p == 1) {
            System.out.println("Success!");
        }

    }

You can check the online demo

最佳答案

两者是不同的变量(但看起来很相似),你可以看到UTF-16是不同的

    int р = 0;
    int p = 1;
    if (р == 0 && p == 1) {
        System.out.println("Success!");
        System.out.println("p UTF-16 is " + (int) 'p');
        System.out.println("р UTF-16 is " + (int) 'р');
    }

输出

Success!
p UTF-16 is 112
р UTF-16 is 1088

关于java - 为什么两个变量可以同名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48484110/

相关文章:

java - 如何为2个参数实现单个DeleteMapping?

java - 为什么我的离屏渲染 Canvas3D 不起作用?

java - groupingBy 到集合 Java8

java - 似乎无法让我的 Java 在 VS Code 中工作

java - Java 中的大数据库调用 + 解析 VS 许多数据库调用

java - 显式销毁 glassfish 上的 EJB 实例

Java:分割逗号分隔的字符串但忽略引号中的逗号

java - Java 包或源文件夹中使用的硬编码字符串/枚举列表

java - 我收到上述代码的超时错误。需要帮助来优化嵌套循环

java - 重新分配数组中的值