Java语⾔编程发展历程和JVM概述
计算机语⾔的发展历史
- 第⼀代 计算机语⾔:01010100010111000
- 第⼆代 汇编语⾔ 00000011写成汇编语⾔就是ADD,只要还原成⼆进制, 汇编语⾔就可以被CPU直接执⾏,所以它是最底层的低级语⾔
- 第三代 ⾼级语⾔ ⾯向过程:c,Fortran
⾯向对象:c++,java,c#
来⾃Sun公司,全称 Stanford University Network
1990年12⽉,sun成⽴了⼀个“Green Team”, java之⽗——Jeams Golsling
1996年 JDK1.0版本
2009年 甲⻣⽂以现⾦收购Sun公司
2011年 Oracle公司发布了JDK7
2014年,Oracle公司发布了JDK8
2017年 JDK9 2018-03 JDK10
2018-09 JDK11
Java版本介绍
- JavaSE,即Java标准版(以前简写J2SE)Java技术核⼼和基础,是J2ME和J2EE编程的基础
- JavaEE,即Java企业版(以前简写J2EE)java技术中应⽤应⽤最⼴泛的部分
- JavaME,即Java微型版(以前简写J2ME),主要⽤于移动设备
JVM、JRE、JDK关系
- JVM Java Virtual Machine Java 虚拟机,简单看成⼀个操作系统,java程序会⾸先被编译 为.class的字节码,根据字节码指令进⾏识别并调⽤上层操作系统
- JRE Java Runtime Environment java 运⾏时环境, 是整个 Java 程序运⾏的核⼼
- JDK Java Development Kit 是我们的开发⼯具包,它集成了 JRE, 是整个 Java 开发的核⼼
- 总结 JRE = 基本类库 + JVM,没有JRE,java程序⽆法运⾏ JDK = JRE+JVM+开发⼯具包 Java核⼼优势:⼀次编译,到处运⾏,能够跨平台运⾏的核⼼在于 JVM
概念理解⾯向对象编程和特点
什么是⾯向对象编程
维基百科: ⾯向对象程序设计(英语:Object-oriented programming,缩写:OOP)是种具有对象概念 的程序编程典范, 同时也是⼀种程序开发的抽象⽅针。它可能包含数据、属性、代码与⽅法。对象则指的是类的实 例!!!。它将对象作为程序的基本单元,将程序和数据封装其中,以提⾼软件的重⽤性、灵活性 和扩展性,对象⾥的程序可以访问及经常修改对象相关连的数据。在⾯向对象程序编程⾥,计算机 程序会被设计成彼此相关的对象
Java开发环境准备
JDK8下载
win10配置环境变量
- 右键 此电脑 ->(属性) ->(⾼级系统设置) ->(环境变量)
- 新建三个变量
JAVA_HOME 变量值为JDK安装路径
PATH %JAVA_HOME%\bin
CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- 验证环境变量是否成功 分别输⼊下⾯3个命令,不报错即可
java
javac
java -version
第⼀个Java程序Hello World
- 新建文件HelloWorld.java,编辑并保存
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
- 编译
javac HelloWorld.java
- 运行
java HelloWorld
基础语法:
- java⽂件名: ⽂件名必须和类名相同,后缀为.java; 否则会出错
- 类class: 表示声明⼀个类,类名的⾸字⺟需要⼤写,多个单词的话需要使⽤驼峰形式 HelloWorld、UserAccount、User
- ⽅法: ⽅法名需要⼩写字⺟开头,若有⼏个单词,则后续的采⽤驼峰形式
- 主⽅法: 固定搭配,需要硬记,所有程序的主⼊⼝public static void main(String[] args)
- 所有变量、名称都是⼤⼩写敏感的!!!!
IDEA的社区版安装和基本配置
- 社区版 Community:免费,但是功能有限制
- 终极版Ultimate:收费,功能⽆限制
设置主题
Files -> Settings->Appearance & Behavior > Appearance
设置字体大小
Files -> Settings->Editor -> Font
IDEA debug 基础调试技能⽤
- step over 程序向下执⾏⼀⾏
- step into 进⼊⾃定义⽅法
- step out 跳出对应的⽅法
java⾥⾯常⻅注释
- 单⾏注释
// 单⾏注释
- 多⾏注释
/*
* 多行注释1
* 多行注释2
*/
- 文档注释
/**
* 文档注释
* @author Steven Wong
*/
Java模块划分和包的使⽤
java的包package和import导⼊其他模块**
包package的作用
- 为了更好的组装类,给类名增加个名称空间
- 控制不同类的访问权限 包名格式规范:全部⼩写字⺟,可以是域名反过来写
常⻅的java⾃带的包
- java.lang 基础类包,默认⾃动导⼊的包,⾥⾯有Obect, String, StringBuffer, System等包, 应⽤最⼴
- java.util 常⻅的⼯具类包
- java.io 提供系统的输⼊输出
- java.net 提供⽹络操作相关的类 例⼦:导⼊⼯具类包
// 导⼊util包下的Date类
import java.util.Date;
// *号表示这个util包下⾯的全部类都导⼊进来
import java.util.*;