Java+AI<AI的使用与Java的基础学习4>
今天通过学习了解了隐式转换和强制转换隐式转换也叫自动类型提升。就是把一个取值范围小的数据或者变量赋值给另一个取值范围大的变量。此时不需要我们额外写代码单独实现是程序自动帮我们完成的。有两个需要记忆的规则规则一如有byte short类型的数据先提升为int类型规则二把取值范围小的提升为取值范围大的再进行运算下面是我的第一个练习通过第一个练习我掌握了隐式转换的用法第二个练习我加入了强制转换。所谓的强制转换就是将一个已经有类型的变量转换成其他变量但有时候强制类型转换可能会导致数据丢失。当我进行第二个练习时因为我在编程时会合理使用ai帮我完成简单的任务但今天通义在进行二进制计算时出错了。我及时发现了问题并用其它工具进行计算可以看出300的二进制为0001 0010 1100。这个插曲之后我发现强制转换导致的数据丢失是有迹可循的For examplebyte占用一个字节为8个位 0000 0000在进行强制转换时只保留后八位所以byte b300输出b时System.out.println(b);b的值为0010 1100 也就是44。练习2如下之后我学习了字符和字符串的运算做了一个大写字母转换小写字母的练习在原来的题目中将一个已经定义好的大写字通过32的方法变成小写字母这里用到了ascll码表ascll表需要记忆的null---0 0---48 A----65 a---97;因为我感觉题目难度不够我加了一个条件把大写字母改为在屏幕上录入我以为和之前学的一样先使用scanner.scnew scanner(System.in);然后在键盘上录入大写字母char chsc.next();但结果报错了我询问了通义了解到这样只能用于字符串的输入而字符需要在其后添加.charAt(0)sc.next() 的返回值类型是 String(字符串)charAt(0) - 从字符串中提取第 0 个位置的字符(也就是第一个字符)。A.charAt(0) 结果是 A (字符)我又询问通义括号中的0是什么意思能不能用其他数字。我了解到了括号中的数字叫做索引(或下标),表示字符在字符串中的位置。Java 中的索引从 0 开始计数。For example当你用charAt()时括号内不同的数字表示了你调用了一个字符串不同的位置String str Hello;char ch1 str.charAt(0); // 获取第1个字符 → Hchar ch2 str.charAt(1); // 获取第2个字符 → echar ch3 str.charAt(2); // 获取第3个字符 → lchar ch4 str.charAt(3); // 获取第4个字符 → lchar ch5 str.charAt(4); // 获取第5个字符 → o但要注意的是不能超出索引范围hello就不能调用str.charAt(5);这样会报错。0 表示字符串的第一个位置可以用其他数字(1, 2, 3...),但不能超过字符串长度减 1对于单个字母的输入,我们用 charAt(0) 取第一个字符就够了这个知识点像我在c中学到的数组。同样的不能进行数组的下标越界。以下是我的练习除了字符我还学了字符串拼接。当操作中出现字符串时此时就是字符串的连接符会将前后的数据进行拼接并产生一个新的字符串。当连续进行操作时从左到右逐个执行的。由此我可以对我之前的练习进行优化