为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java入门第三季_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季

陈码农
难度入门
时长 5小时 0分
  • 装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱
    查看全部
  • 在需要频繁对字符串进行修改操作时使用 StringBuilder 的效率比 String 要高
    查看全部
    0 采集 收起 来源:练习题

    2017-05-07

  • 。这些操作修改了 str 对象的值,而没有创建新的对象,这就是 StringBuilder 和 String 最大的区别。
    查看全部
  • ,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。
    查看全部
  • String 类具有是不可变性
    查看全部
  • ==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象 equals(): 比较存储在两个字符串对象中的内容是否一致
    查看全部
  • 每次 new 一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用 ”==” 比较时也为 ”false” ,如果只需比较内容是否相同,应使用 ”equals()” 方法(前面条件运算符章节讲过哦~~)
    查看全部
  • 一旦一个字符串在内存中创建,则这个字符串将不可改变。如果需要一个可以改变的字符串,我们可以使用StringBuffer或者StringBuilder(后面章节中会讲到)。
    查看全部
  • String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。
    查看全部
  • 每次 new 一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用 ”==” 比较时也为 ”false” ,如果只需比较内容是否相同,应使用 ”equals()” 方法(前面条件运算符章节讲过哦~~)
    查看全部
  • String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同
    查看全部
  • 不是为了实现哪一句代码的。initCause()这个方法就是对异常来进行包装的,目的就是为了出了问题的时候能够追根究底。因为一个项目,越往底层,可能抛出的异常类型会用很多,如果你在上层想要处理这些异常,你就需要挨个的写很多catch语句块来捕捉异常,这样是很麻烦的。如果我们对底层抛出的异常捕获后,抛出一个新的统一的异常,会避免这个问题。但是直接抛出一个新的异常,会让最原始的异常信息丢失,这样不利于排查问题。举个例子,在底层会出现一个A异常,然后在中间代码层捕获A异常,对上层抛出一个B异常。如果在中间代码层不对A进行包装,在上层代码捕捉到B异常后就不知道为什么会导致B异常的发生,但是包装以后我们就可以用getCause()方法获得原始的A异常。这对追查BUG是很有利的。 class A{ try{ ... }catch(AException a){ throw new BException(); } } ... class B{ try{ ... }catch(BException b){ //这时候你需要去看b异常式什么问题导致的,你在A类里面 //没有对AException进行包装,所以你无法知道是A导致的B } } 如果包装以后: class A{ try{ ... }catch(AException a){ BException b = new BEexception(); b.initCause(a); throw b; } } ... class B{ try{ ... }catch(BException b){ //什么导致了b呢? b.getCause();//得到导致B异常的原始异常 } }
    查看全部
  • 只有Error,Exception,RuntimeException提供了带cause参数的构造器,其他的所有异常类只能通过initCause()来设置cause。 所有Throwable的子类构造器中都可以接受一个cause对象作为参数。cause是异常原由,代表着原始异常。既可以在当前位置创建并抛出行的异常,也可以通过cause追踪到异常最初发生的位置。 异常链是一种面向对象编程技术,指将捕获的异常包装进一个新的异常中并重新抛出的异常处理方式。原异常被保存为新异常的一个属性(比如cause)。这个想法是指一个方法应该抛出定义在相同的抽象层次上的异常,但不会丢弃更低层次的信息。 把捕获的异常包装成新的异常,在新异常里添加原始的异常,并将新异常抛出,它们就像是链式反应一样,一个导致(cause)另一个 这个想法是指一个方法应该抛出定义在相同的抽象层次上的异常,(将所有捕获到的异常包装为新的异常类,即定义在相同的抽象层次上抛出)但不会丢弃更低层次的信息。 实现异常链功能的两种基本写法: public class chainTest { /** * @param args * Test1抛出喝大了异常 * Test2调用test1捕获了喝大了异常,并且包装成运行时异常,继续抛出 * main方法中调用test2尝试捕获test2方法抛出的异常 */ public static void main(String[] args) { try{ // TODO Auto-generated method stub chainTest ct=new chainTest(); ct.Test2();} catch(Exception e){ e.printStackTrace(); } }public void Test1()throws DrunkException{ throw new DrunkException("喝车别开酒"); } public void Test2(){ try{ Test1(); }catch( DrunkException e){ RuntimeException rte=new RuntimeException(e); //rte.initCause(e); e.printStackTrace(); throw rte; } } }
    查看全部
  • JAVA集合框架 Collection接口 Map接口 Collections工具类(Collections.sort()) sort()中用到的两个接口:Comparable接口和Comparator接口
    查看全部
  • comparable接口:可比较的,默认排序规则,需要实现compareTo方法 comparator接口:可比较的,临时比较规则,需要实现compare方法 comparable和comparator都是java集合框架的成员
    查看全部

举报

0/150
提交
取消
课程须知
此部分为 Java 课程的进阶内容,适合具有一定 Java 基础的伙伴们学习,如果您是新手,建议您移步 《Java入门第一季》 和 《Java入门第二季》,在理解并掌握面向对象相关知识后再回来进修。
老师告诉你能学到什么?
本课程将学习 Java 中的异常处理、集合框架、字符串、常用类等,逐步学习掌握 Java 高级技术。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!