黑马程序员技术交流社区

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

作者: 厦门校区    时间: 2018-12-8 19:07
标题: 【厦门JavaEE基础5期-每日总结】String类、static、Arrays类、Math类
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

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

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

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
作者: 吴洪标    时间: 2018-12-8 20:14
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:Strig是引用数据类型;字符串的底层是byte类型的数组,因此其长度不可变。

2.什么情况下会用到Static关键字?
答:当想要在加载类的时候一次性给某些变量赋值,且只在类加载的时候赋值一次,那么可以用static修饰这些变量;
另外,当需要在外部用类型访问某个成员方法,而不依赖对象去访问时,可以用static去修饰该方法。

3.静态代码块会在什么时候执行?
答:静态代码块会在加载类的时候被执行,且只会被执行一次。

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:String s = new String("abc")这句代码创建了2个字符串对象,“abc”这里是在字符串常量池中创建了对象,new关键字这里则在堆中(字符串常量池之外)创建了对象;
String s = "abc"这句代码只创建了一个对象,是在字符串常量池中创建。
作者: 陈彬    时间: 2018-12-8 20:24
1.String 是引用类型,基本类型只有4类八种 其他都是引用类型,因为在字符串的底层是用数组,应为数组的长度不可变,所以字符串的长度也不可变;
2.当需要进行一次性赋值时,可以使用static进行修饰,还有当一个属性为整个类所共有的,也可以使用static修饰;
3.静态模块在类创建前执行。前提是你有创建类。
4.2个对象,new String 一个,“abc”一个。new关键字创建的对象在堆中,而“abc”则是在堆中的常量池中。
String s = new String("abc")创建了一个对象“abc”,是在堆中的常量池中创建的


作者: 吴少华    时间: 2018-12-8 20:37
本帖最后由 吴少华 于 2018-12-8 20:44 编辑

1.是引用类型,因为字符串是String类型底部是二进制数据整合成数组编写,数组不可变,因此字符串不可变
2.当主方法创建的对象中的元素都共有同一个变量属性,即可在类中用Static该变量节省运存,Static关键字的静态方法在创建对象只运行第一次,用Static关键字的元素和方法加载的比普通的更快。静态方法不能调用成员变量和方法。
3.静态代码块会在所在类中第一次被引用时执行,且只执行一次。
4.String s = new String("abc");这句代码创建了2个对象,"abc"是方法区的字符常量池创建,new在堆中创建。
  String s = "abc";创建了1个对象,在内存中的方法区的字符常量池中创建?

作者: lj478360767    时间: 2018-12-8 20:48
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用类型数据;因为String底层是用数组来存储字符串的,数组的长度是固定的,任何字符串的操作都是新建了一个数组来记录,原来的字符串不变;
2.什么情况下会用到Static关键字?
需要定义一个变量或者方法不需要创建对象,就可以直接调用;
3.静态代码块会在什么时候执行?
在第一次加载类的时候执行第一次也是最后一次;
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
创建了2个对象,new String 创建了一个对象在堆内存中,“abc"创建了一个常量字符串对象存在字符串常量池中;
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

“abc"创建了一个对象;在字符串常量池中创建;

作者: 许晓明    时间: 2018-12-8 20:59
本帖最后由 许晓明 于 2018-12-8 21:00 编辑

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String是引用数据类型,因为字符串是常量,在最底层的代码中,字符串本质上的一个字节数组,而数组的长度不可改变;

2.什么情况下会用到Static关键字?
答:对于成员变量,如果一个成员变量是所有对象都可以访问修改的变量,即是属于类的变量,便可以使用static
对于成员方法,当主类程序运行无需使用到类A对象且需求使用类A的成员方法时,可使用static修饰成员方法,即可在主类中使用类A.成员方法名调用该方法


3.静态代码块会在什么时候执行?
静态代码块会在类被调用的时候最先开始执行,且只会执行一次;

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:String s=new String("abc")这句代码创造了2个对象,String对象在字符串常量池中和“abc”数组在堆中;
String s=“abc”这句创造了1个对象,“abc”在堆中的字符串常量池
作者: 董志超Eric    时间: 2018-12-8 21:11
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String是引用数据类型。 字符串长度不可变,是因为字符串的底层储存数据是字节数组byte[]。因为数组的长度不可变,所以字符串的长度不可变。
2.什么情况下会用到Static关键字?
答:static关键字—意思是“静态”。
      1.static是在类中需要把某个变量共享,不用多次的创建对象赋值。
      2.static修饰的成员变量和成员方法是属于类的,并不属于某个对象。所以在使用时,类名.成员变量 类名.成员方法()的方式进行访问。

     3.需要在对变量进行初始化赋值时。


3.静态代码块会在什么时候执行?
答:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行


4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:String s = new String("abc")这行代码,创建了两个对象,“abc”这个String类的对象在堆(heap)常量池中;new String("abc")在堆中常量池外。 String s = "abc"这行代码创建了一个对象,在常量池中。






作者: 林文悦    时间: 2018-12-8 21:12
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型;因为字符串的底层是byte类型的数组(常量),所以不能发生改变。

2.什么情况下会用到Static关键字?
被Static修饰的成员变量可以不用创建对象的情况下进行修改;
当外部用类访问某个成员方法的时候可以不用对象去访问,可以用static修饰该方法。


3.静态代码块会在什么时候执行?
会在加载类的时候执行,并且只能执行一次。


4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc");创建了两个对象,new在内存中的堆内存里,abc在堆中的常量池里;
String s = "abc";创建了一个对象,在常量池中创建。
作者: 李灵杰    时间: 2018-12-8 21:15
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型;
正是因为字符串不可改变,所以字符串是可以共享使用的。
字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。

2.什么情况下会用到Static关键字?
static关键字可以用来修饰成员变量和成员方法,当static修饰成员变量时,该变量成为类变量,该类的每个对象都享有同一个类对象的值,任何对象都可以更改该变量的值但也可以在不创建该类的对象的情况下对类变量进行操作。

3.静态代码块会在什么时候执行?
随着类的加载执行且只执行一次,优于main方法和构造方法的执行

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

   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
“abc"创建了一个对象;在字符串常量池中创建;


作者: 黄毅    时间: 2018-12-8 21:16

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
        引用数据类型;因为字符串的底层为数组,数组长度不能改变。
2.什么情况下会用到Static关键字?
         在不创建对象的情况下 去调用方法
3.静态代码块会在什么时候执行?
         在加载类的时候会执行,且只执行一次
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
          2个,string在方法区中的字符串常量池中,abc在堆中
          1个,在堆中
作者: 周章强    时间: 2018-12-8 21:21

1.是引用数据类型。因为规定String类数据永不改变。
2.(1)Static修饰方法,当想要直接用类名访问方法时。
(2)修饰变量,同一类中用static修饰的变量值在不同的对象中都相等。
(3)static代码块,当只想访问一次时可以使用。
3.只想使用一次时
4.String s = new String("abc");2("abc")直接创建一个在方法区的常量池,
然后new又在堆中创建一个。
String s = "abc";一个,在方法区中的常量池。
作者: 苏阿合    时间: 2018-12-8 21:22
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
  String类是引用数据类型,字符串封装的源码底层是采用byte数组去存储每个字符,根据字符串的长度创建对应的byte数组去存储,所以它的长度是不可变。

2.什么情况下会用到Static关键字?
  当多个对象的成员属性统一时,可以用Static修饰去共享同一个成员属性,避免创建对象时要多次的进行属性设置。在main方法的类中,由于main方法是用Static修饰, main方法中调用的方法也都必须是用Static修饰才可以访问或调用。
  
3.静态代码块会在什么时候执行?
静态代码会随着静态代码块所属的类加载而执行,优先于对象的创建,但只执行唯一一次。

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
   String s = new String("abc")创建了两个字符串,双引号是在堆内存中字符串常量池创建,new是在堆内存中创建。String s = "abc"创建了一个,在堆内存中的字符串的常量池中。
作者: 杨鑫棋    时间: 2018-12-8 21:25
1.String类是引用数据类型,字符串的值在创建之后不可改变。
2.被static关键字修饰的成员变量和成员方法属于类,不属于某个对象,可以不通过创建对象来调用成员变量和方法。可以节省计算机的内存空间。
3.随着类的加载而执行,且只执行一次,优先于main方法和构造方法执行。
4.创建了两个对象,“abc”在堆内存的字符串常量池创建的,new 关键字是在堆内存中创建一个新的存储空白间。
1个对象,在堆内存·的字符串常量池。
作者: 陈基林    时间: 2018-12-9 10:13
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型,字符串一旦创建,就相当与常量,在程序中是不可改变的,自然长度不可变,还有它的底层原理是byte[]数组,数组的长度也是不可变的,自然字符串长度也是不可变。
2.什么情况下会用到Static关键字?
通过Stiatic修饰的变量名或者方法名在类中是可以共享的。这个就是当这个类中的元素都有同意属性的时候将这个属性用static修饰,就可以一次性解决,不需要每个对象或者元素都去赋值这个属性,这样也节省内存。
3.静态代码块会在什么时候执行?
静态代码块会在它所在的类首次运行的时候执行一次,然后就再也不执行了。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc");这句代码创建了两个对象,new的对象是在堆中,双引号直接创建的字符串是在堆中的字符串常量池当中;
String s = “abc”创建了一个对象,存在堆当中的字符串常量池当中。

作者: 陈益源    时间: 2018-12-9 10:58
本帖最后由 陈益源 于 2018-12-9 11:06 编辑

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型,因为字符串最底层原理就是byte数组,因此长度不可变

2.什么情况下会用到Static关键字?
当某一成员变量的内容所有对象都一致的时候,可以用Static进行修饰,不需要一一进行数据录入修改,直接使用类名.静态变量名;

3.静态代码块会在什么时候执行?
随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc");这句代码创建了2个对象,"abc"创建在堆中的字符串常量池中,new在堆中创建;
String s = "abc";创建了1个对象,创建在堆中的字符串常量池中
作者: 刘荣城    时间: 2018-12-9 11:07
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
Strig是引用数据类型,因为字符串的底层原理是byte【】数组,一旦创建就不可改变。

2.什么情况下会用到Static关键字?
当要修改成员变量或者成员方法的时候,一个个修改太麻烦,就用static修饰,一次就可以解决。

3.静态代码块会在什么时候执行?
在第一次调用该类的第一次就执行,而且只执行一次。

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
创建的两个字符串对象,一个在堆里,一个在常量池里。
String s = "abc"这句代码只创建了一个对象,是在字符串常量池中创建。
作者: zhuyiming    时间: 2018-12-9 11:29

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型, 字符串不是长度不可变,而是 字符串的内容不可变,
因为 字符串的内容不可以改变,所以 字符串是可以共享使用。
2.什么情况下会用到Static关键字?
它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类,而不是单单属于某个对象

3.静态代码块会在什么时候执行?
随着类的加载的时候执行一次,而且就只会执行唯一的一次,是比main方法和构造方法更加优先。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?

   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

作者: ab8846254    时间: 2018-12-9 14:22
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:1.String类是引用数据类型
       2.通过直接赋值的方式,字符串首先会在栈内存里面开辟一块空间,然后把它的值放到内存中的方法区里面的字            符串常量池里面,然后生成一个地址这个地址给到栈内存的,String s = xxx 跟堆没有任何关系,而在下一次           有直接创建赋值一个字符串的时候首先也会在栈当中开辟一块空间 如String ss =   然后去方法区里面的常量池           里面查找是否有相同的字符串,如果有则直接引用 之前的那个地址而不会为这个对象在常量池中创建新的字符          串 所以应该是在栈中创建了两个对象 指向同一个内容, 如果为 s+=xxx 则会直接去找常量池找到后再次建立一      块儿空间并且生成地址值,但是并没有意义因为在栈中没有任何变量指向它,所以他会在常量池中在创建一个空间把之前的和现在合起来拼凑出一个新的字符串并且把原来s的指针断掉 重新指向 拼凑的字符串,(因为字符串的创建都在常量池中是个常量所以一经创建则不能被改变,若值相同则直接引用,若不相同则再次创建一个新的。若之前的变量+=新的字符串,则会把之前的复制一份加上现在的字符串创建一个新的字符串然后断掉之前的指针);

2.什么情况下会用到Static关键字?
答:1.在多个对象需要用到同一个变量数据的时候他就该被定义为静态的,static关键字是静态的表示,我们的main方法就是静态的,静态的生命周期是随着类的创建而创建随着类的消失而消失,所以jvm不需要创建对象就可以直接通过类名调用,在类加载的时候我们的变量就已经存在在内存当中的静态区了,
3.静态代码块会在什么时候执行?
答:在类加载的时候就会执行,静态内容是随着类的加载而加载的,在加载类的时候就会启动静态代码块里面的代码,我们的代码如果要提前加载的话就可以用静态代码块儿包裹起来,如游戏的初始化过程,可以在一启动的时候就开始加载。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答: 两个对象 new出来的都在堆内存中,直接赋值的在方法区里面的常量池里面,分别会分配不同的地址值,如果比较地址值的话则会是false 如果比较内容的话就是true。





作者: 陈佳鹏    时间: 2018-12-9 14:35
1.String类是引用数据类型,字符串是常量,它的底层原理是Byte[]数组,长度不可变。
2.当一个类中的所有对象共享一个成员变量的值时,使用Static关键字修饰该变量。
3。静态代码块随着类的加载执行,优先于main和方法,并且只执行一次。
4.String s = new String("abc");创建了两个对象,一个在堆内存的常量池中,又在堆内存new出来了一个对象;String s = "abc";创建了一个对象,在对内存的字符串常量池中。
作者: 王宏    时间: 2018-12-9 14:56
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型,因为字符串实际上是由单个字符组成的字符数组,而字符数组又是由底层的字节数组组成,因为数组的长度是不可改变的,所以字符串长度是不可改变的

2.什么情况下会用到Static关键字?
当多个成员变量有相同的属性的时候,可以用static去修饰这个属性,另外当在外部想要直接用类名访问时,而不用创建对象去访问,也可以用static修饰方法

3.静态代码块会在什么时候执行?
静态代码块会在类加载的时候第一次执行,也是唯一一次执行

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
第一个创建了两个对象,分别是new出来的对象在堆内存中,和用双引号引起来的字符串在堆内存中的字符串常量池中,第二个是双引号里的字符串,在内存中的字符串常量池中



作者: 黄嘉宏    时间: 2018-12-9 15:07
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用类型,除了四类八中基本类型,其他都是引用类型。String创建的类是在地址值当中,如果长度改变那么就是另一个地址值。
2.什么情况下会用到Static关键字?
不创建对象的情况下,去调用方法。从而重复利用同一个值,节省内存。
3.静态代码块会在什么时候执行?
随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?String s = new String("abc");创建2个对象。new String在堆中,“abc”在堆中常量池。
String s = "abc";创建一个对象,在堆中常量池。

作者: 赖熙蒙    时间: 2018-12-9 15:25
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型。因为字符串的底层用的是数组,所以字符串长度不可变。

2.什么情况下会用到Static关键字?
当需要进行一次性赋值时用Stati关键字修饰,在需要创建类变量时也可以用Static关键字修饰。

3.静态代码块会在什么时候执行?
静态代码会在第一次加载类的时候执行,且只会执行一次。

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
2个对象。new在堆内存中创造了一个区域,“abc”是在字符串常量池中创建的。

String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
1个对象。abc”是在字符串常量池中创建的。




作者: Java中的莫Q哇啦    时间: 2018-12-9 16:01
1.String类是引用数据类型。因为String底层是靠字符数组实现的,数组的长度不可变,所以导致字符串长度不可变。

2.用到Static关键字的时候,就相当于是方法了,可以不用通过new对象来调用它,可以直接通过方法的方式调用它。用到它的情况就是,这个内容是所有成员属性共享的内容的话就可以用static。

3.静态代码块就是定义在成员位置,并用static修饰的代码块{},伴随类的调用来执行,并且只执行一次。

4.String s = new String("abc");这句代码创建了2个对象,两个都在堆内存中。String s = "abc";创建了一个对象,在堆内存中。
                                    黄成成出品
作者: Chidori    时间: 2018-12-9 16:12
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型。因为String类的底层是byte数组,而数组一旦创建不可改变,所以String类无法改变长度。
2.什么情况下会用到Static关键字?
当多个对象的有相同的属性时,可以使用Static关键字修饰
3.静态代码块会在什么时候执行?
静态代码块会在加载类的时候执行,而且只能执行一次。
4.Sngtri s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
.Sngtri s = new String("abc");这句代码创建了2个对象,“abc”在代码池中创建,new对象在堆中创建;
String s = "abc";创建了一个对象,“abc”在代码池中创建

作者: Chidori    时间: 2018-12-9 16:13
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型。因为String类的底层是byte数组,而数组一旦创建不可改变,所以String类无法改变长度。
2.什么情况下会用到Static关键字?
当多个对象的有相同的属性时,可以使用Static关键字修饰
3.静态代码块会在什么时候执行?
静态代码块会在加载类的时候执行,而且只能执行一次。
4.Sngtri s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
.Sngtri s = new String("abc");这句代码创建了2个对象,“abc”在代码池中创建,new对象在堆中创建;
String s = "abc";创建了一个对象,“abc”在代码池中
作者: 苏志祥    时间: 2018-12-9 16:16
1.String类是引用数据类型,字符串底层是采用数组去存储每个字符,数组的长度是无法改变的,所以它的长度是不可变。
2.当对象需要用到同一个成员变量或者成员方法的时候需要static修饰;创建静态代码块的时候需要用到static。
3在第一次用到本类时候,静态代码块仅唯一实行一次。
4String s = new String("abc")一共创建了两个对象,"abc"的对象会在堆的字符串常量池中,而new代码则会在堆中创建一个内容和"abc"一样的但并不是同一个对象。
String s = "abc"创建了一个对象,在堆的常量池中创建;
作者: 续扬    时间: 2018-12-9 16:33
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
是引用数据类型,因为字符串底层使用数组进行保存的所以长度不可变
2.什么情况下会用到Static关键字?
只在类中保存一份,所有对象使用同一份,不需要每个对象单独赋值
3.静态代码块会在什么时候执行?
第一次加载类的时候执行,且仅执行一次
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
两个对象“abc”在常量池内。new String 在堆内。
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
一个对象“abc”在常量池中
作者: 李嘉福    时间: 2018-12-9 22:56
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型;
字符串的内容是永不可变的,效果上相当于char[ ]字符数组,底层原理是byte[ ] 字节数组去储存每个字符的.

2.什么情况下会用到Static关键字?
被Static修饰的成员变量可以不用创建对象的情况下进行修改;
当外部用类访问某个成员方法的时候可以不用对象去访问,可以用static修饰该方法.

3.静态代码块会在什么时候执行?
当第一次用到本类时,静态代码块执行唯一一次.

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

String s = new String("abc"):创建了两个对象,new在内存中的堆内存里,abc在堆中的字符串常量池里;
String s = "abc";创建了一个对象,在常量池中创建。





作者: 杨馥榕    时间: 2018-12-10 19:19
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:Srting是引用数据类型,Srting引用类型的特点就是字符串的值被创建之后是不能改变。
2.什么情况下会用到Static关键字?
答:在静态的代码中会运用到static,还有就是我们的代码开头“public staitic void main(){};”main方法中也有运用到,静态会用到static!
3.静态代码块会在什么时候执行?
答:静态代码在只用static的修饰符才会执行,它的位置在类中方法外随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
答:创建了两个字符串,双引号是在堆内存中字符串常量池创建,new是在堆内存中创建。
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:
创建了一个,在堆内存中的字符串的常量池中创建

        
        
   
   

[url=]评分[/url]




作者: 赵烈刚    时间: 2018-12-10 21:26
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
是引用类型;因为字符串的值在创建后不能更改
2.什么情况下会用到Static关键字?
用来一次性的对静态成员变量进行赋值,如果想要方法优先执行也可以用static关键字修饰
3.静态代码块会在什么时候执行?
在被本类调用的时候或者在被其他类调用的时候静态方法和类一起被调用.只会执行一次
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
创建了两个对象,"abc"在字符串常量池当中,new String在堆当中
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
创建了一个对象,在字符串常量池当中

作者: 洪烁铭    时间: 2018-12-10 21:39
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型。每创建一个String,都是创建了一个String类的对象。都是一个地址值(如果直接双引号创建的是保存在一个常量池中)。因此长度不可改变

2.什么情况下会用到Static关键字?
当数据是所有对象共有的,则可以使用static让这个变量或方法为所有对象共享。

3.静态代码块会在什么时候执行?
类出现时就会执行,它优先于对象被执行。且只执行一次。

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
1.创建了两个对象,在堆中和常量池中各创建了一个对象。
2.在常量池中创建了一个对象。


作者: 李群英    时间: 2018-12-10 21:57
本帖最后由 李群英 于 2018-12-10 22:00 编辑

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型。因为字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组,数组长度不可变,所以字符串的长度不可变。
2.什么情况下会用到Static关键字?
用来一次性地对静态成员变量进行赋值。
3.静态代码块会在什么时候执行?
当第一次用到本类时,静态代码块执行唯一的一次,静态内容总是优先于非静态,所以静态代码块比构造方法先执行。

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc");创建了两个对象,new在内存中的堆内存里,"abc"在字符串常量池创建;
String s = "abc"; 创建了一个对象,"abc"在字符串常量池创建。

作者: 黄海兵    时间: 2018-12-11 21:46
1:是引用数据类型。字符串的底层是byte类型的数组,因此其长度不可变
2:当多个对象的成员属性统一时,可以用Static修饰去共享同一个成员属性 避免创建对象是要多次的进行属性设置。
3:随着类的加载执行且只执行一次,优先于main方法和构造方法的执行
4:创建了两个 在对内存常量池创建 new实在对内存中创建
创建了一个 在对内存常量池创建
作者: 艾卡西亚的惊喜    时间: 2018-12-12 11:16
一:String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
1、String属于引用数据类型,因为String是一个类。
2、字符串不变:字符串的值在创建后不能被更改。
二:什么情况下会用到Static关键字?
1、修饰成员变量:在我们平时的使用当中,static最常用的功能就是修饰类的属性和方法,让他们成为类的成员属性和方法,我们通常将用static修饰的成员称为类城阳或者静态成员,其实这是相对对象的属性方法来说。
2、修饰成员方法:static的另一作用,就是修饰成员的方法。相比修饰成员属性,修饰成员方法对于数据的储蓄上面并没有多大的变化,因为我们可以从上面可以看出,方法本来就是存放再累的定义当中。String修饰成员方法最大的作用,就是可以使用“类名·方法”的方式操作方法,避免了先要new出对象的繁琐和资源消耗,我们可能会经常在帮助类中看到它的使用。
3、静态块:在说明static关键字的第三个用法时,我们有必要重新梳理一下一个对象的初始化过程。
4、相比于上面的三种用途,第四种用途可能了解的人就比较少了,但是实际上它很简单,而且在调用类方法时会更方便。
三:静态代码块会在什么时候执行?
随着类的加载二执行,而且只执行一次。
四:String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
1、new String()和“abc”两个对象,new String()是存放“abc”的指针,存放在堆中;“abc”存放在栈中。
2、创建了一个对象“abc”。

作者: 李柏刚    时间: 2018-12-12 11:53
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
   String类是字符串引用类型,因为字符串的效果相当于char[]字符的数组,而每个字符的底层原理是都是由byte[]字节数组,所以它是常量,自然长度不可改变。

2.什么情况下会用到Static关键字?
当某个成员变量的属性是共同拥有并且相同的情况下,就可以用Static进行修饰,共享该属性,不用逐个赋值。

3.静态代码块会在什么时候执行?
静态代码在所属类中,会优先于非静态先进栈执行,并且只执行一次

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   创建了几个对象,分别在内存中的哪个区域创建?
   String s=new String("abc");创建了两个对象,一个是对象 s ,存在方法区;一个是 字符串“abc",存在堆内存常量池中。
String s = "abc"; 创建了一个对象,存在堆内存常量池中。









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