Java技术入门:JDK安装与HelloWorld示例

需积分: 10 15 下载量 61 浏览量 更新于2024-09-20 收藏 195KB DOC 举报
“Java技术教程.基础篇.pdf”主要涵盖了Java语言的基础概念,包括其特点、版本分类、相关术语解释、JDK的安装与环境变量配置,以及简单的程序编写和执行过程。教程还提及了基本的输入输出应用。 1. **Java语言的特点** - **简单性**:Java设计时考虑了C++的复杂性,旨在提供更简洁的语法。 - **面向对象**:支持类、对象、封装、继承和多态等面向对象特性。 - **分布性**:Java具有强大的网络通信能力,可以处理TCP/IP协议,实现分布式计算。 - **健壮性**:通过异常处理和垃圾回收机制确保程序稳定性。 - **安全性**:提供了安全模型,限制了代码的某些操作,防止恶意代码。 - **体系结构中立**:Java字节码可以在任何支持JVM的平台上运行。 - **解释执行**:源代码被编译成字节码后,由JVM解释执行。 - **可移植性**:由于“一次编写,到处运行”的特性,Java代码可以在不同系统上运行。 - **高效性**:JIT(Just-In-Time)编译器提高了运行时性能。 - **多线程**:内置多线程支持,使得并发编程更加便捷。 - **动态性**:允许在运行时添加新的功能,适应变化的需求。 2. **Java的三个版本** - **J2SE(Java Standard Edition)**:适用于桌面应用和服务器端开发。 - **J2EE(Java Enterprise Edition)**:用于开发企业级应用,如Web应用、EJB等。 - **J2ME(Java Micro Edition)**:针对嵌入式设备和移动应用。 3. **相关基本概念** - **JDK(Java Development Kit)**:包含Java编译器、JVM、开发工具和库。 - **SDK(Software Development Kit)**:泛指任何平台的软件开发工具包,包括JDK。 - **JRE(Java Runtime Environment)**:仅包含运行Java程序所需的组件,不包含开发工具。 - **JVM(Java Virtual Machine)**:负责执行Java字节码。 - **API(Application Programming Interface)**:预定义的函数集合,供开发者使用。 4. **JDK的安装与环境变量设置** - 设置`JAVA_HOME`指向JDK的安装目录,便于其他程序引用。 - 将JDK的`bin`目录添加到`Path`变量,使得命令行可以识别Java工具。 - `CLASSPATH`用于指定类加载器查找类文件的路径,通常包括当前目录(`.`)和JDK的`lib`目录。 5. **HelloWorld示例** - 这是Java编程的入门示例,展示了如何定义一个类并打印“HelloWorld”。 6. **javac.exe与java.exe** - **javac.exe**:Java编译器,将`.java`源文件编译成`.class`字节码文件。 - **java.exe**:Java解释器,负责执行`.class`文件。 7. **基本输入输出应用** - Java提供了`System.out.println()`用于输出,`Scanner`类用于从控制台获取用户输入,`FileReader`和`BufferedReader`等类用于文件I/O操作。 这份教程是Java初学者的良好起点,涵盖了从安装环境到编写和运行简单程序的全过程,为进一步深入学习Java打下坚实基础。

2023-06-02 23:12:37 WARN NativeCodeLoader:60 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). Traceback (most recent call last): File "mysqlTest.py", line 12, in <module> jdbcDF=spark.read.format("jdbc").option("url","jdbc:mysql://localhost:3306/sparktest?useSSL=false").option("driver","com.mysql.cj.jdbc.Driver").option("dbtable","employee").option("user", "root").option("password", "123456").load() File "/usr/local/spark/python/pyspark/sql/readwriter.py", line 172, in load return self._df(self._jreader.load()) File "/usr/local/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in __call__ File "/usr/local/spark/python/pyspark/sql/utils.py", line 63, in deco return f(*a, **kw) File "/usr/local/spark/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py", line 328, in get_return_value py4j.protocol.Py4JJavaError: An error occurred while calling o31.load. : java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.apache.spark.sql.execution.datasources.jdbc.DriverRegistry$.register(DriverRegistry.scala:45) at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$5.apply(JDBCOptions.scala:99) at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$5.apply(JDBCOptions.scala:99) at scala.Option.foreach(Option.scala:257) at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.<init>(JDBCOptions.scala:99) at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.<init>(JDBCOptions.scala:35) at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:32) at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:318) at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:223) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:211) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:167) 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 py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) at py4j.Gateway.invoke(Gateway.java:282) at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:238) at java.lang.Thread.run(Thread.java:748)

2023-06-03 上传