第一代:机器语言
程序员直接编写二进制,如:0101010000011110000…
二进制可以转化为十进制,故计算机可模拟现实中的事物;
机器语言时代早期代表性的是:打孔机
特点:纸带不容易保存;另外打孔是人为操作,容易出错,一旦出错,纸带就作废;
第二代:低级语言
代表性的:汇编语言
优点:用一些容易理解和记忆的字母、单词代替特定的指令,比机器语言更贴近人类自然语言;
缺点:需要专业人士来开发,一般人不懂;
第三代:高级语言
优点:完全贴近人类自然语言;
如: C语言面向过程;C++语言一半面向对象一半面向过程;Java语言面向对象(底层实际C++);Python语言面向对象;
计算机编程语言其实是一个团队或者一个组织制定的一套语法规则,我们可以通过学习这套语法规则和计算机进行交互。
JAVA语言 发展史
术语91年,sun公司James Gosling(java之父)及其团队研发的编程语言。第一版耗时18个月,最开始名为Oak(橡树);
98年,Java升级JDk1.2,Java分为三个模块:J2se标准版(基础)、J2ee企业版(企业开发)、J2me微型版(嵌入式开发);05年,Java十周年改名:JavaSE、JavaEE、JavaME;
| JDK | Java Developer Kit | Java开发工具 |
|---|---|---|
| JRE | Java Runtime Environment | Java运行时环境 |
| JVM | Java Virtual Machine | Java虚拟机 |
| API | Application Programming Inteface | 应用程序接口 |
| IDE | Integrated Development Environment | 集成开发环境 |
Java的工作原理(1)Java的简单性
没有指针概念,不允许直接通过指针操作内存;java只支持单继承;
(2)Java的跨平台/可移植
Java语言编译一次可以到处执行:即编译之后,不同的操作系统都能运行,前提是要安装相应版本的JVM
JDK、JRE、JVM三者之间的关系:
JDK包括JRE、JRE包括JVM
JVM不能单独安装,而JDK和JRE都可以,如果只是运行程序,只安装JRE即可。
(3)Java的健壮性
GC机制,自动垃圾回收机制,不容易导致内存泄漏
(4)Java完全面向对象
(5)Java语言支持多线程
Java程序的工作主要分两个阶段:编译、运行。
工作方式:先编译,再解释运行
解释:源代码不是直接翻译成机器语言,而是先翻译成中间代码(如:字节码文件),再由解释器(java虚拟机)对中间代码进行解释运行。
编译
直接编写的Java源代码是无法被JVM识别的,必须将源代码编译为字节码文件(即通过编译器运行将”.java“文件转变为”.class“文件),JVM能够识别字节码文件。
注意:
1、Java源文件可以变生成多个class文件,最终运行的是class文件,即使删除源文件只要有class文件不影 响程序运行;
2、字节码文件不是二进制文件,如果是的话,就用不着JVM了,操作系统可以直接运行二进制;
| 编译语法 | 编译的实质 |
|---|---|
| Javac+源文件路径 | 就是检查语法 |
运行
语法:Java+类名
注意:必须切换到文件同一目录下
过程:通过java.exe命令启动JVM—>JVM启动类加载器(Class Loader)—>类加载器在磁盘中搜索”.class“文件,并将找到的”.class“文件加载到JVM当中—>JVM将其解释成二进制数据—>操作系统执行数据与硬件平台交互
注意:Javac和Java两个命令分别对应的是JDK里面的两个程序,即:Java.exe和Java.exe。
| ClassLoader | 类加载器,在默认情况下从当前目录下加载字节码文件,也可以指定加载路径,需要配置环境变量classpath |
|---|---|
| classpath | 是Java语言的专属环境变量,因Java语言而定义,是用来给类加载器指路的,一旦配置就只能在指定的路径下查找 |
第一步:安装文本编译器
NOtepad++、EditPlus、Sublime Text
第二步:安装JDK
JDK会内置一个JRE,目录外还会有一个独立的JRE
JDK下不同目录的作用
bin目录 是binary(字节码)的缩写,里面存放了JDK的各种工具命令即JDK开发工具的可执行文件(文件都是二进制的,其中包括编译器、解释器以及其他一些工具)该目录应当保存到PATH变量中。 db目录 是从Java6开始新增的一个目录,这是一个纯 Java 实现、开源的数据库管理系统(DBMS),源于 Apache 软件基金会(ASF)名下的项目 Derby。 include目录 由于JDK是通过C和C++实现的,因此在启动时需要引入一些C语言的头文件,所以include目录里面是一些供C语言使用的标题文件,其中C语言的头文件支持Java本地接口和Java虚拟机调试程序接口的本地编程技术。 jre目录 安装的就是运行Java程序所必须的JRE环境。 lib目录 是libarary(类库)的缩写。存放的是开发工具使用的归档包文件。例如jar包等 src.zip压缩包 该压缩文件里面存放的就是Java所有核心类库的源代码。通过该文件可以查看Java基础类的源代码。 javafx-src.zip压缩包 存放JavaFX脚本,JavaFX它是一种声明式、静态类型编程语言。(是jdk1.8以上新加的)。 COPYRIGHT和LICENSE 为版权和签证的说明性文档。 README.html 有关JDK的信息,点击可以在Oracle的官网查看。 release 此版本发布内容,版本信息。 THIRDPARTYLICENSEREADME-JAVAFX.txt和THIRDPARTYLICENSEREADME.txt 许可介绍
JDK的一些实用程序
Java Java解释器,直接从类文件执行Java应用程序字节代码 Javac Java编译器,将Java源代码转换成字节码 appletviewer 小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器 Javadoc 根据Java源码及说明语句生成HTML文档 Jdb Java调试器,可以逐行执行程序,设置断点和检查变量 Javah 产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件 Javap Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义
lib目录下常见的Jar包的作用
dt.jar 给JavaBean和IDE用的 jconsole.jar 给jconsole工具用的 tools.jar 包含了对开发工具的支持功能库
第三步:配置环境变量
即:告诉计算机JDK的程序在哪里
打开计算机高级设置—>选择环境变量—>打开Path变量,将Java所在的路径添加到Path变量里
程序构造快系统变量:对计算机的所有用户起作用
用户变量:只作用于当前用户
Windows系统如何运行搜索某个命令?
先从当前所在的目录下搜索,如果没有,会从环境变量Path指定的路径搜索,如果都没有则报错。
Path环境变量:给操作系统指路,告诉其命令在哪,属于Windows操作系统
javac -version 查看编译器版本 java -version 查看虚拟机版本
| package | 包(零条或一条,出现在程序最开始的地方,为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间) |
|---|---|
| import | 导入(零条或多条,在java文件开头的地方,先说明会用到那些类别) |
| class | 类(自己创建的类,公开的类名与文件名保持一致) |
| main方法 | public static void main (String[]args):可执行程序的入口:public static void三个修饰符 |
| String[]args | 可接收命令行参数,main()方法中的字符串数组类型的参数就是java命令的参数,使用java命令的方式运行main()方法,会将java命令的参数入参到Java main()方法的字符串数组参数中 |
| 花括号 | 左边表示代码块开始,右边表示代码块结束 |
| 语句 | 每个语句都要以英文分号结尾 |
| 注释 | 行注释”//“、块注释”/*…“、文档注释”/…/“(@author-作者、@param-参数、@return-返回值、@throw-可能引发的异常)** |



