编程语言
首页 > 编程语言> > java笔记

java笔记

作者:互联网

JAVA的数据类型占用内存空间大小是不一样的:
uploading-image-185113.png
上图中一个方框代表一个字节,也就是8bit。浮点型数e表示以10为底数,并且浮点数结尾需要添加字母f,double类型数据同样是e为底数,不需要增加字母后缀。
在定义常量的时候,需要加上final修饰符,变量就被定义成常量了。一般来讲,常量名通常全部大写!
另外一个技巧就是:JAVA允许用var关键字声明变量,这样可以省略变量类型,由编译器决定变量类型。
定义变量时,要遵循作用域最小化原则,尽量将变量定义在尽可能小的作用域,并且,不要重复使用变量名。
需要注意运算溢出:

public class Main {
    public static void main(String[] args) {
        int x = 2147483640;
        int y = 15;
        int sum = x + y;
        System.out.println(sum); // -2147483641
    }
}

运算溢出不会报错,通常很难发现,为确保计算可靠性,初学者可以在数据运算过程中选用long等数据类型,保证运算不会出错,如果在严格的内存限制场景,需要提前考虑好合适的数据类型。

移位运算在Java里分为带符号与不带符号,对于带符号的右移>>与左移<<一位相当于分别做乘2与除2操作(除以2取商),并且符号位不动。要特别注意这不是循环移位,左移可能造成最高位置1,此数变成负数。同样对于不带符号的移位运算>>>,它的特点是符号位跟着动,因此对于一个负数右移会使它变成正数。还需要特别注意:对byteshort类型进行移位时,会首先转换成int再进行移位。
uploading-image-485805.png
在运算过程中,如果参与运算的两个数的类型不一致,那么计算结果类型取较大类型。例如shortint计算,结果总是int
浮点数运算和整数运算相比,只能进行加减乘除这些数值计算,不能做位运算和移位运算。浮点数运算还存在另外一个问题:浮点数运算误差,计算机在用2进制存取浮点数时,浮点数通常无法精确表示,例如,十进制的0.1转换成2进制是一个无限循环小数;0.5却可以精确表示。浮点数与整数一起运算时,整型会自动提升到浮点型,比如:

public class Main {
    public static void main(String[] args) {
        int n = 5;
        double d = 1.2 + 24.0 / n; // d=6.0,后面除法会把n提升成浮点数
        System.out.println(d);
    }
}

需要特别注意,在一个复杂的四则运算中,两个整数的运算不会出现自动提升的情况。例如:

double d = 1.2 + 24 / 5; // d=5.2

我们还可以把浮点数强制转化成整数。在转型的时候,浮点数的小数部分会被丢掉。如果转型后超过了整型能表示的最大范围,将返回整型的最大值,例如:

int n1 = (int) 12.3; // 12
int n2 = (int) 12.7; // 12
int n2 = (int) -12.7; // -12
int n3 = (int) (12.7 + 0.5); // 13
int n4 = (int) 1.2e20; // 2147483647

Linux操作系统的创造者Linus最近出了一本自传:《JustforFun》,简体版译名为《乐者为王》。如果我来译,我就译为《一切只为乐趣》。是的,兴趣才能使你乐在其中,乐在其中你才会产生热情,热情才能使你卓越。要忠于自己的兴趣。有人问,怎样才能找到自己的兴趣,如果我有答案,我就可以开一个“ 卡内基兴趣开发中心”,成为全球首富。这种问题不会有明确答案的,你的兴趣要别人来帮你开发,咄咄怪事。你可以多方尝试,但是首先要有起码的坚持。练琴很辛苦,音阶训练枯燥无比,但如果稍加坚持,也许你得到了赞美,也就发掘了兴趣。很多人说兴趣不能当饭吃,错,兴趣可以当饭吃。出问题的不在“ 兴趣何方”, 而在 “ 能否坚持”。
在学习和工作中,兴趣爱好和努力付出的关系:因为爱所以付出,因为付出所以更爱。

标签:java,运算,int,浮点数,笔记,带符号,兴趣,移位
来源: https://www.cnblogs.com/liuke-note/p/11991605.html