Java整合02

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

温故而知新


所需工具

Eclipse或者Idea

1.String 是最基本的数据类型吗,能继承吗?

注:八大数据基本类型

       整数型:int  short 短整型  long长整型: byte
       浮点型:double(双精度浮点型),float(单精度浮点型)
       字符型:char 布尔型:boolean

不是,java.lang.String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用 StringBuffer 类           

2.String s = "Hello";s = s + " world!";这两行代码执行后,原始的 String 对象中的内容到底变了没有?

没有。因为 String 被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。

代码片段:

代码如下(示例):

package zhangze.com;

public class Demo {
    public static void main(String[] args) {
        String s="hello";
        System.out.println(s);
        s+="world";
        System.out.println(s);
    }
}

2.String s = new String("zhangze");创建了几个 String Object? 二者之间有什么区 别? zhangze 是字面

两个,一个放在常量区,不管写多少遍,都是同一个。New String 每写一遍,就创建一个新

代码如下(示例):

//两个对象但是值相同所有是3个对象
String a=new ("zhangze");
String b=new ("zhangze");

//两个对象和值都不相同所有是4个对象
String a=new ("zhangze");
String b=new ("zhangsan");

 3.String 和 StringBuffer 的区别

简述:

String 与 StringBuffer的区别 简单地说,就是一个变量 和 常量 的 关系。 StringBuffer 对象的内容可以修改,而 String 对象一旦产生后就不可以被修改,重新赋值其实是两个对象。

Stringbuffer效率更高

例如:

//从0-100 再加上"a"需要新建101个对象
String q="a";
for(int a=0;a<100;a++){
   s+=a;
}

//只需两个对象

Stringbuffer w=new Stringbuffer
for(int a=0;a<100;a++){
   s.append(a);
}

StringBuffer对象是一个长度可变的对象,当对StringBuffer的进行增加或删除时,不需要new一个对象,可以动态地修改堆内存。

StringBuffer提供了append方法,在字符串的末尾进行添加。实际上,String类进行 '+' 运算,就是创建了一个StringBuffer对象,然后调用append进行添加,最后调用toString把StringBuffer转化为String。

所以,String的效率绝对不如StringBuffer了。

4.try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后

    public class Test {
        public static void main(String[] args) {
            System.out.println(new Test().test());
            ;
        }

        static int test() {
            int a = 1;
            try {
                return a;//获取结果,断点 走完finally (有finally必然执行)
            } finally {
                System.out.println(++a);//恢复断点 返回结果
            }
        }
    }
结果为
2
1

5.final, finally, finalize 的区别。

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 内部类要访问局部变量,局部变量必须定义成 final 类型,例如,一段代码……

finally 是异常处理语句结构的一部分,表示总是执行。

//析构函数

finalize 是 Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回 收,例如关闭文件等。JVM 不保证此方法总被调用

6.运行时异常与一般异常有何异同?

运行时表示代码跑起来了(运行中)出现异常

一般异常为未运行的自助提示(代码报红)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值