黑马程序员技术交流社区

标题: 【厦门JavaEE基础4期-每日总结】String类、static、Arrays类、Math类 [打印本页]

作者: 厦门校区    时间: 2018-10-12 20:26
标题: 【厦门JavaEE基础4期-每日总结】String类、static、Arrays类、Math类

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

2.什么情况下会用到Static关键字?

3.静态代码块会在什么时候执行?

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

作者: 软绵绵的牛欢喜    时间: 2018-10-12 21:41
干,今天学太认真了,掉头发了,
作者: wangyuxuan    时间: 2018-10-12 21:42
1.引用数据类型 String类其实是对字符数组进行了封装操作,用户真正操作的其实字符数组,字符串内部其实就是一个使用final关键字定义的char[]数组,数组长度一旦声明则不可改变,字符串一旦声明则不可改变,改变的引用内存指向。  
2.static静态的,类的静态成员变量一般是共性,成员变量是随着类的加载而加载到,优先于对象的创建
3.静态代码块随着类的加载而加载
4.(1)new String() 和 "abc"两个对象,new String()是存放"abc"的指针,存放在堆中;"abc"存放在栈中
(2)创建了一个对象"abc"




作者: hanssssss    时间: 2018-10-12 21:55
1.引用数据类型,常量
2.直接用类调用,不用建立对象,适合工具类中方法的调用
3.静态代码块 加载类时有且仅运行一次
4.2个,字符串常量池里池外 堆中
5.1个,堆中常量池
作者: 不完整的所有    时间: 2018-10-12 21:59

1.引用数据类型 String类其实是对字符数组进行了封装操作,用户真正操作的其实字符数组,字符串内部其实就是一个使用final关键字定义的char[]数组,数组长度一旦声明则不可改变,字符串一旦声明则不可改变,改变的引用内存指向。  
2.static静态的,类的静态成员变量一般是共性,成员变量是随着类的加载而加载到,优先于对象的创建
3.静态代码块随着类的加载而加载
4.(1)new String() 和 "abc"两个对象,new String()是存放"abc"的指针,存放在堆中;"abc"存放在栈中
(2)创建了一个对象"abc"
作者: 朱旭.    时间: 2018-10-13 12:53
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
        String类是引用数据类型
        字符串创建的时候在堆中已经开辟了一块空间,如果再创建同样的字符串的时候,其实那是引用已创建好的那个地址值

2.什么情况下会用到Static关键字?
        静态修饰成员变量跟成员方法时,可以通过类进行调用
        创建工具类的时候

3.静态代码块会在什么时候执行?
        在调用类的时候,执行时优先于新建的对象

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
   
   
   创建了两个对象,在堆中字符串常量池中创建了一个地址,在堆又新建了一个地址;
   (跟上个问题接一起的情况)没有创建,双引号括起来的都在常量池当中已经有abc了,共享使用了
作者: 陈萱萱    时间: 2018-10-13 21:32
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String是引用数据类型;因为字符串变量最终指向的是方法区中的常量池,里面存放的数据是不可改变的,因此长度也是不可变的。
2.什么情况下会用到Static关键字?
答:static是用来修饰成员变量和成员方法的,被修饰的成员是属于类的,被该类创建出来的所有对象共享,当该类的所有对象都具有某一相同的属性和行为时会用到。任何对象都可以更改该类变量的值,但也可以在不创建该类的对象的情况下对类变量进行操作。
3.静态代码块会在什么时候执行?
答:静态代码块随着类的加载而加载,且只加载一次。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:String s = new String("abc");创建了两个对象。一个是通过初始化新创建的String对象来创建,一个是直接将变量指向方法区中的静态区内的”abc”这一实例。
String s = "abc";创建了一个对象。直接将变量指向方法区中的静态区内的”abc”这一实例。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2