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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型,因为字符串是一个常量,所以字符串的长度不可改变
2.什么情况下会用到Static关键字?
需要共享方法共享变量,代码块只需要创建一次的时候
3.静态代码块会在什么时候执行?
类被调用的时候
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc");创建了两次,堆内存和方法区域,
String s = "abc";创建了一次,在栈内存创建
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:
        引用数据类型;
       原因:字符串底层是char数组,而数组在创建之初长度就是固定的,因此字符串的长度是不可变;
2.什么情况下会用到Static关键字?

        当某一类下的每个对象都有一个相同变量时,则可以使用Static将其从属于对象变成属于类使其成为同一类下所有对象的共享;
3.静态代码块会在什么时候执行?
答:
        在首次使用含代码块的类时,代码块会执行唯一一次
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:
       如果两个不是在同一个类中:
                String s = new String("abc"):创建两个对象;                        
                      “abc”放在方法区常量池中;new String 放在堆中;
                String s = "abc":创建一个对象;
                        "abc"放在方法区常量池中;
        如果两个在同一个类中:
                String s = new String("abc")  先写的话:
                        String s = new String("abc"):创建两个对象;
                        String s = "abc":没有创建对象;
                String s = "abc"  先写的话:
                        String s = new String("abc"):创建一个对象;
                        String s = "abc":创建一个对象;
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型,字符串是一个常量,字符串底层是char数组,而数组在创建之初长度就是固定的,因此字符串的长度是不可变;
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类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String是引用数据类型;字符串池在方法区)中是一种特殊的存储区域。当创建一个字符串时,如果字符串已经存在于池中,现有字符串的引用将被退回,而不是创建一个新的对象并返回其引用
2.什么情况下会用到Static关键字?
答:在没有创建对象的情况下来进行调用
3.静态代码块会在什么时候执行?
答:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:String s = new String("abc")创建两个对象,分别存在栈和符串常量池中;String s = "abc"创建一个对象,存在字符串常量池中
回复 使用道具 举报
1、String是引用类型,因为String类型一旦被创建就在堆内存内开辟了一个空间,程序运行期间不可改变。
2、当创建的对象里在对应的类里都有一个共同的属性 就可以用static进行修饰。
3、静态代码块会在第一次用到该类时执行,并且只会执行这一次。后面再次使用该类就不会出现。
4、2个对象,new String()在堆内存内被创建,“abc”在堆内存被创建。
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型
字符串是常量,常量在程序运行期间不可改变

2.什么情况下会用到Static关键字?
当每一个对象都共享一个属性时,这个属性可以用Static关键字修饰。被Static修饰的属性就不仅仅属于对象,而属于类

3.静态代码块会在什么时候执行?
在第一次使用到本类时,会执行一次,而且只执行一次,执行优先度比其他的构造方法高
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

String s = new String("abc");创建的两个对象一个在堆中,一个在字符串常量池中
String s = "abc";创建了一个对象,在字符串常量区中。
回复 使用道具 举报
陈鹏涛
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
     是引用数据类型,字符串是常量
2.什么情况下会用到Static关键字?
    修饰成员变量的情况
    修饰成员方法的情况
3.静态代码块会在什么时候执行?
    定义在成员位置,使用static修饰的代码块{ }。
    位置:类中方法外。 执行:随着类的加载而执行且执行一次,
   优先于main方法和构造方法的执行。

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建两个对象;
                        String s = new String("abc")放在栈中;
                        new String("abc")放在堆中;
        String s = "abc":
                一个对象;
                        放在栈中;
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型
因为字符串的底层构造是byte[]数组,不能改变长度

2.什么情况下会用到Static关键字?
当信息不是某个对象特有的,而是属于类的,用Static

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

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

2.什么情况下会用到Static关键字?
当需要一个可以共享与所有对象的变量或方法时

3.静态代码块会在什么时候执行?
在使用类时, 在构造方法执行之前

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
a.创建了2个对象, 分别在方法区和堆内存中创建,
b.创建了1个对象,在方法区中创建
回复 使用道具 举报

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String类是引用数据类型,字符串是一个常量,字符串底层是char数组,而数组在创建之初长度就是固定的,因此字符串的长度是不可变
2.什么情况下会用到Static关键字?
答:当一个属性属于类而不属于对象时,就可以用到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类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String类是引用数据类型。字符串最底层是byte数组,而数组在创建的时候长度就是固定的,因此字符串的长度不可变;
2.什么情况下会用到Static关键字?
答:static 关键字,可以修饰变量、方法和代码块。当每个对象都共享同一个变量的值,就可以修饰变量;当想让代码块优先于main方法和构造方法的执行,也可以用static修饰;在使用的过程中,其主要目的还是想在不创建对象的情况
下,去调用方法;
3.静态代码块会在什么时候执行?
答:静态代码块随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc"):创建了两个;new String("abc")创建在堆中,"abc"创建在堆中的常量池。
String s = "abc";创建了一个:在堆中的常量池。
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
(1)String类是引用数据类型。
(2)因为字符串是一个常量,一旦创建完成,常量是不可改变的,所以字符串的长度不可变。

2.什么情况下会用到Static关键字?
当用Static关键字修饰时候,可以用来修饰成员变量或者成员方法。而这个时候这个变量或者方法就不单单
属于创建对象而是属于这个类。所有与这类有关可以共享这个变量或者方法。可以通过直接类名称点上修饰的
变量或者方法。

3.静态代码块会在什么时候执行?
当我们在调用静态代码块的这个类时,静态代码块有且仅仅执行一次。

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
(1)创建了两个个对象,分别存在于:,new String在堆内存中被创建,
堆中的字符串常量池中创建了"abc"
(2)创建了两个对象,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"):创建2个对象;在栈中创建了一个变量名为s的字符串对象;在堆里创建了内容为“abc”的对象,不在常量池中,
String s = "abc":创建2个对象;在栈中创建了一个变量名为s的字符串对象;在堆中的字符串常量池里创建一个字符串对象内容为“abc”。
回复 使用道具 举报

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
        引用数据类型;
        因为字符串的值在创建后不能被更改
2.什么情况下会用到Static关键字?
        static可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的;
        当该类的每个对象需要共享同一个成员属性的值时,可以用static修饰
3.静态代码块会在什么时候执行?
        在该类及其子类第一次加载时执行且执行一次
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
        String s = new String("abc");创建一个对象
        栈中为s开辟空间,大小为一个句柄大小或者说地址大小,指向堆中对象
        堆中而不在常量池中,开一个句柄大小的空间,指向堆中一个字节数组
        堆中开辟一个字节数组空间
        
        String s = "abc";创建一个对象
        栈中为s开辟空间,大小为一个句柄大小或者说地址大小,指向堆中的常量池中对象
        堆中的常量池中,开一个句柄大小的空间,指向堆中一个字节数组
        堆中开辟一个字节数组空间。
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型,因为字符串是常量;字符串的内容永不可变,字符串效果上相当于是char[]字符数组,数组的长度是不可变的。

2.什么情况下会用到Static关键字?
当想用的静态方法不属于对象而是属于类的时候会用到。需要共享变量或者共享方法的时候会用到

3.静态代码块会在什么时候执行?
静态代码块会在调用本类的时候执行,也只能执行唯一的一次。而且静态代码块会比构造更早执行

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

回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型;
因为字符串的长度在创建后不能被更改。
2.什么情况下会用到Static关键字?
static可以用来修饰成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不用创建对象来。

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

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类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

答:是引用数据类型,字符串的底层是byte类型的数组,因此其长度不可变。

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

答:在不创建对象的情况下 想去调用方法,可以直接用类名.方法名或者变量名,或者需要对对类中的数据进行初始化的时候可以用到

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

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

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

答:(1)String s = new String("abc");这句代码创建了3个对象,
           1.在栈内存中建立了一个String s,
           2.在堆内存中新建了一个new String,
           3.在堆内存的常量池生成一个abc;
       (2)String s = "abc";这句代码创建了2个对象,
           1.在栈内存中建立了一个String s,
           3.在堆内存的常量池生成一个abc。
回复 使用道具 举报
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"创建了一个,在堆内存中的字符串的常量池中。
回复 使用道具 举报
1.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是引用数据类型。因为String类型的底层实现原理是字符数组,数组一旦创建就长度就固定了。
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个对象。在堆内存中创建。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马