1.2.1 计算机理论介绍 1.2.2 编程基础--进制分类、进制转换 进制 就是进位制。指的是我们来表示一个数字的时候进位的制度。 进制分类 计算机中,常用的进制有以下几种: | 进制 | 描述 | 示例 | 备注 | | -------- | ------------------------------ | ----------------------- | ------------ | | 二进制 | 使用0和1来描述所有的自然数 | 0, 1, 10, 11, 100, 101 | 使用`0b`开头 | | 八进制 | 使用0-7来描述所有的自然数 | 4, 5, 6, 7, 10, 11, 12 | 使用`0`开头 | | 十进制 | 使用0-9来描述所有的自然数 | 6, 7, 8, 9, 10, 11, 12 | | | 十六进制 | 使用0-9, a-f来描述所有的自然数 | 9, A, B, C, D, E, F, 10 | 使用`0x`开头 | 进制转换 - 十进制转其他进制 - 辗转相除法,用数字除进制,再用商除进制,一直到商为零结束,最后将每一步得到的余数倒着连接 - 其他进制转十进制 - 每一位的数字乘进制的位数-1次方,再将所有的结果累加到一起 - 二进制与八进制之间的相互转换 - 每一个八进制位可以等价替换成三个二进制位 - 每一个十六进制位可以等价替换成四个二进制位 原码、反码、补码 | | 正数 | 负数 | | ---- | -------------------------------- | -------------------------------------- | | 原码 | 由数字直接计算出的二进制表示形式 | 最高位表示符号位: 0代表正数, 1代表负数 | | 反码 | 与原码相同 | 符号位不变, 其他位按位取反 | | 补码 | 与原码、反码相同 | 反码 + 1 | 注意事项: - 数据的存储与运算都是以补码的形式进行的 - 补码与补码运算的结果还是补码 - 对补码再求一次补, 可以得到原码 1.2.3 什么是Java Java是一种面向对象的程序设计语言,可以使用这种语言编写程序,实现我们想要的一些功能。主要分三块: J2SE: Java的标准版,用于标准的应用程序开发。 J2ME: Java的微型版,常用于移动端的开发。 J2EE: Java的企业版,用于企业级的应用服务开发。 Java程序的运行,需要先将.java源文件编译成.class字节码文件,然后由jvm虚拟机将这些字节码文件翻译成机器语言,然后执行相应的操作。 常用名词解释 JDK: Java Development Kit, Java开发框架, 开发Java程序需要用到的各种工具包。 JRE: Java Runtime Envrioment, Java运行时环境。 JVM: Java Virtual Mechine, Java虚拟机, 能够运行Java程序 1.2.4 常用DOS命令 - cd: 切换到指定的路径 - dir: 列举当前目录下的所有文件和文件夹 - mkdir: 创建文件夹 - rmdir: 删除文件夹 1.2.5 JDK的安装与环境变量的配置 - JDK的安装 - 找到对应的版本号, 直接安装即可 - 安装完成后, 在 jdk 的 bin 目录下, 有编译运行Java程序所需要的指令 - 环境变量的配置 - 为什么要配置环境变量 - 因为我们需要使用bin目录下的javac和java指令来编译和运行程序, 而使用这两个程序的话, 就需要先用cd切到指定路径下才能执行, 并且参数需要写java文件所在的目录, 因此在编译和运行程序的时候非常不方便。因此需要将bin目录添加到环境变量, 这样我们就可以在任意的路径下使用javac和java指令,来对我们的程序进行编译和运行。 - 怎么配置环境变量 - 我的电脑 -> 右键 -> 属性 -> 高级系统设置 -> 环境变量 - 选择系统变量 -> Path -> 编辑 - win10: 新建一个变量,将jdk下面的bin目录粘贴进去,并上移到最上方 - win7/8: 将jdk下面的bin目录的路径粘贴到所有路径的最前方,然后添加一个路径分隔符; - 怎么验证环境变量是否配置成功 - 新建一个DOS窗口, 输入指令 javac, 如果没有错误提示就是是成功 1.2.6 注释 注释是对代码的描述, 是开发者写给自己或者别人看的, 相当于我们记录的一些笔记, 或者备忘录。 注释部分的内容不会被编译, 因此没有语法上的要求。 注释可以分为三类: - 单行注释: 以两个 // 开头, 后面的一行内容会被注释 - 多行注释: 以一个 /* 开头, 以一个 */ 结尾。中间所有的内容都会被注释 - 文档注释: 以 /** 开头, */ 结尾。文档注释中可以添加一些标签,更方便的记录程序的信息 1.2.7 数据类型 在程序中, 我们需要操作各种各样的数据, 这些数据都有各自不同的类型。 Java中, 所有的数据可以分为两大类: 基本数据类型和引用数据类型 引用数据类型, 又叫做引用类型。在后面课程中具体说明。 基本数据类型, 又叫做值类型, 在Java中有以下分类: - 整型 - 就是整数, 按照占用空间大小, 分为四种 - 字节型: byte, 1byte, [-128, 127] - 短整型: short, 2byte, [-2^15^, 2^15^-1] - 整型: int, 4byte, [-2^31^, 2^31^-1] - 长整型: long, 8byte, [-2^63^, 2^63^-1] - 浮点型 - 就是小数, 按照占用空间大小, 分为两种 - 单精度浮点型: float, 4byte - 双精度浮点型: double, 8byte - 双精度浮点型可以比单精度浮点型精确更多的小数点后面的位数 - 布尔型 - 用来描述程序中不是对的就是错的, 不是真的就是假的数据 - boolean, 1byte - 只有两个值: true / false - 字符型 - 用来描述组成一个文本的最小单元 - char, 2byte - 字符型的数据, 需要用单引号括起来, 单引号中只能有一个字符, 不能多也不能少 1.2.8 标识符 由若干个字符组成的一个有序的序列, 用来描述程序中的一个数据 命名规则 - 只能由字母、数字、下划线和$符号组成 - 不能以数字作为开头 - 不能与关键字和保留字同名 - 关键字: 系统占用的, 已经被赋予了特殊含义的字符序列 - 保留字: 系统占用的, 暂时还没有特殊含义, 但是后续可能会用到的字符序列 命名规范 - 望文知意: 应该可以从标识符的命名中看出想表述的数据含义 - 遵循驼峰命名法 - 大驼峰命名法: 所有的单词首字母都大写 - 小驼峰命名法: 首单词除外, 从第二个单词开始, 每个单词的首字母都大写 1.2.9 变量和常量 变量: 在程序运行的过程中, 数值可以发生改变的数据 常量: 在程序运行的过程中, 数值不可以发生改变的数据 在程序中的声明 - 变量 - 数据类型 标识符; - 数据类型 标识符 = 初始值; - 数据类型 标识符1, 标识符2, ...; - 数据类型 标识符1 = 初始值, 标识符2, 标识符3 = 初始值, ...; - 常量 - final 数据类型 标识符 = 初始值; - final 数据类型 标识符; 标识符 = 初始值; - Java允许在声明常量的时候不赋值初始值, 可以延迟赋值。但是赋值只能进行一次。 1.2.10 转义字符 一个特殊的字符\, 主要有两个作用 - 可以将某些具有特殊含义的字符转成普通字符 - 单引号, 用来匹配一个字符的开始和结尾, 转义字符可以使其成为一个普通的单引号 - 双引号, 用来匹配一个字符串的开始和结尾, 转义字符可以使其成为一个普通的双引号 - 可以配合某些普通字符使用, 使其没有特殊含义 - n本身是一个普通字符, 配合转义字符使用: \n 表示换行 - t本身是一个普通字符, 配合转义字符使用: \t 表示tab - r本身是一个普通字符, 配合转义字符使用: \r 表示return 1.2.11 数据类型转换 一个变量声明完成后, 在内存中已经开辟好了空间, 此时是不允许调整空间大小的, 也就是说这个变量的数据类型是不允许改变的。这里说的数据类型转换, 指的是声明一个新的指定类型的变量, 将原来变量中的值拷贝到新的变量中。 数据类型转换可以分为两种: - 自动类型转换 - 又叫做**隐式转换**, 一般是由取值范围小的数据类型, 向取值范围大的数据类型转换 - 转换过程不需要任何额外操作 - 转换后, 没有任何精度丢失情况 - 强制类型转换 - 又叫做**显式转换**, 一般是由取值范围大的数据类型, 向取值范围小的数据类型转换 - 转换过程需要强制操作, 不能自动完成 - 转换后, 可能会出现精度丢失的情况 java byte a = 10; int b = a; // 由 byte 类型转型为 int 类型, 自动完成, 不需要任何额外操作 int c = 128; byte d = (byte)c; // 由 int 类型转型为 byte 类型, 强制操作, 会存在精度丢失 额外说明 - byte, short, char 类型的数据在进行运算的时候, 会自动的转型为int类型 - 浮点型转整型, 会舍去小数点后面所有的内容, 只保留整数部分 1.2.12 常用运算符 算术运算符 用来做基础的算术计算, + - * / % ++ -- 其中: - \+ \- \* % 和数学计算中没有区别 - 两个整型的数据进行除法, 结果还是整型, 会将计算的浮点结果强转成整型 - 自增运算符++, 用在变量前, 表示是前取变量值, 后对这个变量进行+1操作 - 自增运算符++, 用在变量后, 表示是先对这个变量进行+1操作, 然后再取变量值 - 自减同自增 > int a = 10; > > int b = a++; // b的值是10 > > int c = ++b; // c的值是11 赋值运算符 =: 将等号右边的值, 给左边的变量进行赋值 +=, -=, *=, /=, %=: 组合运算符, 对一个变量进行运算 > a += 10; 等价于 a = a + 10 关系运算符 \> < >= <= == != 逻辑运算符 & : 与and | : 或or ! : 非not ^ : 异或xor, 计算逻辑: 两个相同为false, 两个不同为true && : 短路与, 结果与逻辑与相同. 区别在于: 如果前面的结果可以决定整体的运算结果, 后面的表达式不参与运算 || : 短路或, 结果与逻辑或相同. 区别在于: 如果前面的结果可以决定整体的运算结果, 后面的表达式不参与运算 位运算 位运算操作的是两个整型的数字, 计算的逻辑就是将两个整型的数字求出补码, 再对补码的每一位做类似于逻辑运算的操作, 其中 1 相当于 true, 0 相当于 false 三目运算符 condition ? expression1 : expression2 condition是一个boolean类型的变量, 或者一个boolean结果的表达式. 如果condition为true, 最终整体的结果取expression1, 否则, 结果取expression2 |
|