Java基础(概念,环境,包,IDEA,)

news2024/11/18 9:28:45

目录

什么是Java

什么是程序

Java简史

Java技术体系平台

Java语言的特点

搭建环境

搭建Java开发环境

理解三个核心概念

安装Java环境

配置环境变量

编写第一段代码:HelloWorld

创建源代码文件

编写代码

保存文件

编译Java程序

运行程序

查看输出

编写规范

文件命名和扩展名规范

代码格式和风格规范

注释规范

示例代码

总结

定义和作用

包的代码示例

包的命名规范

总结


什么是Java

Java是一种广泛使用的高级编程语言,由Sun Microsystems公司(现为Oracle公司的一部分)在1995年推出。Java的设计目标是允许开发者编写一次代码,然后在任何支持Java的平台上运行,无需重新编写。Java的创始人是詹姆斯·高斯林(James Gosling),其标志性的Logo是一杯冒着热气的咖啡,象征着Java语言的温暖和活力。

什么是程序

程序是一系列指令,用于指导计算机执行特定的任务或解决特定的问题。Java作为一种编程语言,是编写这些指令的工具之一。与其他编程语言如C、C++、PHP等一样,Java可以用来创建各种类型的程序。

Java简史

Java的历史始于1995年,自那以来,Java平台经历了多个重要版本的发布,包括JDK1.0、JDK1.1、JDK1.2等。随着时间的推移,Java被分为三个主要的平台版本:J2SE、J2EE和J2ME,分别针对不同的应用场景。

2004年,JDK1.5的发布标志着一个重要的里程碑,随后Java的命名方式也发生了变化。2009年,Oracle公司收购了Sun公司,此后Java的发展进入了一个新的阶段。

从2018年开始,Java的新版本每六个月发布一次,以保持语言和平台的现代化和竞争力。

Java技术体系平台

Java技术体系包括三个主要的平台:

  • Java SE(Java Standard Edition):这是Java的核心部分,提供了Java语言的基础功能和API,适用于开发桌面应用程序和服务器端应用程序。

  • Java EE(Java Enterprise Edition):这个平台为企业级应用程序的开发提供了一套完整的解决方案,包括了用于Web应用开发的Servlet和JSP等技术。

  • Java ME(Java Micro Edition):这个平台针对的是移动设备和嵌入式系统,提供了适用于这些设备的轻量级Java API。

Java语言的特点

Java语言具有多个显著特点:

  • 开源:Java是一个开源项目,其源代码可以被公众访问和使用,这促进了社区的发展和技术的创新。

  • 相对简单:Java去除了C++中的一些复杂特性,简化了语言的使用,使得程序员更容易上手。

  • 跨平台:Java的“一次编写,到处运行”的理念意味着Java程序可以在多种操作系统上运行,无需针对每个平台进行特定的修改。

  • 面向对象:Java是一种面向对象的语言,支持封装、继承和多态等面向对象的特性,使得程序设计更加模块化和易于维护。

  • 分布式:Java提供了丰富的网络编程类库,支持分布式应用程序的开发。

  • 健壮性:Java编译器能够检测出许多潜在的错误,提高程序的稳定性和可靠性。

  • 多线程:Java支持多线程编程,使得程序能够更有效地利用计算资源,提高性能。

  • 安全性:Java设计时就考虑了安全性,提供了沙箱模型等机制,保护程序和数据不受恶意代码的侵害。

Java的这些特点使其成为了一个强大而灵活的编程工具,适用于从小型应用程序到大型企业级解决方案的各种开发需求。随着技术的不断进步,Java也在不断地发展和完善,以满足现代软件开发的挑战和需求。


搭建环境

为了开始Java编程,搭建一个合适的开发环境是至关重要的。

搭建Java开发环境

理解三个核心概念

在开始之前,了解以下三个关于Java环境的核心概念是非常有帮助的:

  • JVM(Java Virtual Machine):Java虚拟机是Java平台的核心,它负责执行Java程序。Java的跨平台特性正是通过在不同操作系统上安装相应的JVM实现的。简而言之,Java程序是在JVM中运行的。

  • JRE(Java Runtime Environment):Java运行环境包括JVM和Java程序运行所需的核心类库。如果你只需要运行(而非开发)Java程序,那么只需在计算机上安装JRE即可。JRE=JVM+java标准库

  • JDK(Java Development Kit):Java开发工具包是为Java开发者准备的,它不仅包含了JRE,还包括了一系列的开发工具,如编译器、调试器等。如果你打算进行Java开发,那么应该安装JDK,因为它包含了JRE和所有必要的开发工具。JDK=JRE+开发工具包

  • 三者关系

安装Java环境

根据实际需求,可以选择下载不同版本的JDK。由于JDK 8是一个稳定且广泛使用的版本,因此建议下载JDK 8。

  • 官网下载地址

Download the Latest Java LTS Free

  • JDK 8下载地址

Download the Latest Java LTS Free

在下载完成后,根据安装向导进行安装。建议将所有软件安装在一个非中文、无空格的目录中,以避免潜在的环境变量问题。

配置环境变量

正确配置环境变量是确保Java程序能够顺利运行的关键。以下是需要配置的环境变量及其说明:

  • JAVA_HOME:这个环境变量是供其他基于Java开发的软件使用的。它应该指向你的JDK安装目录,例如:C:\Program Files\Java\jdk1.8.0_171

  • classpath:这是类搜索路径,当执行java命令时,系统会在classpath指定的路径下寻找相应的.class字节码文件。通常,可以将其设置为.,表示当前路径。从JDK 5开始,如果使用的是IDE(集成开发环境),则通常不需要手动设置classpath。

  • path:这个环境变量是一个路径的集合,用于帮助操作系统快速找到可执行程序。需要在现有的path变量中添加JDK的bin目录路径。格式如下:

原有值;%JAVA_HOME%\bin

或者直接使用JDK安装目录的bin路径:

原有值;C:\Program Files\Java\jdk1.8.0_171\bin
路径的集合, 以 ; 作为分割符, 该配置在系统中存在无数个
基本上每一个软件的环境变量均会包含该配置
该配置的主要作用是偷懒, 很多软件的执行命令存放在对应目录中, 一般在bin目录
path的作用只是能够使得计算机快速的找到对应的可执行程序
在path中配置的地址计算机均会自动搜索
其值的格式: 原有值;JDK安装目录/bin
可以使用 %JAVA_HOME% 自动获取 JDK 安装目录
其值另一种写法: 原有值;%JAVA_HOME%/bin

配置环境变量的步骤如下

  • 打开“计算机”或“此电脑”,右键点击选择“属性”。

  • 在系统属性窗口中,点击“高级系统设置”。

  • 在系统属性对话框中,点击“环境变量”按钮。

  • 在环境变量窗口中,你可以编辑或添加上述提到的JAVA_HOME、classpath和path变量。

  • 确保所有变量设置正确无误后,点击“确定”保存更改。

完成以上步骤后,你的Java开发环境就搭建完成了。现在你可以开始编写和运行Java程序了。记得在开始编程之前,测试环境是否配置正确,可以通过在命令行中输入java -versionjavac -version来检查Java运行环境和编译器是否正确安装。

编写第一段代码:HelloWorld

编写一个简单的"Hello World"程序是开始学习任何一种编程语言的传统方式,Java也不例外。

创建源代码文件

首先,需要创建一个新的文本文件并将其命名为Hello.java。文件名必须与公共类的名称相匹配,这是Java的一个规则。

编写代码

使用文本编辑器(如记事本、Notepad++、Sublime Text等)打开Hello.java文件,并输入以下代码:

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

这段代码定义了一个名为Hello的公共类,其中包含一个main方法。main方法是程序的入口点,也就是程序开始执行的地方。System.out.println是Java中用于打印输出到控制台的方法。

保存文件

保存Hello.java文件到你选择的目录中。

编译Java程序

打开命令提示符cmd(Windows)或终端(macOS/Linux),然后导航到Hello.java文件所在的目录。使用以下命令编译Java程序:

javac Hello.java

如果编译成功,你不会看到任何输出。但是,这将在当前目录下生成一个名为Hello.class的字节码文件。这个.class文件是Java虚拟机(JVM)可以执行的。

运行程序

在同一个目录下,使用以下命令运行你的程序:

java Hello

注意,这里不需要指定文件扩展名.class

查看输出

执行上述命令后,你将在终端或命令提示符窗口中看到输出:

Hello World

这表示你的Java程序已经成功运行,并且正确地打印出了"Hello World"。

那么, 现在第一个Java程序就写好了!

编写规范

遵循编程规范是编写高质量、可维护代码的重要部分。在Java编程中,有几个关键的规范和最佳实践需要遵守:

文件命名和扩展名规范
  • 文件扩展名:Java源代码文件的名称必须以.java结尾,这是Java文件的标准扩展名,表示该文件包含Java源代码。

  • 文件名匹配:公共类的名称必须与文件名完全一致,并且文件名的首字母必须大写。例如,如果类名为Hello,则文件名应为Hello.java

代码格式和风格规范
  • 类声明:Java文件的开头应包含一个公共类声明,如public class Hello

  • 换行和缩进:为了提高代码的可读性,应该在代码中适当地使用换行和缩进。可以使用tab键进行缩进,或者使用编辑器/IDE的自动格式化功能。

  • 代码行长度:尽量保持代码行的长度适中,避免过长的代码行,以便于阅读和维护。

  • 英文标点符号:代码中的所有符号都必须是英文标点符号,例如使用英文分号;而不是中文分号

  • 大小写敏感:Java是大小写敏感的语言,因此必须正确使用大小写,以确保代码的正确性。

注释规范
  • 文档注释:使用/**开始,*/结束的文档注释,可以用来生成API文档。文档注释通常用于类、方法和字段的说明。

  • 多行注释:使用/*开始,*/结束的多行注释,可以用来暂时注释掉代码块或者对多行代码进行说明。

  • 单行注释:使用//开始的单行注释,用来对当前行的代码进行说明。

示例代码

/**
 * 这是文档注释
 * 这是所有程序员的入门级代码
 */
public class Hello {
    /*
     * 这是一个多行注释
     * 这个方法用来做基本的测试时使用
     * 它是一个固定写法
     */
    public static void main(String[] args) {
        // 这是一个单行注释
        // 该代码用于在控制台(运行的界面)打印一个数据
        // 该数据叫做: Hello World
        System.out.println("Hello World");
    }
}

在这个示例中,我们使用了文档注释、多行注释和单行注释来对代码进行说明。注释是编程中非常重要的一部分,它帮助其他开发者(或未来的你)理解代码的意图和功能。

总结

遵循上述规范不仅可以帮助你编写出更加清晰、易于维护的代码,还可以提高团队协作的效率。良好的编程习惯和规范是成为一名专业开发者的基础。记住,代码的可读性和可维护性往往比代码的执行效率更为重要。


在Java中,包(package)是一种组织类和接口的方式,它提供了一种将类分组的方法,使得大型项目中的类可以有条不紊地进行管理。包的使用可以避免命名冲突,提供了类和接口的访问控制,并且可以作为Java库的一部分进行分发。

定义和作用

  • 定义:包通过关键字package在Java文件中定义,位于文件的最顶部。

  • 作用:包的主要作用是将逻辑相关的类组织在一起,并且提供了一个保护命名空间,防止类的名称冲突。

包的代码示例

/**
 * 这是文档注释
 * 这是所有程序员的入门级代码
 */
package com.day01; // 声明Java文件所在的包

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

在这个例子中,Hello类被放在了com.day01这个包中。这意味着Hello类是com这个顶层包的一个子包,day01com包下的一个子包。

包的命名规范

  • 小写字母:包名应该全部由小写英文字母组成,这是为了避免与Java的保留关键字冲突。

  • 分层结构:包名通常采用反向互联网域名的方式来表示层级关系,例如com.example.project

  • 域名:通常使用公司的互联网域名或者组织名称的逆序,如comorg

  • 企业名/产品名:可以是企业的名称或者产品名称,通常选择一个有辨识度的名称。

  • 项目名:根据具体的项目名称来命名。

  • 具体包/子包名:根据项目中的模块或功能来划分,可以有多个层级。

总结

包是Java中非常重要的一个概念,它不仅有助于代码的组织和管理,还有助于保护类的名称空间,防止命名冲突。在实际开发中,合理地使用包可以提高代码的可维护性和可读性,使得项目结构更加清晰。 同时,遵循一定的包命名规范也是非常重要的,这有助于其他开发者更好地理解和使用你的代码。通常,一个良好的包命名应该能够反映出类的功能和归属,使得代码的组织结构直观且易于理解。


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

未能加载文件或程序集socutdata或它的某一个依赖项试图加载格式不正确的程序

未能加载文件或程序集socut data或它的某一个依赖项试图加载格式不正确的程序 Socut.Data.dll找不到类型或命名空间名称 把bin目录下面 的socut.data.dll删除就行了 C#报错未能加载文件或程序集socut data或它的某一个依赖项试图加载格式不正确的程序 "/"应用程序…

数据结构——排序算法

1、排序的概念 排序是指的是将一组数据(如数字、单词、记录等)按照某种特定的顺序(升序或降序)进行排列的过程。排序算法是实现排序的程序或方法,它们在软件开发和数据处理中扮演着至关重要的角色。 排序算法可以根据…

Spring Boot 使用过滤器、拦截器、监听器

前言 作用 过滤器(Filter):当有一堆请求,只希望符合预期的请求进来。拦截器(Interceptor):想要干涉预期的请求。监听器(Listener):想要监听这些请求具体做了…

【C++练级之路】【Lv.17】【STL】set类和map类的模拟实现

快乐的流畅:个人主页 个人专栏:《C语言》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 引言一、红黑树(改造版)1.1 结点1.2 迭代器1.2.1 operator1.2.2 operator- - 1.3 本体1.…

Stable Diffusion XL之使用Stable Diffusion XL训练自己的AI绘画模型

文章目录 一 SDXL训练基本步骤二 从0到1上手使用Stable Diffusion XL训练自己的AI绘画模型2.1 配置训练环境与训练文件2.2 SDXL训练数据集制作(1) 数据筛选与清洗(2) 使用BLIP自动标注caption(3) 使用Waifu Diffusion 1.4自动标注tag(4) 补充标注特殊tag(5) 训练数据预处理(标注…

什么是物联网监控平台?部署物联网平台有什么作用?

随着物联网技术的飞速发展,越来越多的企业开始关注并投入到这一领域。物联网监控平台作为连接物理世界与数字世界的桥梁,正逐渐成为企业数字化转型的关键组件。今天,我们将深入探讨物联网监控平台的定义、部署物联网平台的作用,以…

企微获客助手功能,行为触发如何实现回传的?

获客助手,这个听起来就相当酷炫的名字,它实际上是一个帮助企业将推广流量快速导入企业微信的神器。通过它,企业可以吸引越来越多的用户加为好友,从而建立起更紧密的客户关系。但是,如何进一步提升导入企业微信的流量质…

Docker数据卷挂载

一、容器与数据耦合的问题: 数据卷是虚拟的,不真实存在的,它指向文件中的文件夹 ,属主机文件系统通过数据卷和容器数据进行联系,你改变我也改变。 解决办法: 对宿主机文件系统内的文件进行修改,会立刻反应…

信号处理--情绪分类数据集DEAP预处理(python版)

关于 DEAP数据集是一个常用的情绪分类公共数据,在日常研究中经常被使用到。如何合理地预处理DEAP数据集,对于后端任务的成功与否,非常重要。本文主要介绍DEAP数据集的预处理流程。 工具 图片来源:DEAP: A Dataset for Emotion A…

docker关闭全部运行容器命令是什么?

环境: docker v22.1 问题描述: docker关闭全部运行容器命令是什么? 解决方案: 要关闭所有正在运行的Docker容器,可以使用如下命令: docker stop $(docker ps -a -q)这条命令首先执行 docker ps -a -q…

WiFiSpoof for Mac wifi地址修改工具

WiFiSpoof for Mac,一款专为Mac用户打造的网络隐私守护神器,让您在畅游互联网的同时,轻松保护个人信息安全。 软件下载:WiFiSpoof for Mac下载 在这个信息爆炸的时代,网络安全问题日益凸显。WiFiSpoof通过伪装MAC地址&…

【QQ版】QQ群短剧机器人源码 全网短剧机器人插件

内容目录 一、详细介绍二、效果展示2.效果图展示 三、学习资料下载 一、详细介绍 QQ版本可以兼容两个框架(HTQQ,MYQQ这两个的vip版也可以使用) 支持私聊与群聊,命令是 搜剧影视关键词 如果无法搜索到影视资源,请使用下方命令&…

网络链路层之(2)PPP协议

网络链路层之(2)PPP协议 Author: Once Day Date: 2024年3月27日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: 通信网络技术_Once-Day的博客-CSDN…

[TS面试]keyof和typeof关键字作用?

keyof和typeof关键字作用? keyof 索引类型查询操作符, 获取索引类型属性名, 构成联合类型 typeof 获取一个变量或者对象的类型 let str:string ‘hello’ // typeof str >:string keyof typeof 获取 联合类型的key enum A{A, B, C }type unionType keyof typeof A; /…

JDK8的下载安装与环境变量配置教程

前言 官网下载:Java Archive Downloads - Java SE 8u211 and later 现在应该没人用32位的系统了吧,直接下载Windows x64 Installer jdk-8u391-windows-x64.exe 一、安装JDK 1. 打开jdk-8u391-windows-x64.exe 2. 直接下一步 3. 这个地方不要动他&…

python opencv稍基础初学

傅里叶变换 傅里叶变换f​​​​​傅里叶分析之掐死教程(完整版)更新于2014.06.06 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/19763358 相当nice 傅里叶变换的作用 高频:变化剧烈的灰度分量,例如边界 低频:变…

P8649 [蓝桥杯 2017 省 B] k 倍区间:做题笔记

目录 思路 代码思路 代码 推荐 P8649 [蓝桥杯 2017 省 B] k 倍区间 思路 额嗯,这道题我刚上来是想到了前缀和,但是还要判断每个子序列,我就两层for嵌套,暴力解了题。就是我知道暴力肯定过不了但是写不出来其他的[留下了苦…

[linux] AttributeError: module ‘transformer_engine‘ has no attribute ‘pytorch‘

[BUG] AttributeError: module transformer_engine has no attribute pytorch Issue #696 NVIDIA/Megatron-LM GitHub 其中这个答案并没有解决我的问题&#xff1a; import flash_attn_2_cuda as flash_attn_cuda Traceback (most recent call last): File "<stdi…

golang 在多线程中避免 CPU 指令重排

发布日期&#xff1a;2024-03-26 16:29:39 起因 golang 的发明初衷便是多线程&#xff0c;是一门专门用于多线程高并发的编程语言。其独创的 GMP 模型在多线程的开发上提供了很大的便利。 现代计算机基本上都是多核 CPU 的结构。CPU 在进行指令运行的时候&#xff0c;为了提高…

基于大语言模型的云故障根因分析|顶会EuroSys24论文

*马明华 微软主管研究员 2021年CCF国际AIOps挑战赛程序委员会主席&#xff08;第四届&#xff09; 2021年博士毕业于清华大学&#xff0c;2020年在佐治亚理工学院做访问学者。主要研究方向是智能运维&#xff08;AIOps&#xff09;、软件可靠性。近年来在ICSE、FSE、ATC、EuroS…