考察java功底时刻来了~可以看看呀

1.       String不是最基本的数据类型,java中的基本数据类型是byte,short,int,

long,float,double,char,Boolean,其他都是引用类型。

2.       String不可以被继承,因为它是用final修饰的类。

 

3.       String和StringBuilder,StringBuffer的区别:String是只读字符串,用String

引用的字符串内容是不能被改变的,而a是可变字符串,StringBuffer和StringBuilder

的用法相同,区别在于StringBuffer是用synchronize修饰的,效率比StringBuilder

低。

 

Ps(可变和不可变的意思是指:创建后对象的状态是否能被改变,包括对象内的成员

变量的状态。什么意思?如:String a=”2333”,a=”886”,一开“2333”是放在

常量池的,而a是放在栈中的存放的是2333在常量池的地址,后面886其实是在常量

池中重新新建的对象,即对字符串进行任何更改操作都会产生新的String对象。而

StringBuilderStringBuffer是可变类,它们的字符串对象可以更改,对可变字符串

的操作不会生成新的对象,即对同一个字符串对象操作。

 

4.       访问修饰符public,private,protected区别:

 

    private:当前类中可以使用的,在这个类中的其他地方都不可以使用

    public:在所有可以访问到这个类的地方都可以使用

 

    protected:一般应用在子类与父类当中的,当父类中写了一个protected的变量  

      后, 则在他的子类中也可以访问到这个变量,同一个包中的其他类也可以进行访    

      问。(注明:子类跟父类可能不在同一个包中)

 

     在没注明具体的访问权限时,默认的权限时default,它的权限范围是同一个包中       就可以访问。

5.       float f=1.1是错的,java里默认的的是双精度double类型,也就是说把双精度

1.1赋值给浮点型会造成精度丢失,因为这个属于向下转型,如果非要这样写,应该进

行强制转换,float f=1.1F或float f =(float)1.1.

如图:报错

                          

 

6.       short a=1,a=a+1和a+=1的区别?1默认是int类型,前者计算结果为int需要进行强制转换才能赋值,而后者其实相当于a=(short)(a+1),已经做了一次强制转换。

如图:报错

 

 

7.       你们觉得这幅图的输出结果会是什么呢?


 

第一个输出了true,第二个输出false,我们都知道当用“==”比较对象时比较的不

是内容而是引用,因为在java中早就封装好-128到127之间的数字了,所以当数字介

于它们之间时,就不会new新的对象了,而是之间引用常量池中的Integer对象。

 

8.       Java中如何跳出多重嵌套循环?可以利用label标签,如图:


9.       构造器可以被重写吗?

      哈哈哈哈,当然不可以了,因为它不能被继承哪来的重写呢?但是还是可以重载的~

 

10.    int a=5,int b=4,在不定义第三个变量的情况下,怎样实现交换呢?

这里需要我们转一下弯了,首先a=a+b,此时a为9,然后b=a-b,b为4,a=a-b,a

为5,哈哈哈哈,交换了,这是一道面试的题目,感觉挺有趣的,就放上来了。



后续更新~~~


猜你喜欢

转载自blog.csdn.net/legendaryhaha/article/details/80195265
今日推荐