zoukankan      html  css  js  c++  java
  • java 常用类

    1.String是最基本的数据类型吗?

    不是,基本数据类型:byte,short,int,long,float,double,char,boolean.

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

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

    在这段代码中,s原先指定一个String对象,内容是"hello",然后我们对s进行+操作,那么s不指向原来那个对象,而是指向另一个String对象,内容是"HelloWord!",原来那个对象还存在,只是s不在指向它了。

    如果说经常对一个字符串进行各种各样的修改,或者说不可预见的修改,使用String来代表字符串会引起很大的内存开销,应该使用Stringbuffer类,它允许修改。 

    比可变的优点:比如因为它的对象是只读的,所以多线程并发访问也不会有任何问题。

    3.是否可以继承String类?

    String类是final类故不可以继承。 

    4.String s = new String("xyz");创建了几个String Object?二者之间有什么区别?

    两个,一个是字符串"xyz"所对应的、驻留在字符串常量池中的实例,另一个是通过new String()创建并初始化的、内容与"xyz"相同的实例

    一个,如果字符串常量池中已存在"xyz",这只创建一个对象。

    5.String和StringBuffer的区别?

    String是不可变字符串,StringBuffer是可变字符串,在对字符串进行各种各样修改或者不可预见的修改的时候使用StringBuffer.

    String覆盖了equals和hashCode方法,而StringBuffer没有覆盖equals和HashCode方法,所以将StringBuffer对象存储在java集合类中时会出现问题。

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

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

    7.下面语句一共创建了多少个对象:String s = "a"+"b"+"c"+"d";

    因为javac编译可以对字符串常量直接相加的表达式进行优化,所以只创建了一个对象。

    8.String子面量是否自动生成一个String对象?

    是,字符串类具有一定的特殊性,JVM在执行双引号操作符的时候,会自动创建一个String对象,并返回这个对象的引用。

    9.字符串对象池的作用?

    对象池的存在是为了避免频繁的创建和销毁对象而影响系统性能。当JVM在运行用双引号引起来一个字符串的代码时,会到String的对象池中去检查是否有一个字符序列相同的对象,如果有就去现有的对象,如果没有,则在对象池中创建一个对象,并返回。

    10.如何使用指定的字符集创建String对象?

    使用带有字符集编码的String的构造方法,参数一个是byte数组,另一个是指定字符集编码格式。

  • 相关阅读:
    Java输入输出流详解2
    Java输入输出流详解(转)
    java泛型
    E-R图学习笔记
    MongoDB工具
    MongoDB安装
    mongodb-参考其他
    mongodb学习笔记
    WebService学习笔记
    nutch笔记
  • 原文地址:https://www.cnblogs.com/hxg-yw/p/4038360.html
Copyright © 2011-2022 走看看