当前位置: 首页 > news >正文

初识Java

一、Java语言概述

1.1 Java是什么

Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义
不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合


二、初识Java的main方法

2.1 main方法示例

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

通过上述代码,我们可以看到一个完整的Java程序的结构,Java程序的结构由如下三个部分组成:

1.源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。

2.类:类中带有一个或多个方法。方法必须在类的内部声明。

3.方法:在方法的花括号中编写方法应该执行的语句。

总结一下:类存在于源文件里面;方法存在于类中;语句存在于方法中

注意:在一个源文件中只能有一个public修饰的类,而且源文件名字必须与public修饰的类名字相同


IDEA快捷键:

快捷键组合实现效果
psvm + Tab键 / main + Tab键public static void main(String[] args)
sout + Tab键System.out.println()

2.2 运行Java程序

Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节码组成的平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行


(1)使用记事本或者IDEA(集成开发环境)编写Java源程序

(2)使用javac.exe编译器编译Java源程序,生成xxx.class的字节码文件

语法格式:javac xxx.java

(3)使用java运行xxx.class字节码文件 语法格式:java xxx

注意:在运行Java程序前,必须先安装好JDK(Java Development Kit即Java开发工具包),JDK里面就包含了javac和java工具,Java程序最终是在JVM(Java虚拟机)中运行的


【面试题】JDK、JRE、JVM之间的关系?

·JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器Javac与自带的调试工具Jconsole,jstack等

·JRE(Java Runtime Environment):Java运行环境,包含了JVM,java基础类库。是使用Java语言编写程序运行的所需环境

·JVM(Java Virtual Machine):Java虚拟机,运行Java代码

简单来说:

JDK=JRE+开发工具集(比如:javac)

JRE=JVM+JaveSE标准类库


编写和运行第一个Java程序时,可能会遇到的一些错误:

1. 源文件名后缀不是.java

2. 类名与文件名不一致

3. main方法名字写错:mian

4. 类没有使用public修饰

5. 方法中语句没有以分号结尾

6. 中文格式的分号

7. JDK环境没有配置好,操作系统不能识别javac或者java命令


三、 注释

3.1 基本规则

Java中的注释主要分为以下三种

单行注释:// 注释内容(用的最多)

                 快捷键:Ctrl + /

                使用Ctrl+ /, 添加单行注释,再次使用,去掉行注释

多行注释:/* 注释内容*/(不推荐)

                  快捷键:Ctrl +Shift+ /
             使用 Ctrl+Shift+ /, 添加多行注释,再次使用,去掉多行注释;

文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),可以被javadoc工具解析,生成一套以网页文件形式体现的程序说明文档

                   快捷键:  / **+Enter
             输入/ **,点击“Enter”,自动根据参数和返回值生成注释模板

注意:

1. 多行注释不能嵌套使用

2. 不论是单行还是多行注释,都不参与编译,即编译之后生成的.class文件中不包含注释信息


3.2 注释规范

1. 内容准确: 注释内容要和代码一致, 匹配, 并在代码修改时及时更新.

2. 篇幅合理: 注释既不应该太精简, 也不应该长篇大论.

3. 使用中文: 一般中国公司都要求使用中文写注释, 外企另当别论.

4. 积极向上: 注释中不要包含负能量(例如 领导 SB 等)


四、标识符

在上述程序中,Test称为类名,main称为方法名,也可以将其称为标识符,即:在程序中由用户给类名、方法名或者变量所取的名字。

【硬性规则】

标识符中可以包含:字母、数字以及 下划线$ 符号等等。

注意:【软性建议】

标识符不能以数字开头

不能是关键字

严格区分大小写

类名:每个单词的首字母大写(大驼峰)

方法名:首字母小写,后面每个单词的首字母大写(小驼峰)

变量名:与方法名规则相同(小驼峰)

一个大型的工程,是由多名工程师协同开发的,如果每个人都按照自己的方式随意取名,比如:person、PERSON、Person、_person,将会使程序非常混乱。如果大家在取名时能够遵守一定的约束(即规范),那多人写除的代码仿佛一个人写的。


【问】下面那些标识符是合法的?

A:class B:HelloWorld C:main D:123abc E:ARRAY_SIZE F: $name G: name:jim

【答】:BCEF(C这样的写法,尽量不要出现,小心挨打)

A:class是关键字

D:以数字开头

G:‘ :’符号不允许出现


五、关键字

通过观察上述程序可以发现,public、class以及static等颜色会发生变化,将这些具有特殊含义的标识符称为关键字。即:关键字是由Java语言提前定义好的,有特殊含义的标识符,或者保留字。

注意:用户不能使用关键字定义标识符

在Java中关键字有很多,这里给大家列出来一部分,先了解下后序在逐一详细解释。


本次内容就到此啦,欢迎评论区或者私信交流,觉得笔者写的还可以,或者自己有些许收获的,麻烦铁汁们动动小手,给俺来个一键三连,万分感谢 !  

相关文章:

初识Java

一、Java语言概述 1.1 Java是什么 Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义 不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境&a…...

bootstrap.properties中配置Nacos

bootstrap.properties用于在Spring Boot应用程序启动阶段加载外部配置 优先级高:在应用程序启动时首先加载,用于配置应用程序的基础设置,如配置数据源、日志、配置服务器 外部配置:加载外部配置源(如远程配置服务器&a…...

【CVPR 2023】Diffusion Models高分辨率长视频生成 Align your Latents

Diffusion Models专栏文章汇总:入门与实战 前言:CVPR 2023年的工作《Align your Latents: High-Resolution Video Synthesis with Latent Diffusion Models》实现了高帧率高分辨率长视频生成,并在保持时间一致性上做了很多工作。这篇博客详细解读一下背后的原理,并总结一下…...

[Linux 基础] make、Makefile自动化构建代码工具

文章目录 1、make与Makefile是什么2、为什么要有make与Makefile3、怎么实现一个Makefile文件3.1 如何编写Makefile文件3.1.1 依赖关系3.1.2 依赖方法 3.2 如何清理项目3.2.1 如何编写3.2.2 clean详解 3.3 make的使用3.4 原理3.4.1 查看文件修改时间 1、make与Makefile是什么 m…...

vue3结合Cesium加载倾斜摄影3dtiles

这篇文章主要是为了记录加载3dtiles时模型与地形有时候存在一些高度上的差异,为此将解决方法做一个记录,便于其他读者使用。 加载倾斜摄影3dtitle //加载倾斜摄影图像 function init3Dtiles() {const tileSet new Cesium3DTileset({url: "http://1…...

面对DDoS和APT攻击,我们该如何有效防御?

关于DDoS(Distributed Denial of Service)分布式拒绝服务攻击,是指攻击者通过技术手段,在很短的时间内对目标攻击网站发出大量请求,极大地消耗相关网站的主机资源,导致其无法正常服务。 打个比方来说&#…...

【前端学习】—Vue生命周期(十七)

【前端学习】—Vue生命周期(十七) 一、Vue生命周期 二、Vue父子组件生命周期调用顺序 三、Vue中在哪个生命周期内调用异步请求...

ant的Path-like结构

ant可以使用path和classpath结构指明路径。path和classpath可以包含内嵌的元素&#xff0c;类似下面的通用形式&#xff1a; <classpath><pathelement path"${classpath}"/><pathelement location"lib/helper.jar"/> </classpath>…...

Java设计模式之组合模式

比如在实现一个文件管理系统时&#xff0c;对于客户端来说&#xff0c;如果需要区分文件与文件夹的使用&#xff0c;会比较麻烦&#xff0c;使用组合模式可以在使用不同对象时使用方法保持一致性。 定义 又名部分整体模式&#xff0c;是用于把一组相似的对象当作一个单一的对…...

划词搜索IP插件

插件背景 浏览器插件可以让用户根据个人工作及日常需求来定制浏览器的功能和界面。当用户在网页上看到一些IP地址时&#xff0c;或许会好奇它们的来源和归属。传统的做法是&#xff0c;用户需要复制这个IP地址&#xff0c;然后跳转到埃文科技旗下的http://IPUU.net网站进行查询…...

LeetCode刷题---简单组(一)

文章目录 &#x1f352;题目一 507. 完美数&#x1f352;解法一 &#x1f352;题目二 2678. 老人的数目&#x1f352;解法一 &#x1f352;题目三 520. 检测大写字母&#x1f352;解法一&#x1f352;解法二 &#x1f352;题目一 507. 完美数 对于一个 正整数&#xff0c;如果它…...

如何能通过表面挖掘到深层次的底层思维?

如何能通过表面挖掘到深层次的底层思维&#xff1f; 挖掘深层次的底层思维是一项复杂且细致的工作&#xff0c;通常涉及到个人反思、观察、沟通和分析等多个方面。下面是一些可能会对你有帮助的策略和方法&#xff1a; 1. 提问的艺术 五次为什么&#xff1a;这是一种简单而有…...

【单片机学习笔记】Windows+Vscode+STM32F4+freeRTOS+FatFs gcc环境搭建

为摒弃在接受keil邮件&#xff0c;研究了下gun编译&#xff0c;以STM32F407为例&#xff0c;简单记录 1. 软件包准备 Git 选择对应版本直接安装即可https://git-scm.com/download/winmakegcc ​ 1&#xff09;将上述软件包放置于C盘根目录 2&#xff09;添加环境变量 3&am…...

Oracle 控制文件的作用与控制文件创建

1、控制文件存储的数据信息 1) 数据库名称和数据库唯一标识符 (DBID)&#xff0c;通过 select name,dbid from v$database; 查 询 DBID 和数据库名称 2) 创建数据库的时间戳 3) 有关数据文件、联机重做日志文件、归档重做日志文件的信息 4) 表空间信息 5) 检查点信息 6) 日志序…...

bootloader介绍

什么是bootloader bootloader是处理器上电后执行的第一个程序boot&#xff1a;将硬件引导到正常工作的状态loader&#xff1a;加载操作系统内核到内存的指定位置现在bootloader的功能&#xff1a;增加开机显示、开机音乐、OTA升级、固件验证等功能常见的bootloader&#xff1a…...

以太网——ARP协议工作原理

ARP目录 MAC地址一、ARP是什么?二、ARP工作原理工作机制总结三、ARP报文结构四、ARP缓存MAC地址 我们知道别人的 IP 地址后,就能够向这个 IP 地址所在的主机发送数据包。但是IP 地址只是标识网络层的地址,那么在网络层下方数据链路层是不是也有一个地址能够告诉对方主机自己…...

一文了解AIGC与ChatGPT

一、AIGC简介 1.AIGC基础 (1)AIGC是什么 AIGC是人工智能图形计算的缩写&#xff0c;是一种基于图形处理器&#xff08;GPU&#xff09;的计算技术&#xff0c;可以加速各种计算任务&#xff0c;包括机器学习、深度学习、计算机视觉等。 AIGC是一种基于GPU的计算技术&#x…...

Java利用反射和读取xml实现迷你容器

由于需要框架能实现多态&#xff0c;达到控制反转解耦。所以容器还是需要的&#xff0c;容器的存在可以简化对象获取工作&#xff0c;但是容器也不是万能的。合理使用即可&#xff0c;Spring对我来说太庞大了&#xff0c;用不着&#xff0c;为此给框架写一个迷你版容器。 容器…...

Android12之DRM基本接口实现(二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…...

普通二维码跳转微信小程序实战

简介 服务端springboot项目,前端基于uniapp的微信小程序,要求扫描二维码之后进入到小程序指定页面,下面记录一下实现过程以及过程中遇到的问题. 实现过程 下面是成功跳转的配置截图: 首先说下二维码规则,这个地方需要填写扫描二维码之后打开的地址,这个地址在我的项目里…...

Coqui STT语言模型构建:如何创建高效的语音识别评分器

Coqui STT语言模型构建&#xff1a;如何创建高效的语音识别评分器 【免费下载链接】STT &#x1f438;STT - The deep learning toolkit for Speech-to-Text. Training and deploying STT models has never been so easy. 项目地址: https://gitcode.com/gh_mirrors/st/STT …...

Golang如何做API签名验证_Golang接口签名教程【实战】

hmac.New第二个参数必须是[]byte而非string&#xff1b;密钥类型错误、签名原文拼接不一致、body重复读取、timestamp与nonce校验不严是验签失败四大主因。hmac.New 传 []byte 还是 string&#xff1f;密钥类型错就全崩签名验签失败&#xff0c;八成栽在密钥类型上。Go 的 hmac…...

从零到一:用Cursor重塑AI驱动的软件开发流程

1. 为什么你需要AI驱动的开发工具&#xff1f; 第一次接触Cursor时&#xff0c;我正被一个紧急项目压得喘不过气。客户要求两周内完成一个复杂的工业计算工具&#xff0c;传统开发方式根本来不及。抱着试试看的心态&#xff0c;我打开了这个被同行称为"程序员外挂"的…...

AllWize库:面向Wize协议的LoRa射频嵌入式驱动开发指南

1. AllWize库概述&#xff1a;面向Wize协议的嵌入式无线通信底层实现 AllWize是一个专为Wize协议设计的Arduino兼容C库&#xff0c;核心目标是为RC1701HP系列射频模块提供轻量、可靠、跨平台的硬件抽象层。该库并非通用无线协议栈&#xff0c;而是深度绑定于RadioCrafts公司推…...

SpringAI 1.0.0 实战:用阿里百炼平台免费额度,5分钟搞定你的第一个AI对话接口

SpringAI 1.0.0实战&#xff1a;零成本搭建AI对话接口的完整指南 最近在技术社区里看到不少开发者对AI应用开发跃跃欲试&#xff0c;但往往被高昂的API调用成本劝退。作为一个经历过同样困扰的开发者&#xff0c;我发现阿里百炼平台提供的免费额度简直是成本敏感型开发者的福音…...

Pixel Dream Workshop应用场景:像素风格UI组件库(按钮/滑块/图标)生成

Pixel Dream Workshop应用场景&#xff1a;像素风格UI组件库&#xff08;按钮/滑块/图标&#xff09;生成 1. 像素艺术生成新纪元 在数字产品设计领域&#xff0c;像素艺术正经历着令人振奋的复兴。Pixel Dream Workshop作为新一代AI像素艺术生成工具&#xff0c;为设计师和开…...

__block 变量内存布局详解恫

故障表现 发现请求集群 demo 入口时卡住&#xff0c;并且对应 Pod 没有新的日志输出 rootce-demo-1:~# kubectl get pods -n deepflow-otel-spring-demo -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NO…...

Loom不是银弹!Java工程师必须掌握的4层响应式适配模型(含线程模型迁移决策树)

第一章&#xff1a;Loom不是银弹&#xff01;Java工程师必须掌握的4层响应式适配模型&#xff08;含线程模型迁移决策树&#xff09;Loom 的虚拟线程极大缓解了阻塞式 I/O 的资源开销&#xff0c;但它无法自动将传统回调式或事件驱动的响应式代码&#xff08;如 Project Reacto…...

在Rocky Linux 10.1上,用kubeadm和containerd 2.2.1从零搭建k8s 1.35.0集群(含Cilium网络配置)

在Rocky Linux 10.1上构建Kubernetes 1.35.0生产级集群&#xff1a;从Containerd配置到Cilium网络实战 当企业级应用向云原生架构迁移时&#xff0c;一个稳定高效的Kubernetes集群成为技术栈的核心枢纽。本文将手把手带你在Rocky Linux 10.1上&#xff0c;使用kubeadm工具链和…...

突破性AI语音转换实战指南:RVC从入门到精通的完整路径

突破性AI语音转换实战指南&#xff1a;RVC从入门到精通的完整路径 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Convers…...