Java编程规范与数组详解

需积分: 4 1 下载量 160 浏览量 更新于2024-07-25 1 收藏 174KB DOC 举报
"J2se学习总结" Java编程语言遵循特定的规范和语法,这些在J2SE(Java Standard Edition)中尤为重要。以下是学习J2SE时需要注意的一些关键知识点: 1. **源文件命名规则**: - 如果源文件中包含一个`public`类,那么该源文件的名称必须与这个`public`类的类名完全匹配,包括大小写。 - 同一个源文件内只能有一个`public`类。如果有多于一个`public`类,需要将它们分别放在各自的源文件中。 2. **编译与运行时的文件名处理**: - 在编译过程中,Java编译器对文件名的大小写不敏感,但运行时加载类时,类名是大小写敏感的。这意味着在编写代码时要确保类名与源文件名的一致性。 3. **数据类型**: - `byte`类型是带符号的8位整数,范围从-128到127。 - 在运算中,`byte`与`byte`或其他整型运算的结果会自动提升为整型。 - `short`类型是16位整数,范围从-32768到32767。 - `char`类型使用Unicode编码,可以表示0到65535个字符,可以用单引号表示字符或整数赋值。 - 小数常量默认被视为`double`类型,如需指定为`float`,需在其后加上`f`或`F`。 - `float`占用4个字节,`double`占用8个字节,提供更高的精度。 - `boolean`类型只有两个值:`true`和`false`,不能用于数值计算。 4. **数组**: - 在Java中,一维数组在定义时不能直接分配大小,需要分开定义和初始化。例如: ```java int[] num; // 定义 num = new int[3]; // 初始化 ``` - 推荐的数组定义方式是: ```java int[] num; ``` - 数组可以同时定义并初始化: ```java int[] num = {1, 2, 3}; ``` - 二维数组的定义和初始化有所不同: ```java int[][] num; num = new int[1][2]; ``` - 不同行的列数可以不同,类似于C/C++中的指针数组: ```java int[][] num; num[0] = new int[1]; num[1] = new int[2]; num[2] = new int[3]; ``` - 当初始化数组时,避免在`new`关键字后的中括号中指定大小,因为这会导致错误。例如: ```java int[][] num = new int[2][]{{1, 2, 3}, {4, 5, 6}}; // 错误 ``` - Java会自动将新创建的数值型数组的所有元素初始化为0。 - 支持不规则数组元素,例如: ```java int[][] num = {{1, 2, 3}, {4, 5}, "Hello"}; // 不规则数组 ``` 这些基本概念构成了Java编程的基础,理解和掌握它们对于学习和使用Java语言至关重要。在实际编程中,还需要了解更多的面向对象特性、异常处理、输入/输出、集合框架、多线程、网络编程等更高级的主题。

java.lang.IllegalArgumentException: Parameter 'directory' is not a directory at org.apache.commons.io.FileUtils.listFiles(FileUtils.java:293) at org.apache.commons.io.FileUtils.listFiles(FileUtils.java:378) at com.bosssoft.hr.train.j2se.util.UtilsDemo.method4(UtilsDemo.java:133) at Test1.testUtilsDemo4(Test1.java:66) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)源码如下:public void method4(){ // 获取目录中的所有文件和子目录 Collection<File> files = FileUtils.listFiles(new File("com/bosssoft/hr/train/j2se/util"), new String[]{"*.java"},true); // 遍历文件和子目录 if (files != null) { for (File file : files) { if (file.isDirectory()) { log.info("Directory: " + file.getName()); } else { log.info("File: " + file.getName()); } } } }

2023-07-14 上传