重学java第一天

重学java第一天,第1张

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代码规范快捷键

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/794644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存