计算机基础为1字节(8比特)
8大基本类型
1/0 -->1bit = 1比特 1B = 1字节 = 8bit
K = 2^10 M = 2^20 G =2^30
1KB = 1024B 1MB = 1024KB 1GB = 1024MB
byte-8bit
short-16bit
int-32bit
long-64bit
float-32bbit
double-64bit
char-8/16/24/32bit(根据编码类型决定)
boolean -32bbit
eg:(数据类型类型决定数据内存的大小,不受数值大小的影响)在前面补0
byte x1 = 12;// 0000 1100
short x2 = 9;// 0000000000001001
int x3 = 1;
long x4 = -10L;
float x5 = 23.45F;
double x6 = 234.56;
char x7 = '9';//字符-符号-几何图形
boolean x8 = true;//false
Java中将 boolean 类型定义为1个字节是为了权衡了内存效率
各种高级语言最终都转成C语言的6种类型
进制转换
java中包括2/8/16 进制
10000..... 1后面有M个0,N进制情况下代表N^M(N进制转10进制)
eg:234转换为7进制
234/7 = 33....3
33/7 = 4.......5
4/7 = 0 .......4(除到商为0为止)
即243的7进制表达为354
超范围计算的结果只保留最右侧的32bit/位
-123 -->1 000000001111011(原码) --> 1 111111110000100(反码) --> 1 111111110000101(补码)
float :(面试点)32位
0 00000000 00000000000000000000000
1 8(指数,阶) 23(数值)
x(0-255) y(0~2^23 - 1)
总值:(2^(x-127))*y)
eg:表示0.25 x=125
double--64 = 1 + 11 + 52 = (2^(x-1023))*y
显示器显示原理:
视觉信息:颜色(红绿蓝,范围为0-255),亮度。【形状(原因是其颜色亮度不同)】
颜色和亮度是靠显示器变化,显示器又由像素点(56bit表达足够)组成
屏幕上能够显示字体的形状是因为内存中存储了这个文字的比特点排列方式
给每个图形设一个比特点,给每一个比特点进行编号,存储的就是编号即编码,可以降低存储压力
记事本原理
文件存储于硬盘,由比特流(数组)组成
搜狗输入法的原理(保研+就业面试的小亮点)
比如敲一个字母“f”,计算机获得“f”的编码,然后匹配含有“f”的各个编码,不同的编码匹配上不同文字的(带有f)的编码,然后显示出各个文字
Unicode---16bit( \u 表示使用Unicode编码)
char 几何图形,通过编码实现
整个/套叫编码,单个的叫码点(指与一个编码表中的某个字符对应的代码值)
定义一个变量后必须进行初始化
(面试点)
Final
修饰的基本类型可以第二次赋值 ,修饰的引用类型不可以第二次改变指向,修饰的类不可以被继承,修饰的方法不可以被重写,防止指令重排序,遏制流水线性能优化,保障多线程并发场景下的可见性(注意!)
Final通常和static一起出现使用
+ 加
-- 减
* 乘
/ 除
% 求余
开根号公式
比如对23开根号
商 4,7,9,5
除数:4,(4*20+7)*7,(47*20+9)*9,(479*50+5)*5
23.00 00 00 00 00 00 00
16
700
609
9100
8541
55900
......
类型转换:
小的接受大的,只保留最右侧的几位,其他的舍弃掉
int m1 = 3;
int m1 += 4;
m1 -= 4;
m1 *= 4;
m1 /= 4 ;
自增与自减运算符
int a = 9;
int b = a++;//先算a++(a=10,b=9)
int c = ++a;//先算其他,最后算a++(a=11,c=11)
(面试点)int d = 1; d = d++; System.out.println(d);此时d=1,自己等于自己++属于无效操作
int d = 1; d = ++d; System.out.println(d);此时d=2