Java基础-一文一答系列

作者 : admin 本文共1820个字,预计阅读时间需要5分钟 发布时间: 2024-06-10 共2人阅读

文章目录

  • Java 中应该使用什么数据类型来代表价格?
  • 怎么将 byte 转换为 String
  • Java 中怎样将 bytes 转换为 long 类型?
  • Java 中 ++ 操作符是线程安全的吗?
  • a = a + b 与 a += b 的区别
  • 3 * 0.1 == 0.3 将会返回什么? true 还是 false?
  • Int 和 Integer 哪个会占用更多的内存?
  • 为什么 Java 中的 String 是不可变的(Immutable)?
  • Java 中的构造器链是什么?
  • 枚举类
  • 有没有可能两个不相等的对象有相同的 hashcode
  • 两个相同的对象会有不同的 hash code 吗?
  • Java 中,Comparator 与 Comparable 有什么不同?
  • 为什么在重写-equals-方法的时候需要重写-hashcode-方法
  • a==b和a.equals(b)有什么区别
  • 异常
  • Java语言的鲁棒性

Java 中应该使用什么数据类型来代表价格?

答:BigDecimal,相比于 Double ,Folat,BigDecimal 的精度大,准确度高,优点是准确率高,缺点是在数据比较大精度的时候计算比较慢。

怎么将 byte 转换为 String

使用 String 的构造器

Java 中怎样将 bytes 转换为 long 类型?

  1. 先使用 String 构造器创建字符串。
  2. 再用Long.parseLong 的方法

Java 中 ++ 操作符是线程安全的吗?

++ 是不安全,它不是原子性的操作,分为读取值,加法操作,赋值,三步操作。

a = a + b 与 a += b 的区别

a = a + b 不会进行类型转化,比如 bype a = 123,bype b = 122,两者相加需要类型为 Int 的接收,使用 a = a + b 的话不会类型转化,会报错。

a += b 会进行类型转化,比如 bype a = 123,bype b = 122,两者相加需要类型为 Int 的接收,使用 a += b 的话会类型转化,不会报错。此时 a 的类型为 Int。

3 * 0.1 == 0.3 将会返回什么? true 还是 false?

false,因为浮点数会存在精度的丢失。

Int 和 Integer 哪个会占用更多的内存?

Integer 会占用更多内存,因为它是包装类型,里面有一些方法。

为什么 Java 中的 String 是不可变的(Immutable)?

因为 String 字符串在网络中经常被当作参数传输,为了提高网络的安全性,使得 String 是不可变的,保证网络传输 String 的准确性。

Java 中的构造器链是什么?

在构造方法内调用其余类的构造方法,这样就形成了构造器链。

枚举类

一般用于规范参数的使用,比如规范异常返回的码,规范业务逻辑参数。

有没有可能两个不相等的对象有相同的 hashcode

有可能,这就是所谓的 hash 冲突

两个相同的对象会有不同的 hash code 吗?

不可能,相同的对象 HashCode 一定相同,HashCode 相同的不一定对象相等。

Java 中,Comparator 与 Comparable 有什么不同?

ComParable,是迭代器接口,用户只能实现一个迭代器接口。

ComParator,是用户自定义的迭代器,可以制定多个。

为什么在重写-equals-方法的时候需要重写-hashcode-方法

这是一种规范,例如我们在使用 HashMap的时候,也是先计算元素的 HashCode,相同的话再进行 equals 的比较。

a==b和a.equals(b)有什么区别

在没有重写equals方法的时候,两者是一样的,都是在比较元素的内存地址是否相同,但是如果我们重写了equals方法,在比较对象的时候,就可以将对象原本比较内存地址的改为对象之间的逻辑内存的对比。

异常

异常分为编译时异常与运行时异常,编译时异常我们可以通过在方法上 throws 异常来处理,常见的有 IO异常。

运行时异常是程序在编译运行的时候才会出现,比如:空指针异常,数组角标越界异常。

#序列化与反序列化

序列化:将对象压制成二进制的数据进行网络之间的传输。提高传输效率以及安全性。

反序列化:将二进制的数据反序列化为对象,随后进行业务的处理。

Java语言的鲁棒性

鲁棒性:Java 语言在运行的时候有异常处理,有保证其稳定且有正确的处理方法的能力。

  1. 垃圾回收算法, 便于内存的使用与回收,用户不用担心内存的使用异常与管理。
  2. 异常处理,Java 有try-catch-finally 来补抓异常,处理异常。
  3. 扩平台性,依赖于 JVM 虚拟机实现。
  4. 健壮的库,有集合等等库,都是经过大量的测试实践的。

等等~~

大家好,我是小辉,持续分享。地点:家中 时间:20240609 状态:应届找工作中。。。

本站无任何商业行为
个人在线分享 » Java基础-一文一答系列
E-->