一. 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 思维导图