【JavaSE】Java(五十四):核心要点总结

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。【JavaSE】Java(五十四):核心要点总结,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

在这里插入图片描述

1. try-catch-finally中 如果 catch 中 return 了,finally 还会执行吗?

会执行的

当try块中发生异常时,控制流会立即转到相关的catch块,执行其中的代码。如果在catch块中出现了return语句,那么该方法或函数的执行就会结束,并且不会再返回到try块或finally块中。

但是,无论是否出现异常,finally块中的代码都会在try块之后或者catch块之后执行。这意味着即使在catch块的return语句中完成了对返回值的处理,finally块中的代码仍然会被执行。

所以,finally块通常用于释放资源、关闭文件或者网络连接等操作,以确保程序处于正确的状态

2. 常见的异常类有哪些

Java中的异常可以分为两种:

  1. 受检查异常(Checked Exception):编译器会在代码中强制要求通过try-catch或者声明抛出异常来处理这类异常,否则代码就无法编译通过。
  • ClassNotFoundException
  • FileNotFoundException
  • IOException
  • SQLException
  1. 非受检查异常(Unchecked Exception):不需要强制要求进行处理,程序可以处理也可以不处理,但是这种异常发生后如果不对其进行捕获和处理,则程序会抛出运行时异常并终止执行。
  • ArithmeticException
  • ArrayIndexOutOfBoundsException
  • ClassCastException
  • NullPointerException

此外,还有一种特殊的异常类型——Error,表示JVM自身的错误,通常不由应用程序处理。比较常见的错误有:

OutOfMemoryError
StackOverflowError

在Java中,异常是一个非常重要的概念,它可以帮助我们更好地管理代码中的错误情况并提高程序的健壮性。

3. hashcode 是什么 ,有什么作用

hashCode()是Java中的一个方法,用于返回对象的哈希码(hash code)值。哈希码是通过将对象的内部状态与某个固定值结合得到的一个整数,通常用于在散列表(hash table)等数据结构中确定对象的存储位置或查找索引。

每个Java对象都有一个默认的hashCode()方法实现:它将对象的内存地址转换为一个整数值,并且通常会重写该方法,以实现自定义的哈希算法,以提高哈希表等数据结构的性能。

哈希码具有以下作用

  1. 在散列表中,哈希码使得程序可以快速定位并访问散列表中的元素,从而提高了程序的运行效率。
  2. 作为一种敏捷且可靠的方式来比较对象之间的内容,由于Java的equals()方法在判断两个对象是否相等时依赖于它们的哈希码,因此可以通过重写hashCode()方法确保equals()方法的正确性和一致性。
  3. 计算哈希码也是编写好的缓存、排序等算法中的非常重要的一部分,因为哈希算法可以对数据进行预处理,通过将不同的数据映射到不同的哈希值上,来提高算法的运行速度并降低耗时。

4. java中操作字符串有哪些类,他们之间有什么区别

在Java中,常用的操作字符串的类包括:

  1. String:一个不可变、线程安全的字符序列。
  2. StringBuilder:可变字符序列,线程不安全。通常应用在单线程环境下使用。
  3. StringBuffer:可变字符序列,线程安全。通常应用在多线程环境下使用。

它们之间的主要区别在于可变性和线程安全性

  • String是不可变的,即一旦字符串被创建,就不能被修改。因此,对String进行拼接、删除、插入等操作时会产生大量的中间对象,影响性能。
  • StringBuilder和StringBuffer都是可变字符序列,可以通过一系列方法对字符串进行操作,比如追加、删除、插入等。两者非常相似,但是StringBuffer是线程安全的,而StringBuilder是不安全的。
    • 对于单线程场景,建议使用StringBuilder,因为其高效而且线程安全检查会降低程序运行速度。
    • 对于多线程场景,由于StringBuilder不是线程安全的,可能会导致一些问题,这时候应该使用StringBuffer。

在日常的开发中,我们可以根据实际情况选择不同的操作字符串的类,并且尽量避免使用String进行频繁的字符串操作。

5. Java 中有哪些引用类型

在Java中,常见的引用类型包括以下几种:

  1. 强引用(Strong Reference):直接指向对象并且可达的引用,只要强引用存在,垃圾回收器就不会回收该对象。
  2. 软引用(Soft Reference):当系统内存空间不足时,垃圾回收器会根据一定的策略将软引用指向的对象进行回收。软引用通常被用于实现某些缓存机制,允许系统按需地回收内存。
  3. 弱引用(Weak Reference):比软引用的生命周期更短,在垃圾回收时会优先被回收。弱引用通常被用于实现某些特殊的数据结构,如关联数组、哈希表等。
  4. 虚引用(Phantom Reference):无法通过虚引用获取到对象的实例,其主要作用是在对象被垃圾回收器回收之前,提供对对象被回收的一种通知机制。

使用不同的引用类型可以帮助我们解决内存管理方面的问题,控制对象的生命周期,避免内存泄漏等情况。在实际开发中,我们应该根据实际需求和场景选择合适的引用类型,从而使得程序具有更好的性能和可靠性。

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/162160.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!