A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

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

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

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

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

26 个回复

正序浏览
林焕


1、String是引用数据类型,因为String底层是字符数组组成的所以长度是不可以改变的

2、在static修饰成员变量时,表示共有属性,就可以使用static。

3、随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。

4、String s = new String("abc"):创建了两个对象,s在栈内存中,"abc"在堆内存中;
   String s = "abc":创建了一个对象,在堆内存中;
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型,因为字符串源码是数组,所以不可变。

2.什么情况下会用到Static关键字?
在多个对象有共同属性时,或对象需要初始化功能时。

3.静态代码块会在什么时候执行?
优先于构造方法执行。

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc");创建了两个:new String("abc")与"abc"都在堆中。
String s = "abc";创建了一个对象,在堆中的常量池中。
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型,因为字符串源码是数组,所以不可变。

2.什么情况下会用到Static关键字?
在多个对象有共同属性时,或对象需要初始化功能时。

3.静态代码块会在什么时候执行?
优先于构造方法执行。

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc");创建了两个:new String("abc")与"abc"都在堆中。
String s = "abc";创建了一个对象,在堆中的常量池中。
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String 类属于引用数据类型,字符串的值再创建后不能更改,故长度不可变;
2.什么情况下会用到Static关键字?
在一个类中,需要每个对象都能共享一个类变量的值时,就需要用到Static关键字来修饰成员变量;
3.静态代码块会在什么时候执行?
随着类的加载而执行,但是有且只能执行一次,并且优先于main方法和构造方法执行;
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
   String s = new String("abc")创建了两个对象,其中"abc"存放于字符串常量池中,而new出来的存放于堆内存中;
   String s = "abc";建立了一个对象,存放于字符串常量池中。
回复 使用道具 举报

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

2.什么情况下会用到Static关键字?
类中属性 及方法 需要共享时
3.静态代码块会在什么时候执行?
类加载的时候
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?

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

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
回复 使用道具 举报
王宇晨
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
        String是引用引用数据类型,因为字符串是常量,常量长度不可以改变。
2.什么情况下会用到Static关键字?
        在创建公共的成员变量、静态方法和静态代码块的时候会用到static关键字
3.静态代码块会在什么时候执行?
会在加载本类的时候执行
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc")创建了两个对象,“abc”在字符串常量池中,new出来的在堆内存中。
String s = "abc"创建一个对象,在字符串常量池中

回复 使用道具 举报
1.        String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String 是引用类型,
String是后面的对象是不可改变的.

2.什么情况下会用到Static关键字?
当 static 修饰成员变量时,该类的每个对象都共享同一个类变量的值的时候.
3.静态代码块会在什么时候执行?
随类的加载而执行,且只执行一次。

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




回复 使用道具 举报
1.String是引用数据类型,因为String底层是字符数组组成的所以长度是不可以改变的。

2.当多个数据有共同属性的时候就可以Static关键字把这个属性共享出来。

3.静态代码块会在类的加载的时候执行优先于方法先执行。

4.new的会在堆当中,"abc"会存在方法区的字符串常量池。
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型。
我们看到的字符串其实是对象,里面存储的是地址值。字符串的底层是由字节码数组组成的,一旦被创建,是不能进行更改的。我们进行的字符串变量的更改,其实是地址值的更改。而已经生成的字符串是依然存在,不会更改的。

2.什么情况下会用到Static关键字?
当在程序初始化时,有代码块需要优先加载使用的,会用到static关键字

3.静态代码块会在什么时候执行?
会在类加载前期优先运行

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





回复 使用道具 举报
刘慧梅1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类的引用数据类型。
因为字符串是常量,存放在常量池中,所以字符串长度不可变。
2.什么情况下会用到Static关键字?
修饰成员方法以及成员变量时
3.静态代码块会在什么时候执行?
首次用到本类时,将会执行静态代码块
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

String s = new String("abc"),创建了两个对象。“abc”存放在字符串常量池中,new出来的存在在堆内存中
String s = new String("abc"),创建了一个对象,存放在字符串常量池中
回复 使用道具 举报

张亚康

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

Striing是引用类型;字符串一旦被创建是将地址值保存在堆内存中,
所以长度不可改变

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

static修饰成员变量,创建对象时只要一开始就被赋值,后边再创建对象时就不需要再对此
再赋值,修饰方法时调用一般建议使用: 类名称.方法名;静态代码块

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

随着方法被执行而执行,且只会执行一次

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

String s= new String("abc")一共创建了三个对象,两个在堆内存,一个在常量池
  String s = "abc"一共创建了两个对象,一个在堆内存,一个在常量池
回复 使用道具 举报
贾宗虎
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
     引用数据类型
     因为字符串的底层是byte数组,是常量.

2.什么情况下会用到Static关键字?
     比较典型的是,用来一次性的给静态成员变量赋值
3.静态代码块会在什么时候执行?
     优于非静态代码执行,和本类一起执行

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




回复 使用道具 举报
黄希

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
        String类是引用数据类型。
        字符串的底层是字节数组,数组的长度不可变。
       
2.什么情况下会用到Static关键字?
        多个对象共享同一份数据时,可以使用static关键字来修饰成员变量或成员方法。静态成员不再属于对象,而属于类。

3.静态代码块会在什么时候执行?
        静态内容优先于非静态,静态代码块比构造方法先执行。

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

回复 使用道具 举报

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型。
  字符串的值在创建后不能被改变。
2.什么情况下会用到Static关键字?
用来修饰成员变量和成员方法,当static修饰成员变量时,该变量成为类变量。该类的每个对象都共享同一个值   
3.静态代码块会在什么时候执行?
定义在成员位置,使用static修饰的代码块。优先于main方法和其他方法的执行

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc")创建了2个对象,存储在堆中.
String s = "abc";创建了1个对象,存储在字符串池中.
回复 使用道具 举报
1.引用数据类型;因为定义了一个字符串就存储在 内存中了,改变长度是形成一个新的字符串再存于内存中。
2.当成员变量需要公用时;
3.静态代码块会随着类的执行而执行,会先于对象。
4.一个;String s 在栈中,new String在堆中,“abc”在堆中的常量池中。
    无;String s 在栈中,“abc”在在堆中的常量池中。
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型,因为字符串的底层是字符数组,数组的长度一旦创建不能改变。

2.什么情况下会用到Static关键字?
想要给类设置公共成员变量或者成员方法,可以通过类名点直接调用。还有写静态代码块的时候用到。

3.静态代码块会在什么时候执行?
静态代码块会在类加载的时候运行唯一一次。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
【1】两个对象,第一个"abc"是创建在堆中的常量池,第二个s在栈中指向"abc"地址。
【2】一个对象s指向在常量池中创建好的"abc"
回复 使用道具 举报

王博

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
是引用数据类型,字符串是一个常量,创建了就不可改变


2.什么情况下会用到Static关键字?
创建公共的成员变量,静态方法,静态代码块的时候


3.静态代码块会在什么时候执行?
创建对象的时候会执行,且只执行一次


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

回复 使用道具 举报
吴佳更
1.是引用数据类型,因为被创建后就不能被改变,源码的规定。
2. 需要修饰成员变量和成员方法。修饰后是属于类的,对象可以共享。
3.类的加载时候执行有且只有一次。
4.2个,“abc”在堆中,s指向“abc",在栈中。
1个,在堆中。字符串常量池里面。
回复 使用道具 举报

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

2.什么情况下会用到Static关键字?
修饰与对象无关的变量和不需要创建对象的方法

3.静态代码块会在什么时候执行?
        随着类加载执行 优先于方法

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

String s = new String("abc");创建了2个对象,分别在内存的堆内存和字符串池
String s = "abc" 创建了一个对象  字符串池
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马