Tag: 文字

java中’Float a = 3f’和’Float a = 3.0’有什么区别?

如果我表演 97346822*3f, result is 2.9204048E8, 然而 97346822*3.0 gives me 2.92040466E8. 请解释。

Java二进制文字 – 字节值-128

由于SE 7 Java允许将值指定为二进制文字。 文档告诉我’byte’是一种可以保存8位信息的类型,值为-128到127。 现在我不知道为什么,但我不能定义8位但只有7如果我尝试将二进制文字分配给Java中的一个字节,如下所示: byte b = 0b000_0000; //solves to the value 0 byte b1 = 0b000_0001; //solves to the value 1 byte b3 = 0b000_0010; //solves to the value 2 byte b4 = 0b000_0011; //solves to the value 3 依此类推,直到我们使用这7位获得最后几种可能性: byte b5 = 0b011_1111; //solves to the value 63 byte b6 = 0b111_1111; […]

为什么Java中允许双重文字中的任意精度?

我刚从Peter Lawreys的post中了解到这是有效的表达,并且评估为true 。 333333333333333.33d == 333333333333333.3d 我的问题是,为什么允许双重文字不能用双精度表示,而不能表示的整数文字是不允许的。 这个决定的理由是什么? 旁注,我实际上可以触发超出文字的范围编译错误:-) 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999d 因此,只要我们处于(最小,最大)范围内,文字就会变得近似,但是当它超出范围时,似乎编译器拒绝接近它。

实习生如何在以下代码中工作?

String a = “abc”; String b = a.substring(1); b.intern(); String c = “bc”; System.out.println(b == c); 问题可能是愚蠢的,因为实习生在这里没有主要用法,我仍然对这个事实感到困惑,为什么b == c结果为true 。 什么时候 String b = a.substring(1) 执行,String b引用具有”bc”对象 b.intern是否在String Constant池中创建文字”bc” ,即使它确实如此,为什么b==c导致true ?

为什么Java整数文字的默认类型是int而不是long?

我很困惑为什么Java整数文字默认为int而不是long 。 这似乎造成了不必要的混淆。 首先,它要求程序员在为超出最大int大小的int (2147483647)赋值时采用特殊语法(将“L”附加到文字)。 long x = 2147483647; // Compiles long y = 2147483648; // Does not compile long z = 2147483648L; // Compiles 其次,当使用Long包装类时,程序员必须始终使用long文字表示法,如本SO问题中所述 。 Long x = 250; // Does not compile Long y = 250L; // Compiles 第三,考虑到从int文字到“较窄”数据类型( short和byte )的隐式转换在所有情况下(我知道)都可以正常工作,似乎简单地将所有整数文字类型设置为long将是明显的解决方案… 对? 难道这不会完全消除在特殊情况下对整数文字附加“L”的奇怪系统的需要吗?

添加String Literals和String对象之间的区别

添加String Literal和String Object之间有什么区别? 例如 String s1 =”hello”; String s2 =”hello1″; String s3 =”hello” + “hello1″; String s4 =”hellohello1”; String s5 = s1 + s2; System.out.println(s3 == s4); // returns true System.out.println(s3 == s5); // return false System.out.println(s4 == s5); // return false 为什么s3 / s4没有指向与s5相同的位置?

Java字符文字值与getNumericValue()

为什么我对大写和小写文字都得到相同的结果? 例如: char ch1 = ‘A’; char ch2 = ‘a’; char ch3 = ‘Z’; char ch4 = ‘z’; print(“ch1 — > ” + Integer.toBinaryString(Character.getNumericValue(ch1))); print(“ch2 — > ” + Integer.toBinaryString(Character.getNumericValue(ch2))); print(“ch3 — > ” + Integer.toBinaryString(Character.getNumericValue(ch3))); print(“ch4 — > ” + Integer.toBinaryString(Character.getNumericValue(ch4))); 结果我得到: ch1 — > 1010 ch2 — > 1010 ch3 — > 100011 […]

Java 9:什么是集合工厂方法?

Java 9的到来为Java的Collections API带来了许多新function,其中一个是集合工厂方法。 它们是什么以及如何正确实施它们?

Java 9中的Convenience Factory Method返回的特定集合类型

在Java 9中,我们有方便工厂方法来创建和实例化不可变的List,Set和Map。 但是,目前还不清楚返回对象的具体类型。 例如: List list = List.of(“item1”, “item2”, “item3”); 在这种情况下,实际返回了哪种类型的列表? 它是ArrayList还是LinkedList或其他类型的List? API文档刚提到这一行,没有明确提到它是一个LinkedList: 列表中元素的顺序与提供的参数的顺序或提供的数组中的元素的顺序相同。

Java中是否有二进制文字?

我想用二进制文字声明我的整数。 在Java中有可能吗?