初步了解JavaSE

目录

前言:

一、Java SE主要包含模块:

二、JavaSE的环境搭建

三、JavaSE简单入门

1)文件名称不对,如果有一个叫 helloworld.java,但是class命名为HelloWord.

2)如果希望我们文件名称和类名不一致,但又希望编译能够通过,如何做?

3)如果我们的文件中有多个类,那如何操作:


前言:

        Java SE(Java Standard Edition,Java标准版)是Java技术的核心和基础,它是Java ME和Java EE编程的基础。Java SE是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。Java SE提供了一个程序开发环境,包括编译器等开发工具、软件库及Java虚拟机(JVM)。这个环境支持跨平台、动态的Web、Internet计算,推动了Web的迅速发展。

一、Java SE主要包含模块:

  1. 基础类库:提供了丰富的基础类库,包括各种数据类型、集合框架、I/O、网络通信、安全和XML解析等功能。
  2. JVM:负责将Java字节码转换为机器代码并执行程序,提供内存管理和优化机制。
  3. 开发工具:包括编译器、调试器、集成开发环境(IDE),如Eclipse和IntelliJ IDEA。
  4. 多线程支持:提供了强大的多线程支持,实现并行计算和高并发处理。
  5. 图形用户界面:提供了Swing和AWT框架,用于构建跨平台的图形用户界面(GUI)应用程序。
  6. 安全性:具有强大的安全机制,包括类加载机制、沙箱安全模型以及安全管理器等。
  7. 网络编程:提供了Socket和URL等API,支持基于TCP/IP和HTTP协议的网络通信2。
  8. Java SE也被称为JDK(Java Development Kit),它是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE(Java Runtime Environment)。JRE包括了Java虚拟机和Java程序所需的核心类库等3。

总结来说,Java SE是一个功能强大、跨平台、可靠性高的开发平台,被广泛应用于各种类型的应用程序开发,如桌面应用程序、服务器端应用程序、嵌入式环境和实时环境等。

二、JavaSE的环境搭建

首先从 Oracle官网
上下载对应的 JDK 版本,然后安装(或解压)到一个没有中文没有空格的目录中。如:d:\jdk-21

然后在系统环境变量中先定义一个叫 JAVA_HOME 的环境变量,它的值就是JDK的安装/解压目录,这个路径中一定要能看到 bin 目录。

然后将 JAVA_HOME配置到 Path 路径中。

三、JavaSE简单入门

入门一个程序,当然是写hello word啦,接下来让我们来编写一个hello word.java程序:

public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("hello world");
	}
}

然后在 cmd 窗口中输入 javac HelloWorld.java 命令来进行编译,编译成功后,会在同一目录下生成一个叫 HelloWorld.class 文件,我们再执行 java HelloWorld 命令来运行这个程序。

注意:Java程序是先要编译,然后再运行。

大家在写的过程中可以会出现的问题:

1)文件名称不对,如果有一个叫 helloworld.java,但是class命名为HelloWord.

public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("hello world");
	}
}

这是当我们进行编译时,就会报如下错误:

E:\JavaSE\exam>javac helloworld.java
helloworld.java:1: 错误: 类 HelloWorld 是公共的, 应在名为 HelloWorld.java 的文件中声明
public class HelloWorld {
       ^
1 个错误

出现这个错误的原因是因为我们在编写代码时,使用了 public 来修饰这个类,一个被 public 修饰的类它的文件名称必须和类的名称一致。

2)如果希望我们文件名称和类名不一致,但又希望编译能够通过,如何做?

假设我们的文件名称叫 test.java,它的代码如下:

class HelloWorld {
	public static void main(String[] args) {
		System.out.println("hello world");
	}
}

也就是要将 public 这个修饰符去掉。

接下来我们再次编译:javac test.java,当编译成功后,会产生一个叫 HelloWorld.class 文件,即这个编译后的文件名称是类的名称。如何运行?

我们就需要执行 java HelloWorld 命令来执行,而不是 java test 来执行。

3)如果我们的文件中有多个类,那如何操作:

假设我们的文件叫 Test.java,它的代码如下:

public class Test2 {
	public static void main(String[] args) {
		System.out.println("Test");
	}
}
public class Test1 {
	public static void main(String[] args) {
		System.out.println("Test");
	}
}

当我们进行编译时,报如下错误:

E:\JavaSE\exam>javac Test.java
Test.java:1: 错误: 类 Test2 是公共的, 应在名为 Test2.java 的文件中声明
public class Test2 {
       ^
Test.java:6: 错误: 类 Test1 是公共的, 应在名为 Test1.java 的文件中声明
public class Test1 {
       ^
2 个错误

由此我们可以得知,在一个.JAVA文件中,类名只能有且只有一个被public所修饰。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/503742.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

习题2-5 求平方根序列前N项和

本题要求编写程序,计算平方根序列 的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中按照“sum S”的格式输出部分和的值S,精确到小数点后两位。题目保证计算结果不…

docker 共享网络的方式实现容器互联

docker 共享网络的方式实现容器互联 本文以nacos连接mysql为例 前提已经在mysql容器中初始化好nacos数据库,库名nacos 创建一个共享网络 docker network create --driver bridge \ --subnt 192.168.0.0/24 \ --gateway 192.168.0.1 mynet此处可以不指定网络模式、…

【QT+QGIS跨平台编译】045:【netcdf3+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、NetCDF3介绍二、文件下载三、文件分析四、pro文件五、编译实践一、NetCDF3介绍 NetCDF(Network Common Data Form)是一种用于存储科学数据的文件格式和库。NetCDF3 是 NetCDF 的旧版本,通常指的是 NetCDF 版本 3.x。 以下是 NetCDF3 的一些特…

速腾聚创上市后首份财报:冲击年销百万台,押注人形机器人

作者 |老缅 编辑 |德新 港股「激光雷达第一股」速腾聚创,交出了上市后的首份业绩报告。 3月27日,速腾聚创发布了2023年度财报。 报告期内,公司迎来高速的业务增长——2023年总收入达到人民币11.2亿元,同比增长达到111.2%。这主…

算法学习——LeetCode力扣动态规划篇9

算法学习——LeetCode力扣动态规划篇9 1035. 不相交的线 1035. 不相交的线 - 力扣(LeetCode) 描述 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线&#x…

CCPC2020 - 秦皇岛 - G. Good Number (数学)

亚历克斯喜欢数字。 亚历克斯认为,正整数 x x x 是好数,当且仅当 ⌊ x k ⌋ \lfloor \sqrt[k]{x} \rfloor ⌊kx ​⌋ 整除 x x x 。 你能告诉他不超过 n n n 的正整数的个数吗? 输入 输入的第一行给出了测试用例的数量 T ( 1 ≤ T ≤…

Pytorch 下载失败原因

错误信息: ERROR: Could not find a version that satisfies the requirement torch (from versions: none) ERROR: No matching distribution found for torch 解决方案: 在官网看到,它需要python3.8-3.11的环境。过高和过低的版本都不…

python学习16:python中的布尔类型和条件语句的学习

python中的布尔类型和条件语句的学习 1.布尔(bool)类型的定义: 布尔类型的字面量:True表示真(是、肯定) False表示假(否、否定) True本质上是一个数字记作1,False记作0 …

208基于matlab的多目标遗传算法的无人机航路规划

基于matlab的多目标遗传算法的无人机航路规划。在三维航路中进行航路代价估计,综合考虑路径长度、隐蔽性、危险度,规划出最优路径。输出3D规划路径。程序已调通,可直接运行。 208 多目标遗传算法 无人机航路规划 - 小红书 (xiaohongshu.com)

力扣---网络延迟时间---迪杰斯特拉,弗洛伊德floyd

首先推荐博客:图论最短路径专题(力扣743、5888)_力扣 最短路径-CSDN博客 迪杰斯特拉算法: 太久没有做图论的题了,,临时抱佛脚。。 这道题可以转化为max{点x到点k的距离}。因为带权图(权值为正…

手机投屏到windows11电脑

1 安装无线投影组件 2 电脑端打开允许其他设备投影的开关 3 手机找到投屏选项 4 手机搜索可用设备连接即可 这里的官方文档给的不太好,给了一些让人眼花撩乱的信息,以下是经过整合的有效信息

Linux 给网卡配置ip

ip addr | grep eth9 ifconfig eth9 10.0.0.2 netmask 255.255.255.0 up

(十三)图像的拉普拉斯梯度锐化

环境:Windows10专业版 IDEA2021.2.3 jdk11.0.1 OpenCV-460.jar 系列文章: (一)PythonGDAL实现BSQ,BIP,BIL格式的相互转换 (二)BSQ,BIL,BIP存储格式的相互转换算法 (三…

U盘位置不可用,如何轻松应对数据恢复难题

在日常工作和生活中,U盘作为一种便捷的存储设备,经常被用于数据传输和备份。然而,有时我们可能会遇到这样一个问题:当插入U盘时,系统提示“位置不可用”或“无法访问”,这让人倍感困扰。面对这种情况&#…

JavaScript:快速入门

1. 数据类型 /** * 数据类型: number(包含整数、小数) * string(字符串类型) * boolean(布尔类型) * object(对象类型) * function(函数类型) …

使用python将pdf插入到docx中

from pdf2image import convert_from_path from docx import Document from docx.shared import Inches,Cm# 将PDF转换为图片 pages convert_from_path(4.pdf, 200) # 200是DPI,可以根据需要调整doc Document()# 计算图片在docx中应该显示的宽度 img_width Cm(2…

单细胞RNA测序(scRNA-seq)细胞分离与扩增

单细胞RNA测序入门可以查看以下文章: 单细胞RNA测序(scRNA-seq)工作流程入门 1. 单细胞的分离 如何获得单细胞,从而进行下一步的测序过程?具体有以下几种方法: 一、流式细胞仪(FACS)方法 常用的方法之…

深度学习基础模型之Mamba

Mamba模型简介 问题:许多亚二次时间架构(运行时间复杂度低于O(n^2),但高于O(n)的情况)(例如线性注意力、门控卷积和循环模型以及结构化状态空间模型(SSM))已被开发出来,以解决 Transformer 在长…

LabVIEW转动设备故障诊断系统

LabVIEW转动设备故障诊断系统 随着工业自动化技术的不断进步,转动设备在电力、化工、船舶等多个行业中扮演着越来越重要的角色。然而,这些设备在长期运行过程中难免会出现故障,如果不能及时诊断和处理,将会导致生产效率下降&…

05. 【Android教程】Android 程序签名打包

在上一章,我们创建了自己的 Android 工程,并成功的在模拟器中运行起来。同时提到,工程目录中有一个 bin 目录,运行之后我们可以在此目录下找到我们的 apk。那么不难想到,我们在点“Run”之后,系统会编译我们…