第一部分 Java基础
文章目录
1.1 什么是程序
程序:计算机执行某系操作或解决某个问题而编写的一系列有序指令的集合。
1.2 Java的诞生
- 1990 Sun公司启动绿色计划。
- 1992 创建oak(橡树)语言->java。
- 1994 gosling参加硅谷大会演示java功能,震惊世界。
- 1995 sun正式发布java第1个版本。
- 2009 甲骨文公司宣布收购Sun。2011,发布java7。
1.3 Java技术体系
-
Java SE(Java Standard Edition)标准版
支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,此版本以前称为J2SE。
-
Java EE(Java Enterprise Edition)企业版
是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如:Servlet、Jsp等,主要针对于Web应用程序开发。版本以前称为J2EE。
-
Java ME(Java Micro Edition)小型版
支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对移动终端的支持,此版本以前称为J2ME。
1.4 Java重要特点
- Java语言是面向对象的(oop)。
- Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
- Java语言是跨平台性的。(一个编译好的.class文件可以在多个系统下运行,这种特性称为跨平台性。JAVA虚拟机机制)
- Java语言是解释型的。
解释性语言:javascript,PHP,java
编译性语言:c/c++
区别是:解释性语言,编译后的代码,不能直接被机器执行,需要解释器来执行;编译性语言,编译后的代码,可以直接被机器执行,c/c++。
1.5 Java开发工具
- editplus、notepad++
- Sublime Text
- IDEA
- eclipse
1.6 Java运行机制及运行过程
Java程序的跨平台性如何实现?
因为有了JVM,同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了。
Java核心机制-Java虚拟机[JVM java virtual machine]基本介绍:
- JVM是一个虚拟的计算机 ,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器,包含在JDK中。
- 对于不同的平台,有不同的虚拟机。
- Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。
1.7 什么是JDK,JRE
JDK基本介绍
-
JDK的全称(Java Development Kit Java开发工具包)
JDK=JRE+java的开发工具[java,javac,javadoc,javap等]
-
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
JRE基本介绍
-
JRE(Java Runtime Environment Java运行环境)
JRE=JVM+Java的核心类库[类]
-
包括Java虚拟机JVM (Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JDK、JRE和JVM的包含关系
- JDK=JRE+开发工具集(例如Javac,java编译工具等)。
- JRE=JVM+Java SE标准类库。
- JDK=JVM+Java SE标准类库+开发工具集。
- 如果只想运行开发好的.class文件只需要JRE。
1.8 下载、安装JDK
- 安装路径不要有中文或者特殊符号如空格等。
- 当提示安装JRE时,可以选择不安装,也可以安装。
1.9 配置JDK
“不是内部或外部命令,也不是可运行的程序或批处理文件”错误分析
错误原因:当前执行的程序在当前目录下如果不存在,Windows系统会在系统中已有的一个名为path的环境变量指定的目录中查找。如果仍未找到,会出现以上的错误提示。所以进入到jdk安装路径\bin目录下,执行javac,会看到javac参数提示信息。
1.10 Java 快速入门
//这是 java 的快速入门, 演示 java 的开发步骤
//对代码的相关说明
//1. public class Hello 表示 Hello 是一个类,是一个 public 公有的类
//2. Hello{ } 表示一个类的开始和结束
//3. public static void main(String[] args) 表示一个主方法,即我们程序的入口
//4. main() {} 表示方法的开始和结束
//5. System.out.println("hello,world~"); 表示输出"hello,world~"到屏幕
//6. ;表示语句结束
public class Hello {
//编写一个 main 方法
public static void main(String[] args) {
System.out.println("hello,world~");
}
}
1.11 Java运行机制
.java文件——.class文件——结果
源文件 字节码文件
编译
javac Hello.java
1.有了java源文件,通过编译器将其编译成JVM可以识别的字节码文件。
2.在该源文件目录下,通过javac编译工具对Hello.java文件进行编译。
3.如果程序没有错误,没有任何提示,但在当前目录下会出现一个Hello.class文件,该文件称为字节码文件,也是可以执行的java的程序。
运行
java Hello
1.有了可执行的java程序(Hello.class字节码文件)
2.通过运行工具java.exe对字节码文件进行执行,本质就是.class装载到jvm机执行。
注意事项
对修改后的Hello.java源文件需要重新编译,生成新的class文件后,再进行执行,才能生效。
public class Hello{
public static void main(String[] args){
System.out.println("Mr.Q,hello");
}
}
1.12 Java开发细节
- Java源文件以.java为扩展名。源文件的基本组成部分是类(class),如本类中的Hello类。
- Java应用程序的执行入口是main()方法。它有固定的书写格式:
public static void main(String[] args){...}
-
Java语言严格区分大小写。
-
Java方法由一条条语句构成,每个语句以“;”结束。
-
大括号都是成对出现的,缺一不可。[习惯,先写{}再写代码]
-
一个源文件中最多只能有一个public类。其它类的个数不限。每一个类都对应一个.class文件。
-
如果源文件包含一个public类,则文件名必须按该类名命名!
-
一个源文件中最多只能有一个public类。其它类的个数不限,也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法。
1.13 Java转义字符
Java 常用的转义字符
在控制台,输入 tab 键,可以实现命令补全
\t :一个制表位,实现对齐的功能
\n :换行符
\\ :一个\
\" :一个"
\' :一个'
\r :一个回车 System.out.println("城市\r 北京");回车后把光标定义在当前行的第一个字符,然后用后面的字符替换前面的字符。
//演示转义字符的使用
public class ChangeChar {
//编写一个 main 方法
public static void main(String[] args) {
//\t :一个制表位,实现对齐的功能
System.out.println("北京\t 天津\t 上海");
// \n :换行符
System.out.println("jack\nsmith\nmary");
// \\ :一个\ \\
System.out.println("C:\\Windows\\System32\\cmd.exe");
// \" :一个"
System.out.println("小明说:\"要好好学习 java,有前途\"");
// \' :一个'
System.out.println("小明说:\'要好好学习 java,有前途\'");
// \r :一个回车
System.out.println("城市\r 北京");
// 解读 // 1. 输出 城市
// 2. \r 表示回车
System.out.println("城市\r 北京"); // 北京
}
}
1.14 常见错误
- 找不到文件
解决方法:源文件名不存在或者写错,或者当前路径错误
- 主类名和文件名不一致
解决方法:声明为public的主类应与文件名一致,否则编译失败。
- 缺少分号
解决方法:编译失败,注意错误出现的行数,再到源代码中指定的位置改错。
1.15 注释
介绍
用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性(可读性);注释是一个程序员必须要具有的良
好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。
注释的类型
-
单行注释
// 格式://注释文字
-
多行注释
/* */ 格式:/* 注释文字 */
-
文档注释
注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类。
/** */ 格式: /** * */
生成指令:
javadoc -d 文件夹名 -xx -yy Demo3.java //-xx和-yy指的是要生成的标签名称
javadoc标签:
标签 描述 示例 @author 标识一个类的作者 @author Mr.Q @deprecated 指明一个过期的类或成员 @deprecated Mr.Q {@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
使用细节
- 被注释的文字,不会被 JVM(java 虚拟机)解释执行。
- 多行注释里面不允许有多行注释嵌套。
//演示注释使用
public class Comment01 {
//编写一个main方法
public static void main(String[] args) {
//单行注释
//多行注释
/* 示意 => 可读性很好
下面代码完成 两个数相加
定义变量
注释
注释
int n1 = 10;...
System.out.println("ok~~");
*/
int n1 = 10;
int n2 = 30;
//求和
int sum = n1 + n2;
//输出结果
System.out.println("结果=" + sum);
}
}
/**
* @author Mr.Q
* @version 1.0
*/
public class Comment02 {
//编写一个main方法
public static void main(String[] args) {
}
}
1.16 Java代码规范
- 类、方法的注释,要以javadoc的方式来写。
- 非Java Doc的注释,往往是给代码的维护者看的,着重告述读者为什么这样写,如何修改,注意什么问题等。
- 使用tab操作,实现缩进,默认整体向右边移动,时候用shift+tab整体向左移。
- 运算符和=两边习惯性各加一个空格。比如:2+4*5+345-89
- 源文件使用UTF-8编码。
- 行宽度不要超过80字符。
- 代码编写次行风格和行尾风格。
1.17 DOS命令
DOS介绍
Dos:Disk Operating System 磁盘操作系统。
DOS原理
- 接收指令
- 解析指令
- 执行指令
相对路径与绝对路径
- 相对路径:从当前目录开始定位,形成的一个路径。
- 绝对路径:从顶级目录开始定位,形成的路径。
常用DOS命令
- 查看当前目录是有什么内容 dir
dir d:\abc2\test200
- 切换到其他盘下:盘符号 cd
cd c:
- 切换到当前盘的其他目录下 (使用相对路径和绝对路径演示), …\表示上一级目录
cd d:\abc2\test200
cd ..\..\abc2\test200
- 切换到上一级: cd …
cd ..
- 切换到根目录:cd \
cd \
如果切换不过去需要加开关/D
- 查看指定的目录下所有的子级目录 tree
tree
- 清屏 cls [苍老师]
cls
- 退出 DOS exit
exit
- 创建目录 md
md [创建目录]
- 删除目录 rd
rd [删除目录]
- 拷贝文件 copy
copy ok.txt d:\ok.txt
- 删除文件 del
del [删除文件]
- 输入内容到文件 echo
echo hello > ok.txt
- 剪切 type,move
move ok.txt d:\ok.txt