一只脚踏进Java的大门

news2024/11/19 9:26:19

Write once,Run anywhere
一杯热气腾腾的咖啡,没错,这就是Java的标志。学习Java,我们就从这杯咖啡开始。2022年10月24日🚩


Hello Java!

  • 一、认识Java从Hello world开始
  • 二、运行Java程序
    • 1、编译运行原理
    • 2、JDK、JRE、JVM以及它们之间的关系
    • 3、运行步骤展示
  • 三、注释
  • 四、标识符

一、认识Java从Hello world开始

编写java的源文件是非常简单的,我们可以创建一个test文本文件,并将后缀改为.java,这样我们就得到了java的一个源文件,然后使用文本编辑器就可以开始编码了(笔者这里使用的是notepad++)。

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

下面我们简单分析一下这段Java程序:

  1. class HelloWorld: 代表着定义个“类”, 类名叫做:“HelloWorld”,Java是个面向对象的语言。而类是面向对象的定义规则, 一个类就是一个对象。
  2. main: 并且指定了一个 main 方法, 这个是 Java 的默认主函数。固定格式为:public static void main(String[] args)
  3. System.out:是系统的输出文件。输出一串内容到控制台。

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

  1. 源文件(扩展名为.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。
  2. 类:类中带有一个或多个方法。方法必须在类的内部声明。
  3. 方法:在方法的花括号中编写方法应该执行的语句。

总结: 类存在于源文件里面;方法存在于类中;语句存在于方法中。
注意: 在一个源文件中只能有一个public修饰的类,而且源文件名字必须与public修饰的类名字相同。


二、运行Java程序

1、编译运行原理

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

也许看到这里你还是一头雾水,什么是JDKJREJVM?他们之间又有怎样的联系?别急,我们往下看:

2、JDK、JRE、JVM以及它们之间的关系

  • JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。
  • JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。
  • JVM:Java虚拟机,运行Java代码



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

3、运行步骤展示

安装配置好Java环境后,想要编译运行Java程序就会变得容易的多,下面展示在cmd中使用命令编译运行Java程序:
1.使用cd命令转到.java目录下

2.javac命令编译java源程序

3.java命令运行.class字节码文件

你有没有成功运行起来你的第一个Java程序呢?如果没有,快来看看是不是下面的问题👇
编写运行第一个Java时可能出现的错误:

  1. 源文件名后缀不是.java
  2. 类名与文件名不一致
  3. main方法名字写错:mian
  4. 类没有使用public修饰
  5. 方法中语句没有以分号结尾
  6. 中文格式的分号
  7. JDK环境没有配置好,操作系统不能识别javac或者java命令

三、注释

类似于其它开发语言,Java中也有注释的使用,注释风格主要有如下3种:

  1. 单行注释:// 注释内容(用的最多)
  2. 多行注释:/* 注释内容*/(不推荐)
  3. 文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),可以被javadoc工具解析,生成一套以网页文件形式体现的程序说明文档

注意:

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

当我们写出上述代码,在cmd编译时可能会出现如下错误:

在这里插入图片描述

这是因为windows下的默认文件编码格式为UTF-8javac执行的时候是以GBK编码的。想要解决这一问题,可以在javac后面加上-encoding UTF-8(cmd不区分大小写,除了文件名要区分大小写,其他都不用)

如果源代码中有 文档注释,在cmd中,使用javadoc工具从Java源码中抽离出注释,命令如下:

javadoc -d myname -author -version -encoding UTF-8 -charset UTF-8 HelloWorld.java

-d 创建目录 myname为目录名
-author 显示作者
-version 显示版本号
-encoding UTF-8 (-charset UTF-8)可省略 字符集修改为UTF-8

然后我们就可以在创建.java的源文件的目录下找到index.html网页文件,这就是根据我们的文档注释生成的:


四、标识符

Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。关于 Java 标识符,有以下几点需要注意:
1.硬性规则

标识符中可以包含: 字母数字以及下划线$ 符号等等。
注意: 标识符不能以数字开头,也不能是关键字,更不能有空格,且严格区分大小写。

2.软性建议

类名: 每个单词的首字母大写(大驼峰)
方法名: 首字母小写,后面每个单词的首字母大写(小驼峰)
变量名: 与方法名规则相同

合法标识符举例:age$salary_value__1_valueHelloWorld
非法标识符举例:123abc-salaryclass


本章完

本章是Java的入门级介绍,从Hello world开始,熟悉Java程序的编写和运行,了解Java的注释风格,学会规范的标识符命名。笔者重在整理,浅浅介绍,如有不足,敬请斧正!

写在最后:当然了,学习Java也不要忘记 Keep coding!

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

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

相关文章

C语言-简单的程序设计

🌞欢迎来到C语言的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 🌠本阶段属于练气阶段,希望各位仙友顺利完成…

docker 网络

前言 随着容器的普及,经常使用docker创建容器来跑应用,结合开源的kubernetes和istio等,对于无状态的服务有极好的支持能力,秒级调度,弹性伸缩等优势。实际上kube的容器仅仅是接口,实际的容器可以是docker&…

布隆过滤器

文章目录前导布隆过滤器特点映射方式hash 函数BloomFiltersettestreset相关问题应用示例哈希切分例子今天是1024程序员节,祝各位节日快乐啦!!!前导 我们之前使用位图bitset,只能将一个整数映射到比特位上,来判断某个数是否存在 但是假如我们也想把判断一个字符串是…

【Linux】yum 与 vim 的基本使用

文章目录一、yum 背景知识1、商业生态2、开源生态3、软件生态本土化二、yum 的基本使用1、查看软件包2、安装软件3、卸载软件三、vim 的基本使用1、vim 的基本概念2、vim 的基本操作2.1 模式间切换2.2 光标定位2.3 文本复制2.4 文本编辑2.5 底行模式的操作四、简单 vim 配置2、…

前端工程化<npm、cnpm、yarn、npx、pnpm等包管理工具>

平时工作中,像npm、cnpm、yarn等一些工具都是经常经常用的,但可能对里面的一些细节都没太在意,所以这篇就来总结一下加深印象和理解。另外还有pnpm的使用,以及它的优势 1. npm包管理工具 包管理工具npm Node Package Manager&a…

『Halcon与C#混合编程』011_工业相机的SDK介绍

这里以淘宝上的显微精工店铺的相机为例(支持SDK) 一、相机的SDK简单介绍 第一步:安装好驱动,并能正常打开相机 第二部:找到相机的安装目录,查看厂家提供的Demo和开发手册 在Demo中找到C#的Demo,运行Demo.sln 第三步

基于Matlab使用粒子滤波器和高斯滤波器跟踪单个对象(附源码)

此示例说明了如何使用粒子滤波器和高斯和滤波器来跟踪使用仅范围测量的单个对象。 一、介绍 只能观察范围信息的传感器无法通过单次检测提供对物体状态的完整了解。此外,当以笛卡尔坐标系表示时,仅范围测量的不确定性是非高斯的,并产生凹形…

python作业8

目录 1.输入一个整数判断奇数偶数 2.判断一个数是否能被7或11整除但不能同时整除 3.判断某一年是否为闰年:能被4整除但不能被100整除,或者能被400整除 4.《车辆驾驶人员血液、呼气酒精含量阈值与检验》标准中规定:驾驶员血液酒精小于20mg/…

基于Hi3861的听话的狗子

听话的狗子一、项目介绍二、硬件介绍(1)Hi3861最小系统电路(2)电源管理电路(3)USB转串口电路烧录电路(4)外设接口电路三、PCB设计四、软件部分简介(1)代码整体…

在 ESP 开发板上开发 UI 不再复杂

如果您尝试过在没有图形库的情况下开发 UI,那么您一定知道这有多困难。幸运的是,由乐鑫芯片驱动的屏幕,可支持用户使用多种图形库来开发 UI, LVGL 就是其中之一。通常情况下,在使用 LVGL 或类似的图形库前,…

SPI、RS232、485、IIC通信协议详细总结

通信协议大全 文章目录通信协议大全前言一、异步通信和同步通信二、RS232和RS4851.RS2322.RS4853.RS232和RS485的区别4.RS232、485与普通串口的区别?三、SPI协议四、IIC协议1.IIC的时序介绍2.IIC传输数据的格式总结前言 通信协议是每一个嵌入式工程师必备的技能。下…

几道简单的Linux驱动相关面试题,你看你会几题?

一、Linux基础 1、任意3种网络操作的Linux命令,并说明他们的含义 1. ifconfig 命令 ifconfig 用于查看和配置 Linux 系统的网络接口。 查看所有网络接口及其状态:ifconfig -a 。 使用 up 和 down 命令启动或停止某个接口:ifconfig eth0 up 和 ifconfi…

WEB渗透扫描与加固

WEB渗透扫描与加固 1.通过PC2中渗透测试平台BackTrack5中的httprint工具对服务器场景Server2003检测HTTP服务器(调用signatures.txt), 并将该操作显示结果“Banner Reported:”之后的字符串作为FLAG提交; 切换路径至/pentest/enumeration/web/httprint下 使用命令./httpr…

阿里巴巴面试题- - -多线程并发篇(二十九)

前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~ 内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elast…

网络安全:技术趋势

下面列出了GlobalData确定的影响网络安全的关键技术趋势。 维护IT系统的安全性是各种类型组织的一项长期任务。网络攻击频繁且越来越复杂,由那些推动地缘政治事业的人或意图赚钱的攻击者实施。2021年,由于员工在疫情期间远程工作,企业在网络…

直流信号隔离采样

前言 最近在做一个案子,这个案子中的一点是高压电压信号隔离采样; 常见的隔离有: 光隔离(光耦) 磁隔离(霍尔,变压器) 等等。 那么要测量直流电压线性隔离如何实现?…

C语言中程序的环境和预处理简述

文章目录程序是如何执行的?翻译预编译条件编译文件的包含嵌套引用不同的引用方式预定义符号编译汇编链接运行程序是如何执行的? 有时候会问自己,程序的运行是那么简单的事情吗? 我鼠标点到 visual studio 上,程序就跑起来了,然后在界面就能…

项目管理:如何使用甘特图制定项目计划

甘特图能够很直观地显示项目任务、进度随着时间推进的进展情况。 横轴为时间,纵轴为项目事项,用条形图的方式直观地展现项目中所有任务的时间及进度。 它可以直观地表明项目中有哪些任务?任务计划在什么时候进行,及实际进展与计划…

基于Vue+node的图书馆座位预约选座管理系统

目 录 一、绪论 1 (一)选题背景简介 1 (二)目的和意义 2 (三)基本内容及目标 2 二 技术简介 4 (一) React 4 (二)Vue 4 (三)Egg.js 5 …

生产者消费者模型

什么是生产者消费者模型? 生产者和消费是操作系统中一种重要的模型,它描述的是一种等待和通知的机制。一、概念引入 日常生活中,每当我们缺少某些生活用品时,我们都会去超市进行购买,那么,你有没有想过&am…