本文主要是介绍Java核心技术,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
c语言 书写太慢 成本特别高 速度极快
java 和c 是基础语言 java和go基本互通
其他语言只是辅助语言
生态环境 邀请一些大牛去加入社区 完善环境
infoQ CCF官网 java社区
多线程 同时运行多个任务
高级语言都需要安装环境 因为操作系统本身对他们不识别
JDK .java -.class
JRE 运行.class 翻译给操作系统 JDK包含JRE
SE 创建团队 初始团队的功能 java自带的最初级的功能 可以实现任何功能
EE 网站开发
ME 手机端开发
SDK 代码使用样例 调用样例
Java所有内容都在类里面
驼峰命名法
变量名 方法名 其他文件 文件夹小写字母开头 小驼峰命名法
类名 大写字母开头 大驼峰命名法
byte 8bit
short 16bit
int 32
long 64
float 32
double 64
char 根据编码决定 8,16,32
boolean 32
float在小范围内
大范围内精度丢失厉害
float 离0越近越密集 离0越远越疏松
float 1 8 23
double 1 11 52
boolean--32 理论上只需要1bit 高速缓存在内存中至少4kb,但高低电压传输,单个文件大文件就少,因为boolean使用频率较高,占用内存少的化,单个4kb 中数据量就会增加,阻塞量就会增加,所以用32位
计算机最小储存单元1b=8bit
一个像素点包含五个数字 包含6个信息
像素点排列成形状
x y坐标用short类型表示 16+16=32
颜色比例都是0-255每个颜色 8+8+8=24 56bit表示一个像素点
编码 每个字大概200个像素点 大概11200bit 编码0000 记录a的每个像素的信息 编码0001记录b
使用的时候 把编码依次写出来0000.......00010001000100010001 这样的化一次占4bit 10个字一共占40bit 调用编码 得出aaaaabbbbb
记事本对应是编码 记事本的原理
每一个磁颗粒都有ns极 对外是n是1 对外s是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丨
实线是可以转化 虚线是可以转换但会丢失精度
a++ 先带入后操作 ++a先加后操作
a=a++; 相当于a=a; a=a+1; 但是相同元素这样弄的话只取前面一个等号a=a;
b=a++; b=a; a=a+1;
位运算 <<
位运算速度特别快 cpu只支持加运算 所以位运算只需要运算一次特别快
计算机机中运算都是用位运算 将二进制数 拆分
万亿级别的数
最多存在40次运算 进行40次位运算
超范围计算会报错
数组 为什么上来要申请足够大的空间
如果不申请足够大的空间,就会被占
数组
修改的时候必须新建一个数组
字符串常量池
字符串变化之后,原来的字符串在常量池中不会被删除
避免了 重复的创建回收
常量池会定期检查长期不使用的字符串 删除
equals 比较的是值
a.equals(b)
基本类型中==比较值 引用类型中==比较的是内存地址是否引用同一个地方
false true
equals才能完美的比较值
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的内部是数组 预先申请的比较大 支持在原地址修改
4kb 是页 在页中的数据 只有初始地址 4kb放20B也是用一个页
10000B原先传输一万次 现在传输3次 这是在操作系统中 数据储存的形式
地址位32位 2^32=4GB
16位 2^16=64kb
页块划分 后面是大小 前面是数量
操作系统划分映射成物理划分 变成[ 10*(2^9)-11*(2^9) )
字符串累加一次消耗一个页单元 到后面 加的数字占的字节很大 循环一次占好几个页
buffer 循环100次也才占1个页 它一开始就分配了一个足够大的空间 在原来的地址上加
String只申请当前所占的空间 在后面加数 开辟新的页
这篇关于Java核心技术的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!