1.1 软件开发介绍
程序是为了模拟现实世界,解决显示问题而使用计算机语言编写的一系列有序的指令集合
软件:即一系列按照特定顺序组织的计算机数据和指令集合。有系统软件和应用软件之分
人机交互方式:
图形化界面(GUI)
命令行方式(CLI)
常用的DOS命令:
dir:列出当前目录下的文件及文件夹
md:创建目录
rd:删除目录
cd:进入指定目录
cd..:退回到上一级目录
cd\:退回到根目录
del:删除文件
exit:退出到dos命令行
非常经典的一句话:
算法+数据结构=应用程序
1.2 计算机编程语言的介绍
计算机语言:人与计算机交流的方式
第一代语言:机器语言。指令以二进制代码形式存在。
第二代语言:汇编语言。使用助记符表示一天机器指令。(eg:add 2,3)
第三代语言:高级语言:面向过程 (c语言) 面向对象(c++、java(纯面向对象))
1.3 JAVA语言概述
SUN(斯坦福大学网络公司)推出(1995年)
詹姆斯-高斯林(java之父)
JDK:java development key java开发工具
里程碑式版本:JDK1.5----2004年
2009年oracle收购SUN
14年 Java8.0 oracle发布的,比较成熟,增加了许多新特性
JAVA SE 标准版 桌面级应用,计算机,记事本,qq
JAVA EE 企业版 企业级应用,淘宝,京东,拼多多
JAVA ME 小型版 嵌入式设备游戏开发,已过时,随着Android和iOS智能系统的兴起
JAVA应用领域
企业级应用
Android平台应用
大数据平台开发
JAVA 语言的特点
面向机器---面向过程---面向对象
1.面向对象
两个基本概念:类、对象
三大特性:封装、继承、多态
2.健壮性(简单性):去除了c语言中的指针,有垃圾回收机制。
3.跨平台性
原理:只需要在运行java应用程序的操作系统上,先安装一个java虚拟机
(JVM java virtual machine)。由JVM来负责java程序在该系统中的运行。
一次编译,到处运行 write once,run anywhere
4.开源
1.4 java语言运行机制及运行过程
java语言的特点:跨平台性
有Win版的JVM 、Linux版的JVM、Windows版的JVM
编译执行:c、c++ 一次编译,多次运行。执行效率高。不可跨平台
解释执行:javaScript 将源文件交给不同平台独有的解释器。可以跨平台。执行效率低
java的执行机制:现将源文件(.java)编译成字节码文件(.class),再将字节码文件进行解释执行。
javap命令:字节码查看命令
-v:查看字节码文件的详细信息
JVM(JVM java virtual machine)是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,
管理数据,内存,寄存器。
垃圾回收(自动回收)
问题:JAVA 程序还会出现内存泄漏和内存溢出的问题吗? Yes!
1、长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露。
2、当一个对象被存储进HashSet集合中以后,就不能修改这个对象中的那些参与计算哈希值的字段了,否则,对象修改后的哈希值与最初存储进HashSet集合中时的哈希值就不同了,在这种情况下,即使在contains方法使用该对象的当前引用作为的参数去HashSet集合中检索对象,也将返回找不到对象的结果,这也会导致无法从HashSet集合中单独删除当前对象,造成内存泄露
安装JDK
JDK(java development kit):开发工具包 JDK是提供给开发人员使用的,其中包含可java的开发工具,也包括了JRE
其中的开发工具:编译工具(javac.exe)打包工具(jar.exe)
JRE:运行环境 包括java虚拟机和java程序所需的核心类库等,如果想要运行一个开发好的java程序,计算机需要安装JRE即可
JDK安装地址:Oracle | Cloud Applications and Cloud Platform
注意:安装软件的路径中不能包含中文、空格。(现在的jdk无所谓)
卸载软件的方式在控制面板中卸载程序
环境变量配置
为什么要配置path环境变量:
希望在任何文件路径下都可以执行java的这些开发工具
JAVA_HOME=jdk的存放路径bin的上一层目录
path=%JAVA_HOME%\bin
1.6 开发体验-HelloWorld
javap -v HelloWorld.class 查看helloworld的字节码文件
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
若想在命令行执行:在该代码的所在目录输入cmd打开命令行
在命令行编译
javac HelloWorld.java
运行
java HelloWorld
1.7 单行注释注释
单行注释 //
多行注释 /* */
文档注释(java特有) /** */
单行注释和多行注释的特点(单、多行注释不参与编译)
编译以后生成.class结尾的字节码文件中不包含注释掉的信息
1.对所写的程序进行解释说明,增强可读性。方便自己,方便别人
2.调试所写代码
文档注释的特点
注释内容可以被JDK提供的javadoc所解析,生成一套以网页文件形式体现的该程序的文档说明
1.8 javaAPI文档
API JAVA提供的一系列接口
API文档:针对于提供的类库如何使用给的一个说明书
对第一个程序进行总结
一.
1.编写:我们将编写java代码保存在以“.java”结尾的源文件中
2.编译:使用javac.exe命令编译的java源文件。格式:javac 源文件名.java
3.运行:使用java.exe命令解释运行文门的字节码文件。格式:java 类名
二.在一个java源文件中可以声明多个class。编译后,每个类都会生成独立的.class文件。但是,只能最多有一个类声明为public的
而且要求声明为public的类的类名必须与源文件名相同
三.程序的入口是main方法。且格式是固定的
四。输出语句
System.out.println(): 先输出数据,然后换行
System.out.print(): 值输出数据
printf():格式化输出
%.2f 格式说明符:表示四舍五入保留小数点后2位
%s格式说明符:表示以字符串的形式输出
每一行执行语句以“;”结束。
六。编译以后会生成一个或多个字节码文件,字节码文件的文件名与java源文件中的类名相同