Java核心技术点有哪些 有没有什么书籍推荐
Java核心技术点有哪些?有没有什么书籍推荐?每次看到网上有很多想学习Java技术的小伙伴都在寻找一些书籍和视频 , 作为一个初学者 , 看什么样的书籍比较适合较适合呢?或者说 , 如何才能轻松入门又能深入学习呢?当然了这不是一本书就能解决的事 。 下面千锋老师先给大家分享一下《Java核心技术》这本书 , 将一些感想跟大家聊一聊 。
文章插图
一、 Hash Code方法默认是调用该对象的地址 , 如果你重写了equals方法应该重写hash Code方法 , 例如你的equals方法是比较的对象的ID,就用该对象的ID来hash 。
二、 instanceof并不完美 , 不能够查出父子类 , 所以在写equals方法的时候应该比较下是否同一个类 。。
三、 String类和包装类的值都是不能改变的 , 所以如果希望实现它们的引用传递需要使用StringHolder类和包装类的Holder类 , 例如:IntHolder 。
四、 C#中的委托可以用JAVA中的反射invoke方法传递方法指针method完成 。
五、 不要使用protected修饰field因为整个包内都可以访问 , 破坏了封装性 。
六、 throwable接口的实现类有2个分支 , 一个是error , 一般情况JAVA系统的内部错误或者资源耗尽 , 对于它 , 除了通知用户错误和让用户安全退出外别无他法 。 还有一个是exception , 又分为Runtime Exception和非Runtime Exception 。 由于程序的错误导致出现的异常称为Runtime Exception , 这种问题应该在程序中解决和避免 , 不应该抛出异常 。 而曾经能够正常运行 , 在某些时候可能会出现导致的异常称为非Runtime Exception , 这种问题的解决应该抛出异常 。 常见的Runtime Exception有类型转换错误、数组越界、空指针等 。 如果出现Runtime Exception就一定是你的问题 。 Error和Runtime Exception称为未检查异常 。 而非Runtime Exception称为已检查异常 。
七、 要使用精确的浮点运算请使用Big Decimal 。 除法的时候注意使用小数位 , 否则会导致得不到精确值错误 。
八、 建议不要在程序中使用char , 因为char使用的是utf-16编码 。
九、 三种处理错误的机制:异常 , 日志和断言 。 java默认关闭使用断言 , 想使用应该在运行的jvm参数中使用-ea 。 例如:int x= 5;要判断x是否大于0可以使用assert x>0 : x;断言不应该使用在程序发生了可恢复性错误 。 断言只能用在开发和测试阶段 。 是一种战术性工具 , 而日志才是贯穿整个生命周期的策略性工具 。
十、 序列化除了能够保存简单对象以外 , 对复杂对象也有很好的处理方式 , 比如如果在几个对象共同引用一个共享对象时 , 就不会把这个共享对象保存几次 , 而是检查是否已经保存这个共享 , 如果没有则保存 , 如果已经保存 , 则保存一个该对象的序列号 。
十一、 泛型可以单独在非泛型类中使用 , 例如下泛型方法:public static void test(T t){},而且泛型可以使用多个接口 , 例如:public statci void test(T t){} 。 可以使用泛型限定超类 , 它与限定子类相反 , 例如:public class Pair , 但是他可以向方法提供参数 , 不能使用返回值 。一般的 , 带有超类的泛型可以向对象写入 , 带有子类的泛型可以从对象读取 , 例如:public static> T min(T[] a){} 。
【Java核心技术点有哪些 有没有什么书籍推荐】掌握真正的Java开发技术 , 做高级Java开发工程师 。 另外 , 报班是比较快捷的学习方式 , 一步一步扎实掌握Java开发技术 , 是找到高薪工作的重要法宝!
- 系统性学习Node.js(5)—手写 fs 核心方法
- Java基础知识回顾,还记得吗?
- mybatis sharding-jdbc Java8日期
- 「技术」这样的思路,让控制器中按键处理数据的方法变得简单了
- Chiplet如何开拓半导体技术的未来
- 树莓派控制步进电机-TB6600-Java版本
- 德州点创教育JavaScript正则表达式授课大纲
- 如何编写JAVA小白第一个程序
- 大牛深入解析SpringBoot核心运行原理和运作原理源码
- 物联网相关的技术、商业生态