目录
1、Java语言概述
1.1、Java是什么
Java是一种优秀的程序设计语言,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。
1.2、Java语言的特性
简单性、面向对象、分布式(微服务)、健壮性、安全性、系统结构中立、可移植性、解释性、高性能、多线程、动态性
这里将Java的特性全部列举出来,不进行说明,通过后面的学习来进行体会。
2、初始Java的main方法
2.1、main方法示例
在学习Java之处,我们使用记事本来编写
public class HelloWorld{
public static void main(String[] args) {
System.out.println("hello!");
}
}
2.2、了解HelloWorld代码的编写
在编写Java程序时必须是最外面是类,类里面是方法,方法里面才定义变量、执行语句等等。
通过上述代码,我们可以看到一个完整的Java程序的结构,Java程序的结构由如下三个部分组成:
1、源文件(扩展名*.java)如(HelloWorld.java):源文件带有类的定义。类用来表示程序的 一个组件,小程序或许只会有一个类,类的内容必须包含在花括号里面。
2、类:类中带有一个或者多个方法。方法必须在类的内部声明。类名必须是大驼峰。如 MaxNum
3、方法:在方法的花括号中编写方法应该执行的语句
注意:在一个源文件中只能有一个public修饰的类,而且源文件名字必须与public修饰的类名字相同。
2.3、运行Java程序
Java是一门半编译型、版解释型语言、先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节码组成的平台无关,面向JVM的文件。最后启动Java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。
- 使用记事本或者IDEA(集成开发环境)编写Java源程序
- 使用javac.exe编译器编译Java源程序,生成xxx.class的字节码文件 语法格式: javac xxx.java
- 使用Java运行xxx.class字节码文件 语法格式:java xxx
图片展示过程:
1、新建一个文本文档,命名为HelloWorld,将后缀.txt改为.java
注意:在创建新文本文档时,通过下边的操作将后缀展现出来,这样就更加清晰,防止出现HelloWorld.java.txt的情况,这样的文本文档还是TXT文档
2、win+r,输入cmd,打开命令提示符,找到xxx.java文件
3、查看当前目录下的文件(这一步可以省略)
4、 生成字节码文件(编译)
4、运行程序
注意:
在运行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虚拟机,运行Java代码
3、注释
3.1、注释的作用
- 解释说明
- 在程序中不运行,增加代码的可读性
3.2、注释的分类
1、单行注释://注释内容(用的最多)
快捷键:ctrl+/(将光标点在所要注释行)
取消单行注释:ctrl+/
2、多行注释:/*注释内容*/(不推荐)
快捷键:ctrl+shift+/
取消多行注释:ctrl+shift+/
3、 文档注释:/**文档注释*/(常见于方法和类之上描述方法和类的作用),可以被javadoc 工具解析,生成一套以网页文件形式体现的程序说明文档
注意:
1、多行注释不能嵌套使用
2、不论是单行还是多行注释,都不参与编译,即编译之后生成的.class文件中不包含注释信 息。
/**
文档注释:
@version v1.0.0
@author will
作用HelloWorld类,入门第一个程序练习
*/
public class HelloWorld{
/*
多行注释:
1. main方法是Java程序的入口方法
2. main函数的格式是固定的,必须为public static void main(String[] args)
*/
/**
main方法是程序的入口函数
@param args 命令行参数。
*/
public static void main(String[] args){
// 单行注释:System.out.println是Java中标准输出,会将内容输出到控制台
System.out.println("Hello World");
}
}
------------------------------------------------------------------------------------
// 在cmd中,使用javadoc工具从Java源码中抽离出注释
// -d 创建目录 myHello为目录名
// -author 显示作者
// -version 显示版本号
// -encoding UTF-8 -charset UTF-8 字符集修改为UTF-8
javadoc -d myHello -author -version -encoding UTF-8 -charset UTF-8 HelloWorld.java
在注释后,编译时会出现的问题
解决这一问题,在javac时指定使用UTF-8的格式去编码
javac -encoding utf-8 HelloWorld.java
将-encoding utf-8放在javac后任意位置即可。
3.3、注释规范
- 内容准确:注释内容和代码一致,匹配,并在代码修改时及时更新。
- 篇幅合理:注释既不应该太精简,也不应该长篇大论
- 使用中文:根据工作单位要求
- 积极向上:注释中不要包含负能量
补充:javadoc命令
在这里补充一个在以后的Java编程中常会用到的东西:
当我们使用文档注释时使用javadoc -d myHello -author -version -encoding UTF-8 -charset UTF-8 HelloWorld.java命令时会生成html文件,会生成我们所注释的文档
点开Java文件中的index.html ,这个操作就生成了这个代码的使用手册
上述操作的源码为:
4、标识符
在上述程序中,class为类名,main称为方法名,也可以将其称为标识符,即:在程序中由用户给类名、方法名或者变量所取的名字。
【硬性规则】
标识符中可以包含:字母、数字以及下划线和$符号等等。
注意:标识符不能以数字开头、也不能是关键字,且严格区分大小写。
【软性建议】
1.类和接口名。
每个字的首字母大写,含有大小写。例如,MyClass,HelloWorld,Time等。
2.方法名。
首字符小写,其余的首字母大写,含大小写。尽量少用下划线。例如,myName,setTime等。这种命名方法叫做驼峰式命名。
3.常量名。
基本数据类型的常量名使用全部大写字母,字与字之间用下划线分隔。对象常量可大小混写。例如,SIZE_NAME。
4.变量名。
可大小写混写,首字符小写,字间分隔符用字的首字母大写。不用下划线,少用美元符号。给变量命名是尽量做到见名知义。
下面那些标识符是合法的?
A :class B :HelloWorld C :main D :123abc E :ARRAY_SIZE F: $name G: name:ji
答案是 BEF
解析:class是类关键字
main是方法名
123abc不能以数字开头
name:ij中的(:)不是组成标识符的符号
5、关键字
通过上述程序可以发现,public、class以及static等颜色会发生变化,将这些具有特殊含义的标识符称为关键字。即:关键字是由Java语言提前定义好的、有特殊含义的标识符,或者保留字。
注意:用户不能使用关键字定义的标识符。
在Java中关键字有很多,这里给大家列出来一部分,先了解下后续在逐一详细解释。
用于定义访问权限修饰的关键字 | ||||
private | protected | public | ||
用于定义类、函数、变量修饰符的关键字 | ||||
abstract | final | static | synchronized | |
用于定义类与类之间的关系的关键字 | ||||
extends | implements | |||
用于定义建立实例即引用实例,判断实例的关键字 | ||||
new | this | super | instanceof | |
用于异常处理的关键字 | ||||
try | catch | finally | throw | throws |
用于包的关键字 | ||||
package | import | |||
其他修饰符关键字 | ||||
native | strictfp | transient | volatile | assert |
6、作业练习
1、下列有关JDK, JRE, JVM三者的叙述,正确的是:(ABCD )
A.JDK是Java开发工具包 ,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
B.JRE是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。
C.JVM是整个Java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行
D.JDK中包含了JRE,JRE又包含JVM
本题考察知识点:
答案中A,B,C是JDK,JRE,JVM三者的定义,另外JDK当中包含JRE,JRE包含JVM。故:A,B,C,D是正确的。
2、在java中,下列标识符不合法的有(ACD )
A.new
B.$Usdollars
C.1234
D.car.taxi
本题考察知识点:
Java中标识符由,数字,字母,下划线,美元符号组成。不能使用Java中的关键字作为标识符。
A:new是Java的关键字,故错误
B:正确,但是不建议美元符号开始。
C:不能数字开始或者都是数字
D:不能包含点号
故选择A,C,D
3、下列语句哪一个正确 ( BC)
A.Java程序经编译后会产生machine code
B.Java程序经编译后会产生byte code
C.Java程序编译使用命令javac 运行使用 java 命令
D.以上都不正确
本题解题关键:
A选项:编译后产生的是字节码并不是机器码
B选项:由A得知,B正确 ,B中byte code为字节码
C选项:java源程序通过javac 编译生成字节码文件,通过java命令运行java程序,故C正确
D选项:错误