Java核心技术

c语言 书写太慢 成本特别高 速度极快
java 和c 是基础语言 java和go基本互通
其他语言只是辅助语言
生态环境 邀请一些大牛去加入社区 完善环境
infoQ CCF官网 java社区
多线程 同时运行多个任务
高级语言都需要安装环境 因为操作系统本身对他们不识别
JDK .java -.class
JRE 运行.class 翻译给操作系统 JDK包含JRE
SE 创建团队 初始团队的功能 java自带的最初级的功能 可以实现任何功能
EE 网站开发
ME 手机端开发
SDK 代码使用样例 调用样例
Java所有内容都在类里面
驼峰命名法
0
变量名 方法名 其他文件 文件夹小写字母开头 小驼峰命名法
类名 大写字母开头 大驼峰命名法
 
byte 8bit
short 16bit
0
int 32
long 64
float 32
double 64
char 根据编码决定 8,16,32
boolean 32
 
0
float在小范围内
大范围内精度丢失厉害
 
0
float 离0越近越密集 离0越远越疏松
float 1 8 23
double 1 11 52
boolean--32 理论上只需要1bit 高速缓存在内存中至少4kb,但高低电压传输,单个文件大文件就少,因为boolean使用频率较高,占用内存少的化,单个4kb 中数据量就会增加,阻塞量就会增加,所以用32位
计算机最小储存单元1b=8bit
一个像素点包含五个数字 包含6个信息
0
像素点排列成形状
x y坐标用short类型表示 16+16=32
颜色比例都是0-255每个颜色 8+8+8=24 56bit表示一个像素点
 
0
编码 每个字大概200个像素点 大概11200bit 编码0000 记录a的每个像素的信息 编码0001记录b
使用的时候 把编码依次写出来0000.......00010001000100010001 这样的化一次占4bit 10个字一共占40bit 调用编码 得出aaaaabbbbb
记事本对应是编码 记事本的原理
每一个磁颗粒都有ns极 对外是n是1 对外s是0
磁盘切割磁感线产生电压
0
 
 
0
解决正负电压的问题 原始磁头加一个3v电压 就将正负电压变成了高低电压 3v+2v=5v 3v+(-2v)=1v
将高低电压传输 以编码的形式 编码对应提前存储好的格式
byte a=90;
byte b=0x2a;十六进制
byte c=0b101;二进制
byte d=063; 八进制
long e=0x324afdc4L;
被final修饰的是 常量 所有字母都要大写 常量不能被修改 final byte KL=90
final作用:修饰常量,修饰的类不可以被继承,修饰的方法不可以被重写,防止指令重排序(并发)
类常量 某个常量可以在一个类中的多个方法中使用 static fina丨
 
0
实线是可以转化 虚线是可以转换但会丢失精度
a++ 先带入后操作 ++a先加后操作
a=a++; 相当于a=a; a=a+1; 但是相同元素这样弄的话只取前面一个等号a=a;
b=a++; b=a; a=a+1;
位运算 <<
0
位运算速度特别快 cpu只支持加运算 所以位运算只需要运算一次特别快
 
0
计算机机中运算都是用位运算 将二进制数 拆分
0
万亿级别的数
0
最多存在40次运算 进行40次位运算
 
0
超范围计算会报错
0
数组 为什么上来要申请足够大的空间
0
如果不申请足够大的空间,就会被占
数组
0
修改的时候必须新建一个数组
字符串常量池
字符串变化之后,原来的字符串在常量池中不会被删除
0
避免了 重复的创建回收
常量池会定期检查长期不使用的字符串 删除
 
equals 比较的是值
a.equals(b)
基本类型中==比较值 引用类型中==比较的是内存地址是否引用同一个地方
0
false true
equals才能完美的比较值
 
 
 
0
 
0
null 是空 啥都没有
“”是个空字符串g
 
算法常用:char b=a.charAt(3) 获取对应位置字符
int d=a.length(); 获取字符串长度
int e=a.codePointAt(3); 获取码点
String str2=str1.replace("a","c");
int x=str1.indexOf("a");
int q=str1.indexOf(3005);
int z=str2.lastIndexOf("c");
int h=str1.codePointAt(3);
String j=str1.substring(0,str1.length());
char y=str1.charAt(3);
boolean m=str1.endsWith("c");
System.out.println(str1.toUpperCase());
String[] kk=str1.split("a");
 
buffer的内部是数组 预先申请的比较大 支持在原地址修改
 
 
0
4kb 是页 在页中的数据 只有初始地址 4kb放20B也是用一个页
10000B原先传输一万次 现在传输3次 这是在操作系统中 数据储存的形式
地址位32位 2^32=4GB
16位 2^16=64kb
 
0
页块划分 后面是大小 前面是数量
0
操作系统划分映射成物理划分 变成[ 10*(2^9)-11*(2^9) )
 
字符串累加一次消耗一个页单元 到后面 加的数字占的字节很大 循环一次占好几个页
buffer 循环100次也才占1个页 它一开始就分配了一个足够大的空间 在原来的地址上加
String只申请当前所占的空间 在后面加数 开辟新的页
 
0
 
posted @ 2021-12-28 17:59  想去迷笛  阅读(92)  评论(0)    收藏  举报