基本概念
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进入源码了