每天进步一点点——积累5个面试题

本文阅读 4 分钟
首页 代码,Java 正文

throws和throw的区别?

        throws:         1,声明一个方法所可能产生的异常,不做任何处理只是把异常上传,谁调用的话,就抛给谁。         2,用在方法名后面,直接写异常名,也可以声明多个异常,中间使用逗号隔开。         throw:         1,抛出一个具体的异常类型。         2,用在方法内,跟的是异常对象名,只能抛出一个异常。

Error 和 Exception 异同?

        相同点:         1,他们都继承Throwable类,在java中只有throwable类才能声明或者抛出一个异常         2,Error和Exception都体现了JAVA这门语言对于异常处理的两种方式         不同点:         1,Exception是java程序运行中可预料的异常情况,咱那么可以获取到这种异常,并且对这种异常进行业务外的处理。         2,Error是java程序运行中不可预料的异常情况,这种异常发生以后,会直接导致JVM不可处理或者不可恢复的情况,所以,这种异常是不可能抓取到的,比如OutOfMemoryError、NoClassDefFoundError等。

写出5个常用的运行时异常?(英文)

        1,ClassCastException(类转换异常)         2,IndexOutOfBoundsException(数组越界)         3,NullPointerException(空指针)         4,ArrayStoreException(数据存储异常,操作数组时类型不一致)         5,BufferOverflowException ( IO操作异常)

请描述String、StringBuffer、StringBuider的区别?

        String:不可变,频繁修改字符串的话,造成内存浪费。当字符串频繁修改时,建议使用StringBuffer、StringBuider。         StringBuffer:线程安全,效率低,所有公开方法都是 synchronized[ˈsɪŋkrənaɪzd] 修饰的。

缓冲区:StringBuffer 每次获取 toString 都会直接使用缓存区的 toStringCache 值来构造一个字符串。不过每次的toString()方法也是同步的。         StringBuilder :线程不安全,效率低。缓冲区:每次都需要复制一次字符数组,再构造一个字符串。

Sting s=“Hello”;s=s+“world”;这两行代码之后,原始的String对象中的内容是否发生改变?

        没有。因为String是不可变类,所有他的所有对象都是不可变对象。在这段代码中,s原先指向一个内容为“hello”的地址s对象,之后又对s进行了“+”操作,操作之后s原先所指向的那个对象并没有发生变化,不是在原先s的基础上追加“world”字符串,而是在堆中重新开辟了一块空间,用来存放“world”地址,此时的s指向“world”的地址,并不指向“hello”这个对象了,但是“hello”它的字符串内容并没发生改变。         所以,当我们频繁的修改字符串时,使用String类的话,比较浪费内存空间,因为它需要不断的在内存中新建一块空间,建议使用StringBuffer或StringBuilder这两个类。                           

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/qq_46540738/article/details/119464121
-- 展开阅读全文 --
安全面试之XSS(跨站脚本攻击)
« 上一篇 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复