基本概念
Java
是一种广泛使用的高级编程语言,由 Sun Microsystems
公司(现为Oracle
甲骨文公司所有)于 1995 年正式发布(第一个版本)由James Gosling
编写。它以跨平台性、面向对象和健壮性著称,是当今企业级应用、移动开发和大数据领域的核心技术之一,Java
使用最多的版本是8和11
Java
的重要特点
Java
语言是面向对象的(oop
)Java
语言是健壮性的,Java
的强类型机制、异常处理、垃圾的自动收集等是健壮性的重要保证Java
语言是跨平台性的:编译后的.class
文件可以在跨平台上进行运行,不需要重新进行编译(由于底层中有Java
虚拟机机制(JVM
)的存在)Java
语言是解释型性的解释性语言有:
JavaScript
、PHP
、Java
编译性语言有:
c
、c++
解释性语言,编译后的代码不能直接被机器执行,需要解释器来执行;编译性语言,编译后的代码可以直接被机器执行(编译后的代码已经是二进制的了)
环境安装
代码编辑器安装
一开始在学习的时候,推荐使用Sublime Text
代码编辑器进行敲代码,后续大规模开发的时候,推荐使用IDEA
代码编辑器进行代码的编写,该编辑器有较好的代码提示,能帮助我们快速的编写代码
Sublime Text
常见的问题
- 汉化
Sublime Text
- 打开
Sublime Text
代码编辑器 - 使用快捷键
shift+ctrl+p
- 输入
Package Control: Install Package
- 在搜索框中输入
Chinese
,选择下拉框中的ChineseLocalizations
- 下载完重新打开编辑器,即可汉化
- 打开
Sublime
里面找不到GBK
编码格式- 打开
Sublime Text
代码编辑器 - 使用快捷键
shift+ctrl+p
- 输入
Package Control: Install Package
- 在搜索框输入
converToUTF8
,选择并安装 - 后续在文件->
Set File Encoding to
中就可以选择gbk
进行编码了
- 打开
IntelliJ IDEA
从官网下载安装包,推荐使用专业版
右键,以管理员身份运行
指定安装目录,选择64位,其他都不选,点击下一步
打开安装好的代码编辑器,新建一个项目,选择一个
Java
项目,默认会加载电脑中安装的JDK
环境,如果没有加载上,我们手动添加即可,选择到本地安装的JDK
的顶级安装目录即可创建具体项目的名称,并指定具体目录的位置
在项目文件中的
src
文件中创建开发文件:单机src
文件夹右键-->new
-->Java Class
-->输入具体项目的文件名编写好代码后,直接通过代码左边的绿色小箭头,或者右键,选择
run
即可编译运行,在终端得到结果在
idea
中,当我们run
一个文件时,会先编译成.class
,再运行具体的文件结构逻辑:编译运行后,会在项目根目录文件夹中生成
out
文件夹,文件夹下有production
文件,里面就有编译后的类文件
基本设置
- 设置字体大小:菜单
file
-->settings
-->Appearance
-->选中use custom font
-->设置合适字体大小 - 字符编码设置:菜单
file
-->settings
-->Editor
-->File Encoding
-->在Global Encoding
设置UTF-8
(设置全局编码,默认是UTF-8
),也可以在Project Encoding
设置项目编码
IDEA
快捷键自定义配置
快捷键自定义配置:菜单file
-->settings
-->Keymap
-->选择具体的规则进行快捷键的修改
删除当前行:建议设置为
ctrl+d
复制当前行:建议设置为
ctrl+alt+向下光标
补全代码:
alt+/
添加或取消注释:
ctrl+/
导入该行需要的类:配置
auto import
然后使用
alt+enter
即可快速格式化代码:
ctrl+alt+l
快速运行程序:建议设置为
alt+r
生成构造器的快捷键:
alt+insert
查看一个类的层级关系:
ctrl+h
定位到具体的方法:
ctrl+b
将光标放在一个方法上,输入快捷键,可以定位到对应的方法自动分配变量名:在变量后面加
.var
回车即可
模板快捷键
模块快捷键可以帮助我们加快代码的编写速度,只需要输入定义的快捷键内容,就可以得到对于的代码模板
我们可以在file
-->settings
-->editor
-->Live templates
-->查看有哪些模板快捷键/自定义模板快捷键
系统提供的常用模板快捷键有:
main
模板快捷键对应的内容:javapublic static void main(String[] args) { }
sout
模板快捷键对应的内容:javaSystem.out.println("hello,world");
fori
模板快捷键对应的内容:javafor (int i = 0; i < ; i++) { }
对于自定义的模板快捷键,我们点击右上角的加号,输入快捷键的名字和内容,同时设置应用的范围,我们一般要应用给Java
使用
JDK
的安装
JDK
是Java
开发工具包,JDK
=JRE
+Java
的开发工具(java
、javac
、javadoc
、javap
等)
JRE
是Java
的运行环境,包括了Java
虚拟机和Java
程序所需的核心类库等,如果想要运行一个开发好的(编译好的)Java
程序,计算机中只需安装JRE
即可
安装后的文件系统结构:
bin
目录:包含了所有的Java
开发工具安装后,需要配置环境变量,将
bin
目录的路径添加到环境变量中jre
目录:jdk
中安装的jre
目录src.zip
:是JDK
的源码包,里面有其源代码
运行机制
程序:计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合
Java
的运行机制和过程:Java
程序可以运行在跨平台的系统上,其根本原因是由于JVM
(Java
的虚拟计算机,具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器),每个操作系统都可以去下载其对应的JVM
,从而去运行Java
程序,JVM
是包含在JDK
中的
Java
虚拟机机制屏蔽了底层运行平台的差别,实现了一次编译,到处运行:
编译:将
Java
源文件通过编译器将其编译成JVM
可以识别的字节码文件编译指令:
javac 编写的Java文件
如果程序没有错误,就可以编译成功,会在源文件目录中出现一个字节码文件,也就是可执行的
Java
程序运行:通过运行工具
java.exe
对字节码文件进行执行,本质就是将.class
文件装载到jvm
机执行运行指令:
java 编译后的Java文件
对修改后的源文件,需要进行重新编译,生成新的.class
文件,再执行,才能生效
第一个Java
程序
// 第一个java程序
// 编写一个类
public class Hello {
// 编写一个类方法
public static void main(String[] args) {
System.out.println("helloWorld!"); // 一个结束语句要以分号结尾
}
}
声明
Hello
是一个公有的类
public static void main(String[] args)
表示定义一个主方法,是一个程序执行的入口
static
表示定义一个静态的方法
System.out.printIn()
:内置的输入方法,将内容输出到屏幕上在编译的时候,如果文件内有中文,包括注释,我们需要将编码方式改为
gbk
的形式,这样才能正常编译
使用命令行终端,在当前代码的目录下输入javac Hello.java
进行编译,成功编译后,会出现Hello.class
的编译结果文件,使用命令java Hello
即可运行,得到运行结果
注释
注释是用于说明解释程序的文字提示,提高了代码的可读性,编写程序需要养成注释的好习惯,推荐先将自己的思想通过注释整理出来,再用代码去实现
单行注释
java// 单行注释
单行注释快捷键:选中区域+
ctrl
+/
取消注释同样是这个快捷键多行注释
java/* 多行 注释 */
多行注释中不能嵌套多行注释
多行注释快捷键:选中区域+
Ctrl
+shift
+/ 取消注释是选中区域+Ctrl+shift+ 选中区域+Ctrl+shift+\文档注释
文档注释的内容可以被
JDK
提供的工具javadoc
所解析,生成一套以网页文件形式体现的该程序的说明文档,文档注释一般写在类中(想要对类提供相关的注释,我们一般使用文档注释),只放在类、接口、成员变量、方法之前(因为Javadoc只处理这些地方的文档注释,而忽略其他地方的文档注释)文档注释要按照
javadoc
工具提供的标签进行,以/**
开始, 以*/
结束:java/** * @author jlc * @version 1.0 */
将文档标签生成网页文件的命令:
javadoc -d 存放生成文档标签的文件夹目录地址 -xx -yy 要编译的文件
对应的
xx
和yy
,分别是文档注释中使用了的标签:author
和version
文档注释在协作化项目开发过程中使用的是非常多的
文档注释快捷键:
alt
+shift
+j
文档注释常见的
javadoc
标签有:标签 描述 @author
作者标识 @deprecated
标识当前 API
已经过期,仅为了保证兼容性依然存在,以此告之开发者不应再用这个API
{@docRoot}
指明当前文档根目录的路径 @exception
标志一个类抛出的异常 {@inheritDoc}
从直接父类继承的注释 {@link}
链接到某个特定的成员对应的文档中 {@linkplain}
插入一个到另一个主题的链接,但是该链接显示纯文本字体 @param
方法的入参名及描述信息,如入参有特别要求,可在此注释 @return
对函数返回值的注释 @see
引用,查看相关内容,如类、方法、变量等 @serial
说明一个序列化属性 @serialData
说明通过 writeObject( )
和writeExternal( )
方法写的数据@serialField
说明一个 ObjectStreamField
组件@since
描述文本,API在什么程序的什么版本后开发支持 @throws
构造函数或方法所会抛出的异常 {@value}
显示常量的值,该常量必须是static属性 @version
版本号
标识符命名规则和规范
Java
对各种变量、方法和类等命名时使用的字符序列称为标识符(凡是可以自己起名字的地方都叫标识符)
标识符命名规则(必须遵守的):
由26个英文字母大小写,0-9.
_
或$
组成不可以以数字开头
不可以使用关键字和保留字,但是可以包括关键字和保留字
Java
中的关键字:被Java
语言赋予了特殊的含义,用于专门用途的字符串(单词)Java
中的保留字:现有的Java
版本没有使用,但以后的版本可能会作为关键字使用严格区分大小写,长度无限制
标识符不能包含空格
标识符命名规范(规范可以显得代码更加专业):
- 包名:多单词组成时所有字母都小写:
aaa.bbb.ccc
- 类名、接口名:多单词组成时,所有单词的首字母大写:
XxxYyy
(大驼峰形式) - 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:
xxxYyy
(小驼峰形式,简称驼峰法) - 常量名:所有字母都大写,多单词时每个单词用下划线连接:
XXX_YYY
开发规范
在Java
开发过程中,我们需要遵守一些开发细节,这样才能减少一些不必要的错误:
Java
应用程序的执行入口是main()
方法,有固定的书写格式:public static void main(String[] args) {...}
Java
严格区分大小写Java
方法由一条语句构成,每个语句以;
结束大括号是成对出现的,建议先写
{}
,再写代码一个源文件中最多只能有一个
public
类,其他类的个数不限,但是,只要有一个类,不管是不是public
类,在编译后,都会生成一个.class
文件,即有几个类,就生成几个.class
文件如果源文件包含一个
public
类,则文件名必须按照该类进行命名可以将
main
方法写在非public
类中,然后指定运行编译后的非public
类,这样入口方法就是非public
的main
方法,也就是说会运行这个类中的入口方法我们需要确保文件名和主类名保持一致,否则会编译出错
开发规范:
- 对于类、方法的注释,要以
javadoc
的方式来进行编写 - 对于非
javadoc
的注释,往往是给代码的维护者看的,着重告诉读者为什么这么写,如何修改,要注意什么问题等 - 运算符和等号左右各加一个空格
- 源文件使用
utf-8
编码 - 行宽不要超过80个字符
windows
系统下的DOS
指令
DOS
:磁盘操作系统,可以使用指令的方式对文件系统进行操作,常见的指令有:
dir
:查看当前目录中有什么tree
:查看指定的目录下所有的子级目录cd
:切换到其他目录cd ..
:返回上一级cd \
:切换到根目录切换到
C
盘:cd /D c:
md
:新建文件夹(目录)rd
:删除文件夹(目录)cls
:清除终端屏幕中的内容,清屏exit
:退出命令行终端type
:创建文件type nul > 文件名
echo
:输入内容到文件中echo hello > hello.txt
在hello.txt
文件中就插入了hello
内容,先创建在写入copy
:复制文件move
:剪切文件del
:删除文件
相对路径:从当前目录开始定位,形成的一个路径
绝对路径:从根目录(顶级目录)开始定位,形成的路径
断点调试
在开发过程中,断点调试可以一步步的看源码的执行过程,从而帮助我们发现错误所在
重要提示:在断点调试的过程中,是运行状态,对象是以运行类型来执行的
断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后可以一步步的往下调试,调试过程中可以看各个变量的当前值,出错的话,调试到出错的代码执行会显示错误,程序停止,我们可以进行分析找打Bug
断点调试可以帮助我们查看Java
的底层代码执行过程,提高程序员的代码水平
断点可以在debug
过程中,动态的进行下断点的
在IDEA
中,断点调试的快捷键:
F7
(跳入方法内)、F8
(跳过,逐行执行代码)、shift+F8
(跳出当前方法)、F9
(resume
,执行到下一个断点)
对于系统的方法,我们无法进入源码的设置:
点击Setting
-->Build,Exection,Deployment
-->Debugger
-->Stepping
-->把Do not step into the classes
中的java.*
、javax.*
取消勾选,这样我们就可以通过快捷键F7
进入源码了