Java基础与语法概览:类、数据类型与控制结构详解

需积分: 10 0 下载量 69 浏览量 更新于2024-09-08 收藏 25KB TXT 举报
"J2SE总结文档概述" Java 2 Standard Edition (J2SE), 或者称为Java SE, 是Java平台的核心版本,提供了面向对象的编程环境,用于开发桌面应用程序、服务器端应用以及企业级软件。这篇总结文件主要包含了Java语言的基础概念、数据类型、控制结构以及迭代器等关键知识点。 **1. 数据类型与常量** - Java中的基本数据类型包括: byte (占用1个字节),short (2个字节),int (4个字节),long (8个字节),float (4个字节单精度浮点数),double (8个字节双精度浮点数),boolean (占用1个字节,仅能取真或假),char (2个字节,用于存储Unicode字符)。例如,声明一个整数变量 `int i = 2` 和一个浮点数 `double n = i + 3.0`。 **2. 字符串处理** - 使用String类进行字符串操作,可以设置初始值为null。例如,`String str = "Hello";`。需要注意的是,Java中的字符串是不可变的,意味着每次对字符串进行修改都会创建一个新的字符串对象。 **3. 访问修饰符** - Java提供四种访问修饰符:public(公共,可被所有类访问)、private(私有,只能在定义它的类内部访问)、protected(受保护,同一包内及子类可以访问)和default(包内可见,若无其他修饰则默认为默认访问)。这些修饰符用于控制类、方法和字段的可见性。 **4. 控制结构** - if-else语句用于条件判断,如 `if (condition) {} else {}`。在Java中,`==`用于比较基本数据类型,而`.`用于对象间的引用比较。 - switch语句在Java 7及以上版本可用,支持多种类型(byte, short, int, char, String),用于简化多分支选择,如: ```java switch (variable) { case value1: // 处理逻辑 break; case value2: // 处理逻辑 break; default: // 处理默认情况 break; } ``` - 循环结构:for和while循环用于重复执行代码块。for循环通常用于已知循环次数的情况,如 `for (int i = 0; i < 10; i++) { ... }`;while循环则根据布尔表达式条件决定是否继续执行,如 `while (i < 10) { i++; }`。 **5. 迭代器与集合操作** - 遍历集合时,可以使用Iterator接口,如 `Iterator it = list.iterator();`。通过`hasNext()`检查元素是否存在,`next()`获取下一个元素。这种方式避免了在循环内部修改集合导致的ConcurrentModificationException异常。 这份J2SE总结文档涵盖了Java编程的基础,包括数据类型、控制结构以及迭代器的使用,对于学习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()); } } } }

248 浏览量