一. java 概述
1.1 javase 概述
1.2 程序 program
- 可以在计算机中执行的代码。
- 计算机可以识别的数据和指令的集合。
1.3 计算机语言发展史
- 机器语言:计算机可以直接识别的语言(二进制语言)
- 1+2 1010 0001 0010
- 优点:计算机可以直接识别,执行的效率高。
- 缺点:可读性差,编写门槛很高。
- 汇编语言:
- 1+2 ADD 0001 0010
- ADD 需要转换为 机器语言 1010. 过程称为汇编。
- 高级语言:
- 1+2 转换为机器语言:
- 转换方式:
- 使用一个工具:编译器:编译为机器语言。
- 使用一个解释工具:解释器:类似于翻译。
- 优点:可读性好,编写门槛低。
- 缺点:计算机不能直接识别,需要一个编译或者解释的过程,效率低。
- c、c++、c#、java。
1.4 java 语言发展史
- jdk1.2
- j2se--java 2 standard edtion (java 2 标准版) 针对客户端开发。针对桌面程序开发的。
- j2me--java 2 mirco edtion (java 2 微型版)手持设备开发
- j2ee--java 2 enterprise edtion (java 2 企业版) 服务器开发。
- jdk1.5
- j2se--javase
- j2me--javame
- j2ee--javaee
- jdk 8.0 和 jdk1.8
1.5 java 语言的三个版本
- j2se--java 2 standard edtion (java 2 标准版) 针对客户端开发。针对桌面程序开发的。
- j2me--java 2 mirco edtion (java 2 微型版)手持设备开发
- j2ee--java 2 enterprise edtion (java 2 企业版) 服务器开发。
1.6 java 语言的特点
- 强类型语言(任何数据必须都具有java可以识别的类型)
- 基于模板(图纸)的纯粹的面向对象的
- 可以实现跨平台(可以在多个平台执行)。
1.7 java程序的执行机制
- 先编写java的源代码。(计算机不能识别)
- 使用jdk 提供的编译工具 javac.exe 将源代码编译为 字节码文件。(计算机不能识别)
- 使用 jdk 提供的 解释器 将 字节码 解释给 计算机执行。
- java 程序先编译、后解释执行。
1.8 java 和 c 的跨平台原理比较
- java的跨平台是通过不同的平台下安装不同的jvm实现的。(知道)
- c 需要多次编译,多次执行。(了解)
1.9 java的环境搭建和介绍
- jdk:java development kit java开发工具包。
- java的编译器就被包含在jdk 中。
- jvm 也被包含在jdk 中。
- 不同的平台需要安装不同的jdk。
- jre:java runtime environment。 java 运行环境。
- 主要就是jvm。
- 解释器 java.exe 作为 jvm的主要成员。
- jvm:java virtual machine java 虚拟机。
- 使用软件实现的一个计算机。
- 就有自己的指令集。class 文件中的所有的指令都被包含在jvm的指令集中。
- 目录介绍:
- bin:binary 二进制。
- javac.exe 编译工具
- java.exe 解释工具。
- jre:
- jdk 包含的一个单独的运行环境
1.10 cmd 介绍和使用
- cmd:command 命令。
- 打开cmd 窗口:window键+R -->输入 cmd 回车即可。
- cmd.exe 介绍:
- 是 microsoft 公司最早的一个操作系统。DOS操作系统
- DOS 操作系统 (disk operation system)磁盘操作系统。所有的对计算机的操作都是通过指令(Command)来完成的。
- cmd.exe 就是使用软件实现的dos 操作系统。
- 常用的指令:
- dir:directory 目录。
- 显示当前目录下的所有的内容。
- cls:clear screen
- 清屏的
- 切换盘符:
- 盘符名: 回车 即可
- c: 回车。
- cd:(change directory)切换目录
- cd 目录名称 回车
- tab 键具有自动补齐的功能。
- . 代表了当前目录
- .. 代表了 当前目录的上一级目录。
- cd \ 回到当前盘符的根目录。
- exit 退出cmd 窗口。
- start 开启一个新窗口
- 环境变量
- 我的电脑--右键属性-高级系统设置--高级--环境变量--将jdk的bin目录添加到path的末尾即可。
- 配置环境变量的目的:为了可以更方便的使用java开发工具。
1.11 第一个java程序--HelloWorld.java
class HelloWorld{
//程序的入口,main方法。
public static void main(String[] args){
//将小括号中的内容打印到标准输出设备:控制台cmd窗口。
System.out.println("Hello World!");
}
}
- 编写.java 源代码。如上面的内容,使用记事本即可。
- 使用 javac HelloWorld.java 将源代码 编译为字节码 class文件。
- 使用 java HelloWorld 将字节码解释执行。
1.12 .class文件介绍
- 与本地平台无关的字节码文件,和 jvm 有关系。
1.13 java的基本编码规范介绍
- 注释 comments
- 作用:帮助我们阅读理解代码的。
- 注释不会参与代码的编译。只保留在源代码中。
- 注释的分类:
- 单行注释。//后面的内容都是注释的内容。
- 多行注释。/** 注释的内容 **/
class Hello{
public static void main(String[] args){
//这是代码注释。
System.out.println("hello");
System.out.println("hello");//这是短注释
/*System.out.println("hello");
System.out.println("hello");
System.out.println("hello");
System.out.println("hello");
System.out.println("hello");*/
System.out./*我是一个捣乱的注释*/println("hello");
}
}
- 缩进
- 通过锁紧表达代码的包含的关系。
- 标识符
- 注意代码的命名
1.14 进制介绍
- 冯.诺依曼核心理论
- 使用二进制
- 计算机底层都是使用二进制表示和存储数据的。
- 存储程序执行
- 程序必须先加载到内存中才能执行。
- 计算机由:运算器,控制器,存储设备、输入输出设备构成。
- 进制介绍
- 二进制
- 二进制的数字由2个不同的符号构成。[0-1] ,逢二进一。
- 八进制
- 八进制的数字由8个不同的符号构成。[0-7] ,逢八进一。
- 十进制:
- 十进制的数字由10个不同的符号构成。[0-9] ,逢十进一。
- 十六进制
- 十六进制的数字由16个不同的符号构成。[0-9] [a-f] [A-F] 6个符号代表 [10-15] ,逢十六进一。
二进制 八进制 十进制 十六进制
0 0 0 0
1 1 1 1
10 2 2 2
11 3 3 3
100 4 4 4
101 5 5 5
110 6 6 6
111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 a
1011 13 11 b
1100 14 12 c
1101 15 13 d
1110 16 14 e
1111 17 15 f
- 如何在java程序中表示不同的进制。
class Radix{
public static void main(String[] args){
//使用四种进制来表示十进制的10。
//二进制 0b
System.out.println(0b1010);//10
//八进制 0
System.out.println(012);//10
//十进制
System.out.println(10);//10
//十六进制 0x
System.out.println(0x2a);//42
}
}
- 进制之间的转换:
- 任意进制转到十进制。
- n进制的一个数 abc 。
a*n^2 + b*n^1 + c
- 十进制转换为二进制:
- 除以二取余法。逆序排序。
- 除以八取余法。逆序排序。
- 除以十六取余法。逆序排序。
- 二进制和八进制的转换 ??自学
- 二进制和十六进制的转换??自学
- 字节
- 把计算机中的一个二进制位 称为 1bit,它是计算机中最小的存储单元。只能表示2个不同的状态:0 和 1.
- n位 bits 可以表示 2^n 个不同的状态。
- 8个bits 称为1byte(字节)计算机中都是使用字节为单位处理处理。
- 码制介绍
- 机器码:数据保存在硬件上的编码格式。
- 原码:10:0000 1010 -10: 1000 1010
- 规则:最高位为符号位,0代表正数,1代表负数。剩余的位表示数值的大小。
- 问题:
- 存在 +0 和 -0 之分 00000000 10000000
- 如果考虑符号位的运算的规则,那么对于cpu的设计增加难度。
- 反码:
- 规则:正数的反码和原码一直。如果是负数,符号位不变,其他的位1变0 0变1.
- -10:原码:1000 1010--- 反码:1111 0101
- 补码
- 规则:正数的补码和原码一致。三码合一。 负数,原码求反码然后再+1.
- -10:原码:1000 1010--- 反码:1111 0101 --补码:1111 0110。
- -1:原码:1000 0001---反码:1111 1110 补码:1111 1111
- -0:1000 0000 1111 1111 1 0000 0000
1.15 计算机存储单位介绍
- 1byte 1个字节。
- 1KB==1024bytes
- 1024KB == 1MB
- 1024MB== 1GB
- 1024GB== 1TB
1.16 计算机存储设备介绍
- 硬盘:hard disk。
- 读写(IO)速度慢、价格比较低、断电数据不丢失。
- 内存:RAM:random access memory
- 读写速度比较快,价格比较高,断电数据丢失。
- cpu的寄存器:
- 读写速度非常快,价格非常高,断电数据丢失。
1.17 总结
- java三个版本。
- j2se
- j2me
- j2ee
- java的跨平台原理。
- jvm
- java的程序的运行的进制
- 编写源代码
- 编译 -- 编译期, 编译器会对源代码进行语法检查和代码的基本优化,生成class。
- 运行 -- 运行期, 使用解释器对代码逐行解释给本地平台执行。
- jdk:开发环境:
- jre:运行环境
- jvm:java虚拟机
- 如何配置开发环境
- 安装jdk
- 配置path
- cmd的简单实用
- 入口方法的语法。
- public static void main(String[] args){}
- java的注释
- //
- /**/
- 进制
- 进制的转换
- 位、字节...
- bit--比特位
- 8bits 一个字节。 byte。
1.18 思维导图