开始前的碎碎念:
之前就一直想着要学JAVA,但是总是间接性踌躇满志,持续性混吃等死(哭)。后来看到毕导的视频,他说,学习最困难的地方,就是开始学。 学习的焦虑往往来源于行动力的匮乏。所以我想,那就咬咬牙试试吧。
第一章:JAVA语言概述:
常用的DOS命令:
dir
: 列出当前目录下的文件及文件夹md
:创建目录rd
:删除目录cd
:进入指定的目录cd..
:退回到上一级目录cd\
:退回到根目录del
:删除文件exit
:退出DOS命令行
JAVA语言的主要特点
- JAVA语言是易学的
- JAVA语言是强制面向对象的。JAVA语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)
- JAVA语言是分布式的。
- JAVA语言是健壮的。JAVA语言的强类型机制、异常处理机制、垃圾的自动收集等是JAVA程序健壮性的重要保证。
- JAVA语言是安全的。
- JAVA语言是体系结构中立的。
- JAVA语言是解释性的
- JAVA语言是性能略高的
- JAVA语言是原生支持多线程的
JAVA技术体系平台
- JAVA SE(Java Standard Edition)标准版:支持面向桌面级应用的JAVA平台,提供了完整的JAVA核心API。
- JAVA EE(Java Enterprise Edition)企业版:是为开发企业环境下的应用程序提供的一套解决方法,该技术体系中包含的技术如:Servlet、Jsp等,主要针对于Web应用程序开发
- JAVA ME(Java Micro Edition)小型版:支持JAVA程序运行在移动终端上的平台,对JAVA API有所精简,并加入了针对移动终端的支持。
- JAVA Card:支持一些JAVA小程序运行在小内存设备上的平台。
JAVA两种核心机制
- JAVA虚拟机(Java Virtual Machine),JVM,JAVA语言的跨平台性
- JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。
- 对于不同的平台,有不同的虚拟机
- JAVA虚拟机屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”
- 垃圾收集机制(Garbage Collection),GC
- 垃圾回收:指不再使用的内存空间应该回收
- 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预,可能会出现回收不及时的情况
JAVA语言环境的搭建
- 下载JDK (推荐使用压缩版的JDK,根据情况解压不同版本来使用)
- 安装JDK
- 配置环境变量
- 验证是否成功:
java -version
JVM、JRE、JDK的关系
- JDK(Java Development Kit JAVA开发工具包):JDK是提供给JAVA开发人员使用的,其中包含了Java的开发工具,也包括了JRE。
- JRE(Java Runtime Environment JAVA运行环境):包括JAVA虚拟机(JVM)和JAVA程序所需的核心类库等。
开发体验——HelloWorld
- 将java代码编写到扩展名为.java的文件中
新建一个Test.java文件,写入如下代码:
(声明为public的主类应与文件名一致,否则编译失败)public class Test{ public static void main(String[] args){ System.out.print("Hello World"); } }
- 通过javac命令对该java文件进行编译
命令行输入
javac Test.java
,将会生成一个Test.class文件 - 通过java命令对生成的class文件进行运行
命令行输入
java Test
,运行程序
- 小结
- Java源文件以“java”为扩展名,源文件的基本组成部分是类(class)
- Java应用程序的执行入口是main()方法,他有固定的书写格式:
public static void main(String[] args){···}
- Java语言严格区分大小写。
- Java方法有一条条语句构成,每个语句以“;”结束。
- 括号都是成对出现的,缺一不可。
注释
Java中的注释类型:
- 单行注释
//
- 多行注释
/* */
-
文档注释(Java特有)
/** * 文档注释 * 这是一个打印hello world 的程序 * @author djc * @version 1.0.0 */ public class Test{ public static void main(String[] args){ // 单行注释,打印hello world System.out.print("Hello World"); /* 多行注释 范围内均为注释 */ } }
文档注释的标签如下:
标签 | 描述 | 示例 |
---|---|---|
@author | 标识一个类的作者 | @author description |
@deprecated | 指名一个过期的类或成员 | @deprecated description |
{@docRoot} | 指明当前文档根目录的路径 | Directory Path |
@exception | 标志一个类抛出的异常 | @exception exception-name explanation |
{@inheritDoc} | 从直接父类继承的注释 | Inherits a comment from the immediate surperclass. |
{@link} | 插入一个到另一个主题的链接 | {@link name text} |
{@linkplain} | 插入一个到另一个主题的链接,但是该链接显示纯文本字体 | Inserts an in-line link to another topic. |
@param | 说明一个方法的参数 | @param parameter-name explanation |
@return | 说明返回值类型 | @return explanation |
@see | 指定一个到另一个主题的链接 | @see anchor |
@serial | 说明一个序列化属性 | @serial description |
@serialData | 说明通过writeObject( ) 和 writeExternal( )方法写的数据 | @serialData description |
@serialField | 说明一个ObjectStreamField组件 | @serialField name type description |
@since | 标记当引入一个特定的变化时 | @since release |
@throws | 和 @exception标签一样. | The @throws tag has the same meaning as the @exception tag. |
{@value} | 显示常量的值,该常量必须是static属性。 | Displays the value of a constant, which must be a static field. |
@version | 指定类的版本 | @version info |