Java面经(3),备战2022,刻不容缓~

1.数组有没有length()方法?String有没有length()方法?

        答:数组没有length()方法,有length 的属性。String 有length()方法。

2.在Java中,如何跳出当前的多重嵌套循环?

        答:在最外层循环前加一个标记(就是循环的名字)如A,然后用break A;可以跳出多重循环。(Java中支持带标签的break和continue语句,作用有点类似于C和C++中的goto语句,但是就像要避免使用goto一样,应该避免使用带标签的break和continue,因为它不会让你的程序变得更优雅,很多时候甚至有相反的作用,所以这种语法其实不知道更好)。

3.一个".java"源文件中是否可以包含多个类(不是内部类)?有什么限制?

        答:可以,但一个源文件中最多只能有一个公开类(public class) 而且文件名必须和公开类的类名完全保持一致。

4.Java 中的final关键字有哪些用法?

        答:(1)修饰类:表示该类不能被继承;

                (2)修饰方法:表示方法不能被重写;

                (3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)。

5.char 型变量中能不能存贮一个中文汉字,为什么?

        答:char类型可以存储一个中文汉字,因为Java中使用的编码格式是Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一的唯一方法),一个char类型占2个字节(即16比特),而一个中文汉字占2个字节,所以放一个中文是没问题的。

6.是否可以创造一个类去继承String类,如果不可以说明原因?

        答:不可以,因为String 类是final类,不可以被继承。

7.String s = new String("xyz");创建了几个字符串对象?
 

        答:两个对象,一个是静态区的"xyz",一个是用new创建在堆上的对象。

8.String result = "a" + "b" + "c" + "d";期间一共创建了几个对象?

        答:7个,分别是,"a","b","c","d","ab","abc","abcd"。

9.数据类型之间的转换: 如何将字符串转换为基本数据类型?如何将基本数据类型转换为字符串?

        答:调用基本数据类型对应的包装类中的方法parseXXX(String)或valueOf(String)即可返回相应基本类型;
        一种方法是将基本数据类型与空字符串("")连接(+)即可获得其所对应的字符串;另一种方法是调用String 类中的valueOf()方法返回相应字符串.

10.如何实现字符串的反转及替换?

        答:方法很多,可以自己写实现也可以使用String或StringBuffer/StringBuilder中的方法。最近有一些公司有一道很常见的面试题是用递归实现字符串反转,代码如下所示:

public static String reverse(String originStr) {
        if(originStr == null || originStr.length() <= 1){
                return originStr;

        }
        return reverse(originStr.substring(1)) + originStr.charAt(0);
}

11.String和StringBuilder、StringBuffer的区别?

        答:Java平台提供了两种类型的字符串:String和StringBuffer/StringBuilder,它们可以储存和操作字符串。其中String是只读字符串,也就意味着String引用的字符串内容是不能被改变的。而StringBuffer/StringBuilder类表示的字符串对象可以直接进行修改。StringBuilder是Java 1.5中引入的,它和StringBuffer的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有被synchronized修饰,因此它的效率也比StringBuffer要高的多。

12.抽象类(abstract class)和接口(interface)有什么异同?
 

        答:抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用。一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类。接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法,default修饰的方法,static修饰的方法。抽象类中的成员可以是private、默认、protected、public的,而接口中的成员全都是public的。抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量。有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小陈呀~

您的鼓励是我最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值