1.1软件开发介绍
- 软件开发
软件,即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软
件和应用软件之分。
●人机交互方式
1.图形化界面(Graphical User Interface GUI)这种方式简单直观,使用者易于接受,容易上手操作。
2.命令行方式(Command Line Interface CLI):需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些
命令。 - 常用的DOS命令{DOS (Disk Operating System),是一种面向磁盘的操作命令}
dir:列出当前目录下的文件以及文件夹
md:创建文件目录
rd:删除目录
cd:进入指定目录
cd.. :退回到上一级目录
cd/:退回到根目录
del:删除文件
exit:退出dos命令行(补充:echo javase:>1.doc)
- 常用快捷键
<- (或->):移动光标
↑↓:调阅历史操作命令
Delete和Backspace:删除字符
1.2计算机编程语言介绍
- 高级语言
C、Pascal、Fortran面向过程的语言
C++面向过程/面向对象
Java跨平台的纯面向对象的语言
.NET跨语言的平台
Python、Scala…
1.3Java语言概述
- Java是SUN(Stanford University Network,斯坦福大学K网络公司)1995年推出的一门高级编程语言。
- 是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序(applet)。applet使用现代的图形用户界面与Web用户进行交互。applet内嵌在HTML代码中。
- 随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。
1.3Java语言概述:Java简史
1991年Green项日,开发语言最初命名为0ak(橡树)
1994年,开发组意识到0ak非常适合于互联网
1996年,发布JDK1.0,约8.3万个网页应用Java技术来制作
1997年,发布JDK1.1,JavaOne会议召开,创当时全球同类会议规模之最
1998年,发布JDK1.2,同年发布企业平台J2EE
1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生
2004年,发布里程碑式版本:JDK1.5,为突出此版本的重要性,更名为JDK5.0
2005年,J2SE->JavaSE,J2EE->JavaEE,J2ME->JavaME
2009年,Oracle公司收购SUN,交易价格74亿美元
2011年,发布JDK7.0
2014年,发布JDK8.0,是继JDK5.0以来变化最大的版本
2017年,发布JDK9.0,最大限度实现模块化
2018年3月,发布JDK10.0,版本号也称为18.3
2018年9月,发布JDK11.0,版本号也称为18.9
运行于拟机的编程语百,同时许程序在电视机机顶金等多平台上运行
Java技术体系平台
- Java SE(Java Standard Edition)标准版:
支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,此版本以前称为J2SE。 - Java EE(Java Enterprise Edition)企业版
是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如Servlet、Jsp等,主要针对于Web应用程序开发。版本以前称为JEE - Java ME(Java Micro Edition)小型版
支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对移动终端的支持,此版本以前称为J2ME。 - Java Card
支持一些Java小程序(Applets)运行在小内存设备(如智能卡)上的平台。
1.3Java语言概述:Java在各领域的应用
·从Java的应用领域来分,Java语言的应用方向主要表现在以下几个方面:
- 企业级应用:主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电
信、交通、电子商务等。 - Android平台应用:Android应用程序使用Java语言编写。Android开发水平的高低
很大程度上取决于Java语言核心能力是否扎实。 - 大数据平台开发:各类框架有Hadoop,spark,storm,flink等,就这类技术生态圈来讲,还有各种中间件如flume,kafka,sqoop等等,这些框架以及工具大多数是用Java编写而成,但提供诸如Java,scala,Python,R等各种语言API供编程。
- 移动领域应用:主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手机、PDA、机顶盒、汽车通信设备等。
1.3Java语言概述:Java语言的诞生
java之父James Gosling团队在开发”Green’“项目时,发现c缺少垃圾回收系统,还有可移植的安全性、分布程序设计和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。
Java确实是从c语言和C++语言继承了许多成份,甚至可以将Java看成是类c语言发展和衍生的产物。比如Java语言的变量声明,操作符形式,参数传递,流程控制等方面和C语言、C++语言完全相同。但同时,Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。Java舍弃了c语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。JDK1.5又引入了泛型编程(Generic
Programming)、类型安全的枚举、不定长参数和自动装/拆箱。
1.3Java语言概述:主要特性
- Java语言是强制面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制
(关键字为implements)。 - Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、Serversocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
- Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。
- Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查。
- Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
- Java语言是解释型的。如前所述,Java程序在JaVa平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统的解释器中运行。
- Java是性能略高的。与那些解释型的高级脚本语言相比,Java的性能还是较优的。
- Java语言是原生支持多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
1.4Java语言运行机制及运行过程
- Java语言的特点
特点一:面向对象
两个基本概念:类、对象
三大特性:封装、继承、多态
特点二:健壮性
吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制。
特点三:跨平台性
跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write
once,Run Anywhere" 。原理:只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
- Java语言的特点:跨平台性
因为有了JVM,同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。
1.4Java语言运行机制及运行过程
- 核心机制一垃圾回收
不再使用的内存空间应回收就是垃圾回收。
1.C/C++等语言中,由程序员负责回收无用内存。
2.Java语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
3.垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。
4.Java程序还会出现内存泄漏和内存溢出问题吗?Yes!
1.5Java语言的环境搭建
什么是JDK,JRE
- JDK(laya Deyelopment Kit Java开发工具包)
JDK是提供给Java发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
其中的开发工具:编译工具(javac.exe)打包工具(jar.exe)等
- JRE(Java Runtime Environment Java运行环境)
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的java程序,计算机中只需要安装JRE即可。
简单而言,使用JDK的开发工具完成的java程序,交给JRE去运行。
1.5Java语言的环境搭建:JDK、JRE、JVM关系
- JDK=JRE+开发工具集(例如Javac.exe、java.exe、javadox.exe等)。
- JRE=JVM+Java SE标准类库。
- 总的来说,JDK包含JRE,JRE包含JVM。
1.5Java语言的环境搭建:下载并安装JDK
官方网址:
https://www.oracle.com/
java.sun.com
- 安装JDK
傻瓜式安装,下一步即可。
建议:安装路径不要有中文或者空格等特殊符号。
如果操作系统是64位的,软件尽量选择支持64位的(除非软件本身不区分)。
当提示安装JRE时,正常在JDK安装时已经装过了,但是为了后续使用Eclipse等开发
工具不报错,建议也根据提示安装JRE。
- 明确什么是JDK,JRE–>下载JDK–>安装JDK
- 配置环境变量: path:windows.系统执行命令时要搜寻的路径。
- 验证是否成功:javac java选择合适的文本编辑器或IDE开发。
- 为什么要配置path环境变量?如何配置?
答:为了在任何文件夹下都能执行Java的开发工具。
JAVA_HOME=bin上一层目录
PATH=%JAVA_HOME%\bin
path环境变量:windows操作系统执行命令时所要搜寻的路径。
为什么要配置path:希望java的开发工具(javac.exe,java.exe)在任何的文件路径下都可以执行成功。
如何配置:
1.6开发体验一HelloWorld
步骤:
1.将Java代码编写到扩展名为java的文件中。
2.通过javac命令对该java文件进行编译。
3.通过java命令对生成的class文件进行运行。
public class Helloworld{
public static void main(String[]args){
System.out.println("Hello World!");
}
}
1.8注释(comment)
- 用于注解说明解释程序的文字就是注释。
- Java中的注释类型:
一、单行注释
二、多行注程(多行注释不可以嵌套使用)
三、文档注释(Java特有)
1.提高了代码的阅读性:调试程序的重要方法。
2.注释是一个程序员必须要具有的良好编程习惯。
3.将自己的思想通过注释先整理出来,再用代码去体现。
4.特点:注释了的内容不参与编译。换句话说,编译以后生成的.class结尾的字节码文件中不包含注释掉的信息。
- 文档注释(Java特有)
格式:
/**
@author 指定Java程序的作者
@version 指定源文件的版本
*/
- 注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档。
- 操作方式
javadoc -d mydoc -author -version.java
例子:
class Helloworld{
//单行注释:如下的main()方法是程序的入口
/*
多行注释:
如下的main()方法是程序的入口
main的格式是固定的!
*/
/**
文档注释
@author shkstart
@version v1.0
这是我的第一个java程序!非常的开森!
*/
public static void main(String[]args){
//单行注释:如下的语句表示输出到控制台
System.out.println("Hello World!");
}
}
- 对第一个java程序进行总结
1.java程序编写-编译-运行的过程:
编写:我们将编写的java代码保存在以".java"结尾的源文件中。
编译:使用javac.exe命令编译java源文件。格式:javac源文件名.java 。
运行:使用java.exe命令解释运行字节码文件。格式:java 类名。
2.在一个java源文件中可以声明多个class。但只能最多有一个类声明为public的,且要求声明为publicl的类的类名必须与源文件名相同。
3.程序的入口是main()方法。格式是固定的。
4.输出语句:
System.out.println():先输出数据,然后换行
System.out.print():只输出数据
5.编译的过程:编译以后,会生成一个或多个字节码文件。字节码文件的文件名与java源文件中的类名相同。例子(类为ChairMan):
编译 : javac ChairMan.java
运行: java ChairMan
1.9 Java APl的文档
APl(Application Programming Interface,应用程序编程接口)是Java提供的基本编程接口。
Java语言提供了大量的基础类,因此Oracle也为这些基础类提供了相应的API文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。
Additional Resources-Java SE8 Documentation下。
详见:JDK8的下载-安装-配置.doc
1.11常用的Java开发工具
- 文本编辑工具:
记事本
UltraEdit
EditPlus
TextPad
NotePad
- Java集成开发环境(IDE):
JBuilder
NetBeans
Eclipse
MyEclipse
IntelliJ IDEA
Eclipse应该是大多数Java程序员使用的第一个DE。众所周知的、最流行、也最受欢迎的Java开发工具。优点很多:免费、更新快、代码智能化ANT构建等,拥有众多插件,完全免费、有中文版、上手比较快。缺点也非常明显,安装插件麻烦、插件对版本要求比较严格。
下载:https://eclipse.org/
MyEclipse也是一款功能强大的J2EE集成开发环境,由Genuitec:公司发布,提供免费版和收费版。但免费版只能满足基本开发需求。
下载:http://www.myeclipsecn.com/
IntelliJ IDEA被认为是目前Java开发效率最快的IDE工具。是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格。它整合了开发过程中实用的众多功能,智能提示错误,强大的调试工具,Ant,JavaEE支持,CVS整合最大程度的加快开发的速度。简单而又功能强大。与其他的一些繁冗而复杂的IDE工具有鲜明的对比。
下载:https://www.jetbrains.com/idea/
Eclipse 的使用配置
一、首次使用的必要设置
1. Eclipse 的安装
将 Eclipse 解压或安装到没有中文且没有空格的路径下。
2.设置 workspace
首次启动,选择指定的工作空间(workspace),用于存放 java 代码。
注 :中间的蓝框,不建议打钩.如果打钩,每次 Eclipse 会自动进入上面选中的 workspace 中.不利于 Eclipse 开启其他 workspace。
点击”OK”,进入主界面.首次进入显示如下:
可以去掉 welcome 页面右下角的钩,避免每次启动都显示。
3.设置透视图(perspective)
进入 Eclipse 编辑界面以后,首先选择如下的红框,设置透视图:
点击”红框”,选择 JavaEE 透视图:
4.添加透视图需要显示的结构
在如下的文本框中依次输入相应结构的名字,调取出来。
结构 1:Package Explorer
结构 2:Navigator
结构 3:Outline
并统一拖放在界面的左端:
结构 4: Console
5.关闭其它不需要的结构
以及
以及
以上红框标注的结构,都可以删除。(因为不常用)
6.设置编码集
7.设置字体,字形,字体大小
双击:Text Font
8.设置 package explorer 中右键:new 下显示的结构
点击进入:
去除 New 前的选择,从子列表中选择常用的结构即可。
9.保存当前透视图
覆盖默认的透视图即可。
二、完成第一个 HelloWorld 程序
1. 创建工程
在包下new一个Java Project
给Java Project命名
此时打上红框的钩,接着选择:No。这里表示以后我们都是用 JavaEE 的透视图打开 java 工程。
2. 创建包
选中 src 后,右键,new-Package(源代码都在src下,Package就好比一个班级,里面的源文件就好比学生,在src下创建包)
3. 创建类
在包里面创建类
编写代码,并运行:在代码层面点右键,选择Run AS–>Java Application,点击
三、常见问题
1. 双击 Eclipse 启动图标,不能正常启动 Eclipse
启动不了的原因有很多种,这里需要大家从如下几个方面排查:
- 环境变量是否正确配置,需要在命令行输入 javac.exe 或 java.exe 进行检查
- 是否正确的安装了 JDK 和 JRE
- 安装的 JDK 的版本(32 位还是 64 位),必须与 Eclipse 版本一致
- 修改 Eclipse 安装目录下的 eclipse.ini 配置文件。
2. 进入 Eclipse 时,没有可选择的 workspace
原因:
由于勾选了上述红框,所以再次启动 Eclipse 时,不再显示可选择的 workspace。
解决办法:
在windows – Preferences 下,将上述的红框勾选即可。
3. 如何导入已有的工程
接着,
通过点击蓝框选择要导入的 Java 工程,然后勾选上述的两个红框,确认即可。若文件名和已导入文件相同,则不能导入,需设置不同文件名。
4. 如何导入已有的一个源文件(后缀为.java的文件)
直接复制(ctrl + c)此源文件,直接在指定的工程的包下粘贴(ctrl + v)。同时在导入的源文件头部添上当前包的包名。
5. 如何删除一个工程
点击工程删除即可。
勾上下面的框才能将文件从磁盘上删除。否则建同名文件后其中内容为上述文件的内容。
6. 工程中的代码有乱码怎么办
原因:
出现乱码的代码所使用的字符编码集与工程设置使用的字符编码集不一致导致的。
如何解决:
建议修改乱码文件的字符编码集即可。
7.运行程序,误选择了 Java 透视图,如何调整为 JavaEE
将设置修改为上图设置的情况即可解决。
8.再创建一个 workspace,之前的设置怎么没了
原因:
我们对 Eclipse 做的设置,只对当前使用的 workspace 有效。设置的数据保存在相应workspace 文件夹下的.metadata 文件夹中。解决方法:
如果创建了新的 workspace,则需要重新设置。
9.如何在 Eclipse 中查看 Java 类库源代码呢?
在代码中,综合使用 ctrl + 鼠标左键点击指定结构时,可以调出如下界面:
点击按钮:Attach Source
要导入的源码如果是文件方式存在,则选择:External File
要导入的源码如果是文件夹方式存在,则选择:External Folder
这里 jdk 源码以 src.zip 方式存在,所以选择:External File
选中确认即可。
10.如何在编写的代码中显示程序员的相关信息
依次选择:
Window–>Preferences–>Java–>Code Style–>Code Templates
点击 Comments
(1) 找到 Types 然后双击填入以下几个信息即可
框中红色的,大家填写自己的信息即可。
(2)找到 Methods 然后双击填入以下几个信息即可
框中红色的,大家填写自己的信息即可。
四、常用快捷键的使用
1.补全代码的声明:alt + /
2.快速修复: ctrl + 1
3.批量导包:ctrl + shift + o
4.使用单行注释:ctrl + /
5.使用多行注释: ctrl + shift + /
6.取消多行注释:ctrl + shift +
7.复制指定行的代码:ctrl + alt + down 或 ctrl + alt + up
8.删除指定行的代码:ctrl + d
9.上下移动代码:alt + up 或 alt + down
10.切换到下一行代码空位:shift + enter
11.切换到上一行代码空位:ctrl + shift + enter
12.如何查看源码:ctrl + 选中指定的结构 或 ctrl + shift + t
13.退回到前一个编辑的页面:alt + left
14.进入到下一个编辑的页面(针对于上面那条来说的):alt + right
15.光标选中指定的类,查看继承树结构:ctrl + t
16.复制代码: ctrl + c
17.撤销: ctrl + z
18.反撤销: ctrl + y
19.剪切:ctrl + x
20.粘贴:ctrl + v
21.保存: ctrl + s
22.全选:ctrl + a
23.格式化代码: ctrl + shift + f
24.选中数行,整体往后移动:tab
25.选中数行,整体往前移动:shift + tab
26.在当前类中,显示类结构,并支持搜索指定的方法、属性等:ctrl + o
27.批量修改指定的变量名、方法名、类名等:alt + shift + r
28.选中的结构的大小写的切换:变成大写: ctrl + shift + x
29.选中的结构的大小写的切换:变成小写:ctrl + shift + y
30.调出生成 getter/setter/构造器等结构: alt + shift + s
31.显示当前选择资源(工程 or 文件)的属性:alt + enter
32.快速查找:参照选中的 Word 快速定位到下一个 :ctrl + k
33.关闭当前窗口:ctrl + w
34.关闭所有的窗口:ctrl + shift + w
35.查看指定的结构使用过的地方:ctrl + alt + g
36.查找与替换:ctrl + f
37.最大化当前的 View:ctrl + m
38.直接定位到当前行的首位:home
39.直接定位到当前行的末位:end
“代码自动补全”的设置:在Window–>Preference–>Java–>Constent Assist–>Auto Activation下设置。
五、Java中的JUnit单元测试
- 创建测试方法:
- public方法
- 没有返回值void
- 方法名称自定义,建议名称是test +你要测试方法名称
- 方法没有参数
- 方法的上面加入@Test ,这样的方法是可以单独执行的。不用使用main方法
package com.atguigu.java2;
import java.util.Date;
import org.junit.Test;
/*
* Java中的JUnit单元测试
*
* 步骤:
* 1.选中当前工程 - 右键选择:build path - add libraries - JUnit 4 - 下一步
* 2.创建Java类,进行单元测试。
* 此时的Java类要求:① 此类是public的 ②此类提供公共的无参的构造器
* 3.此类中声明单元测试方法。
* 此时的单元测试方法:方法的权限是public,没有返回值,没有形参
*
* 4.此单元测试方法上需要声明注解:@Test,并在单元测试类中导入:import org.junit.Test;
*
* 5.声明好单元测试方法以后,就可以在方法体内测试相关的代码。
* 6.写完代码以后,左键双击单元测试方法名,右键:run as - JUnit Test
*
* 说明:
* 1.如果执行结果没有任何异常:绿条
* 2.如果执行结果出现异常:红条
*/
public class JUnitTest {
int num = 10;
@Test
public void testEquals(){
String s1 = "MM";
String s2 = "MM";
System.out.println(s1.equals(s2));
//ClassCastException的异常
// Object obj = new String("GG");
// Date date = (Date)obj;
System.out.println(num);
show();
}
public void show(){
num = 20;
System.out.println("show()....");
}
@Test
public void testToString(){
String s2 = "MM";
System.out.println(s2.toString());
}
}