什么?
动力节点Java教学文档要公开?
大家快奔走相告,快来看看啊!
内部教学机密,首次公开,错过可惜啊~
Java从0到1,全部内容大揭秘,整体文档大放送!!!
带你零基础入门~
今天更新第一篇:JavaSE
相信大家既然关注了动力节点,那么对Java就不会很陌生。
甚至很熟悉了就是说~
毕竟也不看看咱还是干什么的~
那么
今天开始
不会的小伙伴就从头开始学,
有基础的小伙伴再复习巩固下吧!
01章:
初识JAVA
【主要内容】
-
计算机语言发展史
-
Java发展历简介
-
Java语法的特点
-
Java跨平台原理
-
常用的DOS命令
-
Java开发环境搭建
-
开发第一个Java程序
-
代码注释
-
常用的开发工具
-
反编译工具
【学习目标】
1. 计算机语言发展史【了解】
1.1 机器语言
使用0和1来编写代码,开发者需要掌握硬件知识。
1.2 汇编语言
使用英文单词来编写,开发者需要掌握硬件知识。
1.3 高级语言
使用英文单词来编写,开发者不需要掌握硬件知识。
2. JAVA发展简史【了解】
2.1 JAVA的诞生
在1991年时候,詹姆斯·高斯林(James Gosling)在SUN公司的工程师小组想要设计这样一种小型计算机语言。该语言主要用于像电视盒这样的消费类电子产品。
2.2 SUN公司简介
l 美国SUN公司全称Stanford University Network
l 在中国大陆的正式中文名为“太阳计算机系统(中国)有限公司”
l 在台湾中文名为“升阳电脑公司”
l 2009年,甲骨文(Oracle)公司宣布收购SUN 。
l 2010年,Java编程语言的共同创始人之一詹姆斯·高斯林从Oracle公司辞职。
2.3 JAVA为什么被发明
l Green项目
l 应用环境:像电视盒这样的消费类电子产品。
l 要求:因为不同的厂商选择不同的CPU和操作系统,因此要求该语言不能和特定的体系结构绑在一起所以要求:语言本身是中立的,也就是跨平台。
2.4 JAVA的发展史
l 1991年,Sun公司的Green项目(Oak语言)
l 1995年,推出JAVA测试版
l 1996年,JDK1.0
l 1997年,JDK1.1
l 1998年,JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版本,更名为Java2
l 1999 Java被分成J2SE、J2EE 和J2ME,JSP/Servlet技术诞生
l 2004年,J2SE 5.0 (1.5.0) Tiger老虎。为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0。
l 2006年,J2SE 6.0 (1.6.0) Mustang野马。此时,Java的各种版本被更名,取消其中的数字"2":J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME
l 2011年,JAVA7.0
l 2014年,JAVA8.0
2.5 JAVA各版本含义
l J2EE (JAVAEE)
Java 2 Enterprise Edition,定位在服务器端的应用。
l J2SE (JAVASE)
Java 2 Standard Edition,定位在个人计算机上的应用。
l J2ME (JAVAME)
Java 2 Micro Edition,定位在消费性电子产品的应用上。
3. JAVA的特点【了解】
3.1 JAVA是跨平台的
Java程序的跨平台主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。
3.2 JAVA是简单的
l 不再有#include 和#define 等预处理功能
l 不再有struct、union及typedef
l 不再有函数、
l 不再有指针、不再有多重继承
l 不再有goto
l 不再有操作符重载(Operatior Overloading)
l 不再有全局变量
l 不再有手动内存管理
3.3 JAVA是安全的
l Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的, 并且使用指针也容易数组越界。
l Java提供了自动内存管理机制,由垃圾回收器在后台自动回收。
l Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
l 而在运行环境提供了四级安全性保障机制:节码校验器 - 类装载器 - 运行时内存布局 - 文件访问限制。
3.4 JAVA是完全面向对象的
l Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态)。
l 由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!
l Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了C++的固有缺陷。
3.5 JAVA是健壮的
Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)
4. JAVA跨平台原理【理解】
4.1 JAVA为什么能够流行
外部环境
l 互联网的爆发式发展。
l 互联网上的电脑硬件不同,软件环境差异较大,需要一个跨平台的语言。
JAVA核心优势
l 跨平台
4.2 JVM虚拟机
JVM(JAVA VIRTUAL MACHINE)是一种规范,可以使用软件来实现,也可以使用硬件来实现,就是一个虚拟的用于执行bytecodes字节码的计算机。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。
JVM是指在一台计算机上由软件或硬件模拟的计算机,它类似一个小巧而高效的CPU。
Java虚拟机是Java最核心技术,也是跨平台的基础。
l 可以使用软件来实现
例如:IBM, SUN, BEA等,当然你也可以自己写一个JVM
l 可以使用硬件来实现
例如:比如SUM/Intel公司研发的java芯片
4.3 JVM和JAVA跨平台特性
计算机的高级编程语言类型一般为: 编译型和解释型。而Java语言是两种类型的结合。
编译型语言:翻译把整篇英文文章翻译为中文,然后我再去阅读。
优点:阅读效率高。
缺点:需要等待翻译完毕。
解释型语言:翻译坐在我旁边,给我逐行的翻译英文文章。
优点:无需等待,直接就可以阅读。
缺点:阅读效率低。
常见java程序的编写和执行步骤为:
1、通过编辑器编写 Java源程序源文件(源文件名.java).
2、通过编译器将源程序编译成字节码文件(类名.class)。
3、通过解释器将字节码文件解释为对应的机器语言并运行(在JVM中运行字节码文件)。
以上图片就是JAVA文件编译成class文件后,class字节码文件在不同设备上执行的过程。通过在不同设备上安装虚拟机,从而实现了跨平台、可移植的功能。
4.4 JAVA和C跨平台原理的比较
l Java:一次编译,到处运行
Java编译器的作用:编译,将源文件编译为字节码文件。
Java虚拟机的作用:解释,把字节码文件转换成对应平台的机器语言。
l C:多次编译,到处运行
5. 常用DOS命令【掌握】
5.1 DOS简介
DOS是英文“Disk Operating System”的缩写,其中文含意是“磁盘操作系统”。DOS是单用户、单任务的操作系统。
从1981年直到1995年的15年间,磁盘操作系统在IBM PC兼容机市场中占有举足轻重的地位。而且,若是把部分以DOS为基础的Microsoft Windows版本,如Windows 95、Windows 98和Windows Me等都算进去的话,那么其商业寿命至少可以算到2000年。微软的所有后续版本中,磁盘操作系统仍然被保留着。
家族包括MS-DOS、PC-DOS、DR-DOS、PTS-DOS、ROM-DOS、JM-OS等,其中以MS-DOS最为著名。虽然这些系统常被简称为“DOS”,但几乎没有系统单纯以“DOS”命名(只有一个毫无关连的1960年代IBM大型主机操作系统以此命名)。此外,有几个和DOS无关、在非x86的微计算机系统上运行的磁盘操作系统在名称中也有“DOS”字眼,而且在专门讨论该机器的场合中也会简称为“DOS”(例如:AmigaDOS、AMSDOS、ANDOS、AppleDOS、Atari DOS、Commodore DOS、CSI-DOS、ProDOS、TRS-DOS等),但这些系统和DOS可执行文件以及MS-DOS API并不兼容。
5.2 DOS命令简介
n 切换盘符
d: c:
n 目录操作
cd change directory 改变当前文件夹
dir directory 查看当前目录下的文件和子文件夹
cd .. 返回上一级目录
cd\ 返回根目录
l 文件夹操作
md make directory创建当前文件夹
rd remove directory删除当前文件夹
n 文件操作
copy 复制文件
del delete删除文件
n 常见辅助命令
exit 退出命令窗口
cls clear screen清除屏幕
tab键 命令自动补齐,帮助自动完成,文件名或者文件夹
上下箭头键 显示之前或者之后已执行过的命令
n 深入学习DOS命令
help
注意:DOS命令不区分大小写,但是文件或文件夹需要区分大小写。
6. JAVA开发环境搭建【掌握】
6.1 JRE简介
JRE是Java Runtime Environment的缩写,是Java程序的运行环境,包含了java虚拟机,java基础类库。
JRE是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。
6.2 JDK简介
JDK是Java Development Kit的缩写,是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。
JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具。
如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。
总结:JDK包含了JRE,JRE包含JVM。
6.3 配置JAVA开发环境
6.3.1 卸载JDK
根据需求再决定是否需要卸载,如果已经正确安装JDK的同学可以略过安装步骤。
6.3.2 安装JDK
u 下载:Download J2SDK (Java 2 Software Development Kit)
FROM http://java.sun.com OR http://www.oracle.com
u 安装: 跟普通软件安装一样,点击下一步就OK!
6.3.3 验证JDK安装
在JDK安装目录的bin目录下,我们输入命令:java –version
出现如下图所示,则安装成功:
6.3.4 环境变量配置
环境变量就是为相关命令提供一个路径信息,告诉它到哪里去找相关文件信息:
u JAVA_HOME:C:\Program Files\Java\jdk1.6.0_14
u path:指定javac.exe和java.exe两个命令的位置。执行dos命令,系统会在path指定的路径中寻找该命令对应的可执行文件,将“%JAVA_HOME%\bin”增加到path中,多个目录用英文分号“;”隔开。
u classpath:指定解释的时候class文件的位置,JDK5.0以上就不需要配置这个环境变量!JRE会自动搜索当前路径下的类文件及相关jar文件。
【注意】:配置完java环境变量后,最好重启DOS窗口,重启后新配置的环境变量才能生效。
6.3.5 验证环境变量配置
开发DOS窗口,在任意文件目录(不是在bin目录下)下输入命令:javac
出现如下图所示,则配置成功:
7. 开发第一个JAVA程序【掌握】
7.1 编辑阶段
程序员编辑代码并保存在磁盘上(Ctrl+S)。
public class HelloWorld { //大括号是类的控制范围
public static void main(String[] args) {
System.out.print(“hello world!”);
}
}
保存为:HelloWorld.java
注意:文件的扩展名,保证扩展名必须为.java(例如:HelloWorld.java)
隐藏文件扩展名步骤:
进入控制面板 > 文件夹选项 > 查看 不勾选【隐藏已知文件类型的扩展名】
7.2 编译阶段
进入java文件所在目录,执行命令:javac HelloWorld.java。
切记:编译时必须加上扩展名.java。
7.3 执行阶段
进入java文件所在目录,执行命令:java HelloWorld,以便在虚拟机中执行字节码(.class)文件。切记:运行的是类而非class文件,所以类名后不能加扩展名.class
7.4 总结和提升
文件名:HelloWorld.java
Ø 关于类名(class name)
-
类的命名规范,应首字母大写同时采用驼峰式命名规范(规范大家一定要遵守)。
-
源文件中至多只有一个类能用public声明,并public修饰的类必须和文件名保持一致。
-
一个源文件可以有多个未被public修饰的类(class),public修饰的类至多只有一个。
-
源文件中可以用有多个class类,当源文件编译之后就有多少个字节码文件。
Ø 关于语法规范
-
花括号用于划分程序的各个部分,方法和类的代码都必须以‘{’开始以‘}’结束。
-
代码中没条语句以英文的分号‘;’结束,注意中英文之间的切换。
-
Java代码对字母大小写敏感,如果出现了大小写拼写错误,程序无法运行(例如string)。
-
main方法是Java应用程序的入口方法,它有固定的书写格式。
-
print()或println()中的内容用英文双引号包裹,代表内容原样输出。
Ø 编译时常见的问题
第一次难免会出现很多问题,但是出现问题不要怕,这是一件好事,解决问题的过程就是提成进步的过程。以下是初学者常犯的一些错误:
-
环境变量配置错误,无法执行javac命令;
-
没有在源文件所在目录下执行javac HelloWorld.java 命令;
-
执行javac命令后面的文件名写错,例如字母大小写;
-
语法格式错误,例如main方法书写错误,使用了中文的分号等;
-
如果文件中的类名用public来修饰,那么文件名和public修饰的类名必须保持一致。
-
使用notepad++发生的编码格式错误。因为DOS命令窗口默认编码为GBK,解决这个问题需要把notepad++的编码修改为ANSI即可。
【注意】如果我们对源代码做了修改,那么需要对修改后的源文件先进行编译,然后再执行编译出来的字节码文件。
7.5 编码风格
l 注意缩进!
一定要有缩进。缩进就像人得体的衣着一样!
l 成对编程!
括号、引号都应该写完后,再往里加内容。
l 见名知意!
最基本的要求!
8. 代码的注释【掌握】
注释就是程序员为读者(此处的作者指的是开发人员)作的说明的,是一种提高程序可读性的一种手段。源文件编译后,注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句。
8.1 单行注释
单行注释使用“//”开头,“//”后面的内容均为注释。
8.2 多行注释
多行注释以“/”开头以“/”结尾,在“/”和“/”之间的内容为注释,在使用多行注释时注意,多行注释不能嵌套。
8.3 文档注释
文档注释以“/**”开头以“*/”结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期再写项目时,可以生成项目的API)
9. 常用的开发工具【了解】
9.1 文本编辑器
l UltraEdit
l EditPlus
l notepad++
l sublime
9.2 集成开发环境
l Eclipse:一个开放源代码的、基于Java的可扩展开发平台的开源软件。
l MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境(后期项目阶段使用,商业软件要收费) 。
l IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。
l NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。
10. 反编译工具【了解】
10.1 编译和反编译理解
编译:把源代码编译为字节码文件。
反编译:字节码文件反编译为源代码 。
10.2 反编译命令
反编译步骤:
-
javac把源文件编译为字节码文件,例如:Test.java à Test.class
-
javap进行反编译操作,例如:javap Test
10.3 反编译软件
使用jd-gui.exe来实现反编译。