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对象。而
StringBuilder与StringBuffer是可变类,它们的字符串对象可以更改,对可变字符串
的操作不会生成新的对象,即对同一个字符串对象操作。)
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,哈哈哈哈,交换了,这是一道面试的题目,感觉挺有趣的,就放上来了。
后续更新~~~