一只脚踏进Java的大门

简介: 一只脚踏进Java的大门

一、认识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是个面向对象的语言。而类是面向对象的定义规则, 一个类就是一个对象。
  1. main: 并且指定了一个 main 方法, 这个是 Java 的默认主函数。固定格式为:public static void main(String[] args)
  2. System.out:是系统的输出文件。输出一串内容到控制台。

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

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

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

注意: 在一个源文件中只能有一个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
  1. 类没有使用public修饰
  2. 方法中语句没有以分号结尾
  3. 中文格式的分号
  4. 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!

相关文章
|
9月前
|
消息中间件 NoSQL Dubbo
手拿阿里「Java面试神技」,“脚踢”头条大门,不好意思我进来了
前言 随着金九银十的到来,许多家人们都在为工作而努力准备着,小轩也是为大家带来了一份大礼哦。
|
10月前
|
Java
脚踏Java知识点(二)
脚踏Java知识点(二·)
|
10月前
|
Java
脚踏Java知识点(三)
脚踏Java知识点(三)
|
10月前
|
Java
脚踏Java知识点(一)
脚踏Java知识点(一)
|
3天前
|
安全 Java
JAVA多线程通信新解:wait()、notify()、notifyAll()的实用技巧
【6月更文挑战第20天】Java多线程中,`wait()`, `notify()`和`notifyAll()`用于线程通信。在生产者-消费者模型示例中,它们确保线程同步。`synchronized`保证安全,`wait()`在循环内防止虚假唤醒,`notifyAll()`避免唤醒单一线程问题。关键技巧包括:循环内调用`wait()`,优先使用`notifyAll()`以保证可靠性,以及确保线程安全和正确处理`InterruptedException`。
|
3天前
|
安全 Java
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
【6月更文挑战第20天】JAVA多线程中,wait(), notify(), notifyAll()是Object类的关键同步机制。wait()让线程等待并释放锁,直到被notify()或notifyAll()唤醒或超时。它们必须在同步块中使用,持有锁的线程调用。notify()唤醒一个等待线程,notifyAll()唤醒所有。最佳实践包括:与synchronized结合,循环检查条件,避免循环内notify(),通常优先使用notifyAll()。
|
2天前
|
Java 程序员
从菜鸟到大神:JAVA多线程通信的wait()、notify()、notifyAll()之旅
【6月更文挑战第21天】Java多线程核心在于wait(), notify(), notifyAll(),它们用于线程间通信与同步,确保数据一致性。wait()让线程释放锁并等待,notify()唤醒一个等待线程,notifyAll()唤醒所有线程。这些方法在解决生产者-消费者问题等场景中扮演关键角色,是程序员从新手到专家进阶的必经之路。通过学习和实践,每个程序员都能在多线程编程的挑战中成长。
|
1天前
|
安全 Java 程序员
Java多线程详解
Java多线程详解
|
2天前
|
缓存 安全 Java
Java线程面试题含答案
Java线程面试题含答案
|
2天前
|
Java
并发编程的艺术:Java线程与锁机制探索
【6月更文挑战第21天】**并发编程的艺术:Java线程与锁机制探索** 在多核时代,掌握并发编程至关重要。本文探讨Java中线程创建(`Thread`或`Runnable`)、线程同步(`synchronized`关键字与`Lock`接口)及线程池(`ExecutorService`)的使用。同时,警惕并发问题,如死锁和饥饿,遵循最佳实践以确保应用的高效和健壮。
9 2