Part 1 数组练习
1、这个需要注意的是java里面数组声明和c++中不太一样。java里数组用new声明,声明不声明都可以。但声明后都会分配内存,不声明一般就放在函数栈空间中,而且无法使用。和c++中不太一样的是java中数组声明后不用手动释放堆内存,虚拟机会帮我们自动释放掉。
代码如下:
public class ArrayExercise01 { public static void main(String[] args) { char[] chars = new char[26]; for (int i = 0; i < chars.length; i++) { chars[i] = (char)('A' + i); } for (int i = 0; i < chars.length; i++) { System.out.print(chars[i] + " "); } } }
2、这个思路和c++里面一毛一样。注意下java里两数比较最大值函数是Math.max(),不用担心弄混。但最好还是换一个命名方式。
public class ArrayExercise02 { public static void main(String[] args) { int[] nums = {4, -1, 9, 10, 23}; int maxNum = nums[0]; int maxIndex = 0; for (int i = 0; i < nums.length; i++) { if (maxNum < nums[i]) { maxNum = nums[i]; maxIndex = i; } } System.out.println(maxNum + " " + maxIndex); } }
3、需要注意先用double类型求和,或者之后要强转成double,也要看一开始数组的类型了。如果直接用int型最后的平均数就也会是整型。比如这组数据。
其实应该是
代码如下:
public class ArrayExercise03 { public static void main(String[] args) { int[] nums = {4,-1,9,23}; double sum = 0; for (int i =0; i < nums.length; i++) sum += nums[i]; double average = sum / nums.length; System.out.println(sum + " " + average); } }
Part 2 Java 844题
这题可以参考这个链接,感觉有点抽象。
面试题+算法题-CSDN博客https://blog.csdn.net/weixin_45082647/article/details/107814399
考的线程状态切换,没啥好说的
这个题目建议自己手敲一下看看结果。尝试之后会发现并发时候,由于执行顺序的先后次序,线程输出顺序很多时候都是不一样的,一般都不规整。
这题主要靠的是4输出完之后才会输出一个空格来排除其他选择项。我选的这个其实是因为不会输出5,所以也可以排除掉。
看这个链接就好
哪些类继承了Collection接口_继承collection接口的集合-CSDN博客https://blog.csdn.net/weixin_43801300/article/details/99589087
还没有评论,来说两句吧...