- 对于由控制台进行输入时,需要利用到Scanner控件进行辅助,可以利用它进行整行或者单字节的读取,此外需要注意,如果是密码方面的输入问题,需要利用的Console空间,其限制每次只能固定读取一整行。
- java需要包含某些包时,利用import保留字,不同于Include
- java关于格式化输出问题的详述于白皮书P57
- String.format方法的使用与作用类似于print,但不同处在于前者只是创建了一个格式化的字符串,而后者则是打印出格式化的字符串。
- 对于当前时间的多种打印形式详述与白皮书P59.利用到Date()方法。
- 此外5处部分出现过 参数索引值 概念,参数索引值从1开始,因为0有被用作其他意义的标示符防止混淆,且参数索引值以$结尾
- 关于文件写入问题,详述与白皮书P60,利用到PrintWriter控件,使用有关文件操作时,因为可能遇到找不到文件的情况,所以需要在main方法后加上throws FileFoundException 语句告诉编译器表示我已经知道可能找不到文件的情况,以及包含包:java.io.*,关于文件的读取操作需要利用到Scanner控件,Paths.get方法可以使文件名转换为文件路径名,从而可使Scanner控件打开文件而不是创建一个字符串。需要注意:在使用打开文件之后需要利用.close方法关闭文件,否则无法看到写入效果。
- 利用System.getProperty(“user.dir”)代码可以得到当前IDE的工作目录。
- java中虽然goto有被设置为保留字但是真正使用时是利用break+标签或者continue+标签的形式。
- java中的for循环体有一种变种形式,用于方便对数组中每一个元素进行操作,此操作不能涉及到下标,详述与白皮书P79
- java中不能再枪套的两个块中声明相同的变量,与C++不同。
- 对于浮点数的相互比较需要十分注意,在循环体中利用浮点数比较产生退出循环的事件的话可能会产生死循环。
- 针对switch语句,白皮书作者不推荐使用,但也有一些细节用法,详述与p73
- 带标签的break和带标签的continue,分别是跳出目标循环体和跳入目标循环体,其实本质上是跳出目标块和跳入目标块,因此可以实现多次嵌套循环的跳入,标签需要设置在循环体(块)前加:。
- 对于大数值,java提供两个类,BigInteger大整型和BigDecimal大浮点型,大数值的运算不能使用+,-等运算符而是使用类提供的方法,因为java不允许重载运算符,与C++不同。详述与白皮书P77
- java中本质上没有多维数组而是1维数组的数组,数组的声明可以利用变量:int[] a = new int[x];
- 创建数字数组、boolean数组、对象数组时,所有元素会被初始化为0,false,null;
- 利用array.length可以得到数组长度。
- 对于数组的打印,可以利用到arrays.toString方法,此方法将数值转化为字符格式化输出。
- java中可以利用‘=’进行数组的浅拷贝,此方法的效果是两个数组共享内存,深拷贝方法是利用Arrays.copyOf(数组,长度),对于长度参数出可以再此改变目标数组的大小,相应的拷贝得到的数值将会对应的截断或者补0,对于数组的越界访问,java会报错。
- java中没有指针运算,不能通过a[] b=a+1的方式得到数组中的元素,而且java的数组与C/C++比较更相似与后者的int *name = new int [],而不是 int name[100],本质区别在于一个放在堆一个放在栈,此外在多维数组的比较中,前者可以生成不规则数组,相当于后者的int ** name = new int[10][]; ++++++ for() name[i]=new int[i]; 从而数组规格更加灵活,详述与白皮书P88
- java中的命令行数组并不存储程序名,与c/c++不同,.binarySearch方法可以在数组中寻找目标值。
- java中Arrays类型还提供了.sort方法用于排序,此方法是优化的快排,Math.random方法将产生0到1且不包含1的随机数,
时间: 2024-10-13 00:03:34