奇怪的数组数据之谜
给定一个数组 arr,需要实现一个扩容操作,将元素 4 添加到数组末尾,最终得到一个新的数组 arr = {1, 2, 3, 4}。但是,在执行以下代码时,却遇到了一个令人困惑的问题:
public class addjavajava { public static void main(string[] args) { int[] arr1 = {1, 2, 3}; int[] arr2 = new int[arr1.length + 1]; for (int i = 0; i < arr1.length; i++) { arr2[i] = arr1[i]; } arr2[arr2.length - 1] = 4; // 用 arr2 的值覆盖 arr1 arr1 = arr2; for (int i = 0; i < arr1.length; i++) { system.out.println(arr1[i] + 't'); } } }
令人意外的是,打印出的结果却是 "10 11 12 13",与预期值 "1 2 3 4" 大相径庭。
仔细查看代码可以发现,问题出在打印语句中。
system.out.println(arr1[i] + 't');
这里使用了转义字符 't',它代表制表符,在 ascii 码中对应为数字 9。因此,实际打印出的结果被附加了 9,导致了奇怪的数据。
修正代码:
System.out.println(arr1[i]);
去除转义字符,即可得到正确的打印结果。
SpringBoot项目中如何便捷地查看发送到Redis服务器的命令?
在Java中声明ConcurrentHashMap时是否需要static关键字取决于你的使用场景和需求。如果你希望这个ConcurrentHashMap在整个应用程序的生命周期中都是共享的,并且能够被类的所有实例访问,那么你可以使用static关键字。例如: ```java private static ConcurrentHashMap map = new ConcurrentHashMap(); ``` 这样,`map`就会成为一个类变量,而不是实例变量,所有的类实例都可以访问和修改这个共享的ma
口袋妖怪战斗模拟器/对决克隆开发日志#0
Spring Boot中如何将多个URL路由映射到同一个方法?
线程堆栈大小与内存溢出:为什么复制2KB数据到1KB线程堆栈不溢出?
函数式编程与 OOP 编程在 Java 流处理中的应用