第一章 语言概述
一、语言概述
(一)计算机语言概述
1、计算机组成
-
硬件:
CPU:中央处理器,负责运算。
内存:临时数据存储空间,断电数据消失。
硬盘:永久化存储设备。
主板:载体。
网卡:LAN 、WAN,负责通信。
电源:提供电能。
外接设备:鼠标、键盘、扫描仪、打印机等。
-
软件:
系统软件:Windows、Mac OS、Linux等。
应用软件:不同应用程序及客户端。
- 计算机语言:人与计算机之间传递信息的媒介。程序员通过编程语言编写程序(软件),驱动硬件进行数据操作以实现某些功能。
2、计算机语言
- 是一个团队或者组织制定的一套固定的语法规则,通过学习这套语法规则,使用该套语法规则和计算机进行交互。
3、第一代语言——机器语言
- 程序员直接编写二进制码。计算机由电流驱动,电流只能表示正、负两种状态。二进制码和自然世界中的十进制存在转换关系。所以很巧妙的是:计算机可以模拟现实世界中的事物。
- 最具代表性的是:打孔机。
4、第二代语言——低级语言
- 最具代表性的语言:汇编语言。比机器语言更接近人类自然语言。
5、第三代语言——高级语言
- C:面向过程。
- C++:一半面向对象,一半面向过程。
- Python:面向对象。
- Java:完全面向对象。Java语言的底层是C++、可使用C++语言写一个虚拟电脑,即JVM。
(二)Java语言概述
1、Java特性
- 面向对象:人类通常是以对象的方式认知世界的,面向对象更容易让人理解,采用面向对象的方式可以让复杂问题简单化。
- 可移植性:JVM跨平台,一处开发,到处执行。JVM屏蔽了操作系统之间的差异。
- 健壮性:”自动垃圾回收机制“中JVM负责调度GC(Garbage Collection)机制,无需程序员干涉,但是程序员也可以手动调度GC机制。
- 简单性:Java语言屏蔽了指针概念。
- 多线程的:Java完美支持多线程并发。
- 分布式的:
- 解释性的:
2、Java其他
- 项目部署的时候只需要给客户安装JRE即可,体积小,便捷快速。
- Java编译:Java源代码不会影响字节码文件的运行,一个java源文件是可以生成多个class文件的。编译实质上是检查语法。
- 编译和执行可以在两套不同的操作系统上完成。
- 字节码文件可以反编译成为源代码,称之为反射机制。
- classloader类加载器,加载(装载)A.class文件,其中A为类名。本质上是类加载器去硬盘上寻找类对应的字节码文件。
- JVM启动解释器将字节码文件解释为二进制码,供OS和计算机硬件交互。
- java新特性:java 后直接跟java源文件的路径,直接运行。但实际上底层的实现原理还是和以前一样,以上命令实现的过程中,还是会在内存中编译形成一个字节码文件。
(三)Java语言特性
1、Java发展史
- 1995年,Sun公司,James Gosling(java之父)。
- 2009年,Oracle收购。
- Java语言的特性:面向对象的、分布式的、解释性的、多线程的、可移植的、健壮性、安全的、体系结构中立的、高性能的、动态的。
- JavaSE(Java2 Platform,Standard Edition)Java平台标准版(基础语法+基础库)。
- JavaEE(Java2 Platform,Enterprise Edition)Java平台企业版(OA、保险、金融)。
- JavaME(Java2 Platform,Micro Edition)Java平台微型版(微型设备嵌入式开发)。
2、跨平台原理
- Java程序并非是直接运行的。Java编译器将Java源程序编译成与平台无关的字节码文件(.class文件)。然后由Java虚拟机(JVM)对字节码文件解释执行。所以在不同的操作系统下,只需要安装与该系统对应的Java虚拟机即可实现Java程序的跨平台运行。
- Java语言当中真正操作内存的是JVM(Java虚拟机),所有的java程序都是运行在Java虚拟机当中的,而Java虚拟机执行过程中再去操作内存。
3、Java程序的开发流程
4、JDK、JRE、JVM逻辑包含关系
-
JDK(Java Development Kit):称之为Java开发工具箱,包含了JRE和开发工具。
-
JRE(Java Runtime Environment):称之为Java运行环境,包含了JVM和核心类库( API)。
-
JVM(Java Virtual Machine):称之为Java虚拟机。
-
JSR规范:Java Specification Request。
-
JCP组织:Java Community Process。
-
RI:Reference Implementation。
-
TCK:Technology Compatibility Kit。
(四)Java开发环境搭建
1、JDK安装
-
包含JRE、JVM的安装
目录名称 说明 bin 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。 conf 该路径下存放了JDK的相关配置文件。 include 该路径下存放了一些平台特定的头文件。 jmods 该路径下存放了JDK的各种模块。 legal 该路径下存放了JDK各模块的授权文档。 lib 该路径下存放了JDK工具的一些补充JAR包。
2、path环境变量配置
- 引导Windows OS寻址命令文件。
- Path本质上是隶属于Windows OS的一种操作机制。
3、class path环境变量配置
- 引导classloader寻址字节码文件,但是因其改变了默认的寻址位置,固定于某一处,故暂时不需配置。
- class path是Java特有的环境变量,需要在Windows中新建。
4、public class与class的区别
- 一个java源文件中可定义多个class。
- 一个class会定义生成一个xxx.class字节码文件。
- 一个java源文件中public的class不是必须的。
- 一个java源文件中如果定义公开的类(public class),只能有一个,并且需要该类名称和java源文件名称一致。
- 每一个class中都需要写主方。
- 想从哪个入口进去,就加载哪一个类就行,但在开发中,一般只有一个入口。
5、JAVA_HOME
- JAVA-WEB中的Tomcat服务器需要配置。
6、JAVA_HOME的bin
目录
- java:这个可执行程序其实就是JVM,运行Java程序,就是启动JVM,然后让JVM执行指定的编译后的代码。
- javac:这是Java的编译器,它用于把Java源码文件(以
.java
后缀结尾)编译为Java字节码文件(以.class
后缀结尾)。 - jar:用于把一组
.class
文件打包成一个.jar
文件,便于发布。 - javadoc:用于从Java源码中自动提取注释并生成文档。
- jdb:Java调试器,用于开发阶段的运行调试。
(五)HelloWorld程序演示
1、DOS命令
-
Windows系统中复制:光标选中,右键单击即复制到剪切板,可直接粘贴。
-
在文件夹中‘.’表示当前目录。在文件中‘..’表示返回上一级文件目录。
DOS命令 作用 Win + R 进入运行窗口 cmd 进入命令窗口(Command Prompt) mkdir 创建一个目录(make directory) dir 查看当前目录下的内容 d: c: 等 盘符切换 cd 目录 改变一个目录(change directory) cd.. 返回上一级目录 cd 目录1目录2 进入多级目录 cd 退回到盘符更目录 cls 清屏(clear screen) exit 退出命令窗口(exit) del 删除命令(delete) Tab 自动补全 ipconfig 查看本机IP地址 ping 通信正常测试 java -version java程序的版本
2、HelloWorld程序在DOS系统中的编译和执行
-
public class HelloWorld { public static void main(String[] args) { System.out.println("HelloWorld"); } }
-
执行结果 DOS命令 编译命令 Javac HelloWorld.java 运行命令 Java HelloWorld
3、绝对路径和相对路径
- 绝对路径:在Windows操作系统中凡是路径起点是盘符的都是绝对路径。
- 相对路径:相对于当前位置而言,从当前作为位置的起点的路径,需有参照系 。
4、DOS命令窗口支持模糊搜索“*.class”
- 文件名:T1.class、T1.glass。del *ass这个命令可以直接删除上述两个文件。
5、DOS命令窗口查看本机的IP地址“ipconfig”
- IP地址:计算机在同一个网络中的唯一识别码。
- ipconfig(ipconfig/all能查看更全的本地信息,比如MAC地址)。
- 防蹭网:绑定MAC地址与路由器。
6、DOS命令窗口测试正常通信
-
ping命令:
ping 域名/IP地址
ping www.baidu.com
ping 61.135.169.121 -t(加‘-t’表示一直ping,Ctrl+C结束命令)
- 域名和/IP地址都可以打开网址,但最终域名底层还是会被解析成IP地址的形式(DNS和域名解析)。