二进制:
回顾:
- 正则表达式:
- 描述字符串内容格式的,通常用它来匹配字符串内容是否符合要求
- 正则表达式语法--------------了解
- String中与正则表达式相关的方法:
- matches():使用给定正则表达式来验证当前字符串内容是否符合要求,符合返回true,不符合返回false
- split():将当前字符串按照满足正则表达式的部分进行拆分,拆分为字符串数组
- replaceAll():将当前字符串中满足正则表达式的部分替换为指定字符串,返回替换后的字符串
- Object:
- 鼻祖,所有类都直接或间接继承了Object,万物皆对象
- 其中有两个经常被重写的方法:toString()和equals()
- Object中的toString()返回的是类的全称@地址,没有参考意义,所以常常重写toString()返回咱们自己需求的数据
- Object中的equals()比较的还是对象的地址,没有参考意义,所以常常重写equals()来比较对象的属性
- 包装类:
- 8种包装类,为了解决基本数据类型不能参与面向对象开发的问题
- JDK1.5推出:自动拆装箱特性,允许基本类型与包装类之间直接赋值,底层将会自动补充代码完成转换工作
笔记:
什么是2进制
-
逢二进一的计数规则
-
如何将2进制转换为10进制?
- 将一个2进制数每个1位置的权值累加即可
-
Java 所有的变量\常量存储的都是2进制数!
-
代码演示:
public class Demo01 { public static void main(String[] args) { /* 1.java在编译期间将10进制数编译为2进制数,按2进制来运算 .java(50) 编译后 .class(110010) 2.Integer.toBinaryString()可以将底层的2进制数显示出来 3.int类型是32位2进制数,显示2进制数时自动省略高位0 4.System.out.println()将2进制转换为10进制输出 */ int n = 50; //110010 System.out.println(Integer.toBinaryString(n)); //2进制 n++; //110011 System.out.println(n); //10进制 System.out.println(Integer.toBinaryString(n)); //2进制 } }
什么是16进制
- 逢16进1的计数规则
- 因为2进制的书写太繁琐麻烦
所以常常用16进制来缩写2进制数字00000000 00000000 00000000 00110010
- 怎么缩写:将2进制从最低位开始,每4位2进制缩写为1位16进制
- 代码演示:
public class Demo02 { public static void main(String[] args) { /* 16进制:缩写2进制 1)0x是16进制字面量前缀,0x开头则编译器按照16进制编译 2)Java 7提供了2进制字面量前缀 0b----不用,一般都用16进制 */ int n = 0x4f057afe; //0x表示16进制 int m = 0b1001111000001010111101011111110; //0b表示二进制 System.out.println(Integer.toBinaryString(n)); //按2进制输出 System.out.println(Integer.toBinaryString(m)); //按2进制输出 //结论:用16进制来表示2进制更方便 /* 8进制: 1)逢8进1的计数规则 2)前缀0表示为8进制 3)数字:0,1,2,3,4,5,6,7,没有7以上的数字 */ //----小面试题(8进制平时不用) //权 64 8 1 int x = 067; //0开头表示8进制 System.out.println(x); //十进制的55(6个8加上7个1) } }
补码
-
计算机中处理有符号数(正负数)的一种编码方式,java中的补码最小类型是int,32位数
-
以4位2进制为例讲解补码的编码规则:
- 计算的时候如果超出4位数就自动溢出舍弃,保持4位数不变
- 将4位2进制数分一半作为负数使用
- 最高位称为符号位,高位为1是负数,高位为0是正数