这些类型转换的结果是什么以及原因



我在理解每个类型之后的类型时遇到了一些问题

 System.out.println(); 

行,在此 Java 代码中。现在我在第 4 行收到错误,其余代码没有运行,可以确定问题是什么吗?有人可以向我解释结果是什么类型以及为什么吗?我想你甚至不必运行代码,它只是要求一些基本的Java知识,我没有:(据我了解

         System.out.println ((1<<1) << 2);

交付 8 个...但话又说回来,为什么?

    public static void main(String[] args) {
    String[] s= {"a", "2.0", "3", "eip"};
    System.out.println (s[7/3]);
    System.out.println (Integer.parseInt(s[1])*3.0f);
    System.out.println ((1<<1) << 2);
    System.out.println (s[s.length-1].equals("EIP"));
    System.out.println (Double.parseDouble(s[2]+1) == Integer.parseInt(s[1]));
    System.out.println (1==0|| ! (false & !true));
    }}  

for

System.out.println ((1<<1) << 2);

尝试此链接以获取左移解释。

取而代之的是:

System.out.println (s[s.length-1].equals("EIP"));

尝试:

System.out.println (s[s.length-1].equalsIgnoreCase("EIP"));

s[1] ==> 2.0

2.0 是十进制/双精度,因此无法使用 Integer.parseInt(s[1]) 转换为 int

你需要Double.parseDouble(s[1]).

(1<<1) << 2使用换档操作员。在这里研究这个按位和位移运算符

相关内容

最新更新