A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

18:StringBuffer和StringBuilder的区别
StringBuilder和String对象都可以很方便的处理字符串,他们具备各自的特点,如下:
String具有以下五个特点:
        1.String是引用类型,在堆上分配内存。

        2.String对象一旦生成,就不可改变(Immutable)。

        3.String提供了大量便捷的字符串操作函数。

        4.String运算时会产生一个新的实例。

        5.在程序中定义相等运算符(==)和(!=),可以方便比较String对象的值(而不是引用)。

        StringBuilder具有以下两个特点:

                StringBuilder对象是动态对象,允许扩充它所封装的字符串中的字符数量。
                StringBuilder可以用于修改StringBuilder中的内容。
                由于String对象一旦声称,就不可改变,所以每次使用System.String类中的方法时,
                        都需要在内存中创建一个新的字符串对象,这会分配新的空间给新的对象。
                        如果对字符串执行重复修改,创建一个新的String对象导致 的系统开销可能会非常昂贵。
                        如果不创建新的对象,只是修改字符窜,则可以使用StringBuilder类。
                        StringBuilder类型可以很好的解决字符串操作的性能问题,在它声称String对象之前,
                        将不会产生任何String对象。
       
        StringBuffer是同步的,线程安全的
        StringBuilder是不同步的,线程非安全的,执行速度快
--------------------------------------------------------------
20:If 和 switch有什么区别,以及在什么时候使用Switch
        if:能判断具体的值,区间和boolean类型表达式,
        switch:只能对具体的值进行判断,值的个数是确定的,byte,short,int,char。

        if判断是遍历性的,代码执行效率是不高的。
        而switch...case会生成一个跳转表来指示实际的case分支的地址,
        而这个跳转表的索引号与switch变量的值是相等的。

        在确切知道条件结果,并且结果有限下的条件下可以使用switch,如枚举
        在不能确切表示结果的情况下,或者处理复杂的逻辑关系最好用if...else,
        在使用switch时候一定要注意break的使用。


        switch语句特点:
    1、switch语句选择的类型只有四种:byte,short,int,char。
    2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
    3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
    4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
    5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。
--------------------------------------------------------------
21:内省的作用
        InstroSpector-->JavaBean-->特殊的Java类
        内省(Introspector)是Java 语言对Bean类属性、事件的一种缺省处理方法。
        例如类 A 中有属性 name, 那我们可以通过 getName,setName 来得到其值或者设置新的值。
        通过 getName/setName 来访问 name 属性,这就是默认的规则。
--------------------------------------------------------------
22:讲一讲异常体系以及异常的处理原则。异常和错误的不同?final、finally、finanlize()的区别、编程中遇到过异常吗,都遇到了哪些异常,请你简述一下你遇到的异常以及解决方案。throw和throws的区别
        throwable类中主要有Exception和error两大子类,erro是不可处理的严重异常
        Exception中RuntimeException是运行异常,如角标越界,空指针异常是代码出问题
                必须进行处理,否则运行出错
        另一类是编译异常,编译时eclipse会提醒捕获或者抛出
       
        final是修饰符,被final声明的变量是常量,不能修改只能读取,修饰方法不能被继承
        finally异常处理时提供 finally 块来执行任何清除操作,如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(一定会执行的语句)。
        finalize是方法名,finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作
                在Object中定义,子类覆盖他可以整理系统资源和其他清理工作。
                finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。       
        throw和throws的区别:
                throws针对那些没有权限处理的异常进行抛出,在方法和类上抛出的是异常类名,可抛多个
                throw 是在方法内抛出的异常对象

2 个回复

正序浏览
6666666666666666666666
回复 使用道具 举报
感谢分享,干吧爹
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马