- 博客(6)
- 收藏
- 关注
原创 Java中常量优化机制
Java中的常量优化机制是在编译阶段对于只有常量的赋值或则运算在编译阶段就进行例如byte a = 3;byte b = 4;byte c = 3 + 4;byte d = a+ b;这段代码前三句编译通过,就是通过常量优化机制,在第三句中,等号右面是常量,会运算,然后判断结果是否在byte的范围内,是则通过而第四句则编译不同,原因是,在byte short进行运算时会自动提升为int类型进行运算,运算后为int类型,不能赋值给低位的byteString常量池见https://
2020-12-31 19:25:21 257
原创 浅谈String对象内存常量池和StringBuilder的性能优化问题
String对象特征字符串常量在创建后值不可改变的String s1 = "abc";s1 = "def";这不是改变,"abc"相当于创建了一个对象,而"def"有相当于创建了一个对象,改变的不是字符串常量,而是s1的引用地址创建字符串有两种方式:1.双引号创建,就会在字符串常量池中检查,如果存在,则不创建,若不存在,则在字符串常量池中创建他的特点是无论在 程序中出现多少次,只要相同(字符顺序及大小写)就只会创建一次2.构造方法创建,他会在堆内存中开辟空间见下图详
2020-12-31 11:49:23 314
原创 二进制问题,反码,补码
电脑都是以二进制进行存储,电脑只会识别0和1,在电脑运算时都会现将数字转化成二进制在生活中,我们最长接触带的就是十进制,下面是进制之间的转换十进制转换二进制八进制同上,都是对8取余,余数压进栈,出栈后就是八进制。转化十六进制也是一样的,不过a~f表示10~15;二进制转化十进制二进制转化十进制,是当前位的数乘以2的n次方,n表示位数,如下图1011的二进制表示=11八进制和十六进制同样相同快速转化法8421码8421码 ...
2020-12-30 12:09:57 193
原创 类型转换问题
隐式类型转换 byte a = 3; byte b = 4; byte c = a + b; System.out.println(c); byte d = 3 + 4; System.out.println(d);第一个计算运行报错,在Java计算过程中高位与低位进行运算时,会先将低位转换成高位然后进行运算,当short byte 进行运算时,会自动提升为int,第四行代码在运算之前都会提升为int类型,计算后也为int类型第二个计算正确,这在于Java的常
2020-12-29 09:58:08 116
原创 Java数据类型转换,浮点型溢出问题
Java数据类型转换问题Java为强类型语言,低位可向高位转换计算过程中的转换计算过程中以高位为准,如int*long计算过程中会先把int转换成long类型,然后再参与运算注意:会产生溢出,编译没有问题,但是结构是负数,在计算过程中两个int类型相乘结构还是int,溢出。int count = 100000000;int price = 1999;long totalPrice = count * price;转换过程中丢失精度丢失精度问题主要体现在浮点数问题上面do
2020-12-28 22:03:58 1080
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人