main 主函数 主方法 主入口 主线程
命名规范 推荐书籍 阿里巴巴java开发手册
关于char两个字节-->是指内码
(转载:Java 语言中一个字符占几个字节? - 知乎
内码:程序内部用的字符编码,实现char、String类型内存里用内部编码;
规定内码UTF-16。或让用户无感知到String用非UTF-16
外码:程序与外部交互用字符编码。不是内存用都是“外部”。如,序列化后char或String,或外部文件、命令行参数。
规定外码UTF-18。Class的字符串常量、符号名字也是。为了平衡运行时的时间效率(定长编码UTF-16)与外部存储空间效率(用变长的UTF-8编码)做取舍。
Java语言规范规定,char是UTF-16的code unit,也就是一定是16位(2字节);
补充:Unicode只是一个符号集,它只规定了符号的二进制代码,并没有规定这个二进制代码应该如何进行存储,简单的讲就是,Unicode为所有字符提供一个唯一的编号,然后UTF-8、UTF-16等只是将字符的Unicode编号编码成相应的二进制代码进行存储或运算,所以相同Unicode编号若用不同的编码方式进行编码,最后会产生不同的二进制代码,这就是有时候文件造成乱码的原因
这里有个大佬写的不错:肖国栋的i自留地 – Just Do IT,放胆做挨踢)
关于byte溢出,计算快捷方法
1.判断是否不在范围 -128~127
2.超出的话,减去128,得到超出的值x
3.左边越界,-(128-x)
右边越界 128-x
重载和重写的区别(借鉴)
重载与重写的区别_要努力的嘻哈风范的博客-CSDN博客_重载重写
重写是差辈的,重载是同辈的,重写范围只能越来越小,重载则不限制
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloading的方法是可以改变返回值的类型。
override(重写)
1、方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4、存在于父类和子类之间。
5、方法被定义为final不能被重写。
overload(重载)
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只有返回值不同的方法名。
3、存在于父类和子类、同类中。
小数精确位数
转:java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定_longshenlmj的博客-CSDN博客_bigdecimal 保留精度
(1)小数计算对精度无要求时,使用float节省时间。
(2)如果有精度要求,用BigDecimal类处理(初始化必须使用字符串,因为用数值初始化会得到近似值,不准确),然后设置保留位数和 舍入法(half_up四舍五入,half_even银行家,half_down向下取整)
(3)精度要求低时可转化为整数处理(集体统一扩大数量级):
乘以10的级数转化为整数处理,小数点右移几位,但整数值不要超过对应类型的取值范围。比如保留4位小数,可统一乘以10000,然后只保留整数计算结果,最后在除以10000.0。
这种方式在RTB项目MDSP的算法核心模块中使用,几十万的投放量,用int或long就可以处理,更大范围的整数处理BigInteger。
switch(long,浮点型,boolean无意义(这仨不能用))中default后最好加个break,规范!
idea快捷键使用
IDEA快捷键、格式和代码规范插件_一枝花傲寒的博客-CSDN博客_idea代码规范快捷键
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)