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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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

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

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

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

37 个回复

倒序浏览
陈建秋
1.String类是应用数据类型,因为字符串的底层是字符数组,数组的长度是不可变的。
2.单某个数据需要,共享给所有对象时,可以用Static修饰。
3静态代码块会在实例化对象的时候执行。
4.(1)创建了2个对象,分别在字符串产量池中,和堆内存中。
   (2)创建了一个对象,存放在字符串常量池中。
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
   String类是引用数据类型, 因为字符串创建后在常量池中,
   String类是final类故不可以继承,也就意味着String引用的字符串内容是不能被修改。
   String有两种实例化方式:
   (1)直接赋值(例中,String str = "Hello";就是直接赋值实例化了)
   (2)使用new调用构造方法完成实例化;
2.什么情况下会用到Static关键字?
  当需要成员变量要被共享时,或者成员方法需要用类名来调用时,
3.静态代码块会在什么时候执行?
  静态代码块会随着类的加载而加载,当第一次创建对象时就会执行静态代码块,而且只执行一次.
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
  String s = new String("abc"); 如果常量池中没有abc那就创建两对象,如果有就创建一个对象, new Sting在堆内存中的常量池中, 对象s在栈内存中.
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
    String s = "abc";创建了一个对象, 在堆内存中.




回复 使用道具 举报


1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用;每个字符串在堆中的常量池有固定的地址,每次更改都会生成一个新的地址值,所以不可更改。

2.什么情况下会用到Static关键字?
类中变量为共享数据,使用的方法只允许执行一次的情况。

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

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
两个;都是在堆中;
1;堆中;
回复 使用道具 举报
余志斌
1.引用型。字符串长度是个常量,不可改变。
2需要共享、绑定数据的时候。
3加载类的时候。
4 1个,在堆内存中
   1个,在堆内存的常量池中。
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型   底层是字符数组,数组长度不可改变

2.什么情况下会用到Static关键字?
对静态成员变量进行赋值
静态成员变量数据进行共享
将成员方法不用类实例化对象就可调用

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

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
两个  字符串常量池  栈内存
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
一个,在字符串常量池
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
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类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用型,字符串不可改变。
2.什么情况下会用到Static关键字?
执行唯一一次就可以的情况下

3.静态代码块会在什么时候执行?
调用类的时候一起执行
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
一个字符串,堆中,一个,字符串的常量池中
回复 使用道具 举报
wzewsb 初级黑马 2018-7-31 21:25:02
9#
1.String是引用数据类型,因为是对象而不是基本数据类型.为不可变对象,一旦被创建,就不能修改它的值.对已存在的String对象的修改都是重新创建1个新的对象,然后把新的值保存进去
2.共享数据的时候,修饰成员变量,修饰成员方法,修饰代码块会用到static关键字
3..当调用一个类的静态变量时,这个类中的静态代码块会执行。
当调用一个 类的静态方法时,这个类中的静态代码块会执行。
当创建一个 类的一个实例时,这个类中的静态代码块、非静态代码块(也叫构造代码块)、创建实例的相应的构造方法都会执行。
4.创建2个对象,在字符串常量池和字符串对象创建。第二个创建了一个。存在字符串常量池
回复 使用道具 举报
1、字符串是引用类型,字符串的值在创建后不能被更改,所以长度不可变
2、共享数据的时候用到static
3、类运行的时候运行静代码块
4、3个,String s 在栈中创建,byte[]和String对象在堆中创建;
3个,String s 在栈中创建,byte[]和String对象在堆中创建,其中String对象在字符串常量池创建
回复 使用道具 举报
1.引用数据类型;因为这是字符串的固有属性
2.创建静态方法、静态变量、静态代码块
3.被调用的时候执行,且有优先级
4.1.创建了一个对象,存在于堆中
   2.创建了一个对象,存在于String常量池中
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型.因为字符串是String类的对象,因为字符串是String类的对象,传递的是底层的byte[]数组的集合.,如果长度改变.那么byte[]数组也要发生相应的改变,会产生新的地址.所以字符串的长度是不可变的,
2.什么情况下会用到Static关键字?
在定义静态变量,静态方法,静态代码块的时候要用到
3.静态代码块会在什么时候执行?
随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc")创建了一个对象.在堆中创建.
String s = "abc"创建了一个对象.在堆中的常量池中创建,

回复 使用道具 举报
1.String是引用类型 每个字符串在堆中的常量池有固定的地址,每次更改都会生成一个新的地址值,所以不可更改
2.使用类变量和类方法的时候
3.随着类的加载而执行且执行一次
4.1个对象 在堆内存中创建
   1个对象 在堆内存中的常量池中创建
回复 使用道具 举报
本帖最后由 张煜兴 于 2018-7-31 21:31 编辑

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?  String类是引用类型,字符串创建就是从堆里的字符常量池里拿出一个地址在堆里创建固定长度的字符串,一旦改变,就是新的字符串了,原来的字符串还是原来的样子

2.什么情况下会用到Static关键字?
  当使用类时,遇到共用的参数或方法时,会用到Static

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

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
  创建了两个对象s,在内存的堆里的字符常量池和堆内存里
  创建了一个对象s,在内存的堆里的字符常量池里
回复 使用道具 举报
1、引用类型,字符串在堆中的常量池有固定的地址
2、类中变量为共享数据,成员方法需要被调用时
3、类加载时,同时执行,有且只有一次。
4、2个,堆内存、常量池;1个,常量池
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?引用数据类型    字符串是常量,常量一旦创建不可改变

2.什么情况下会用到Static关键字?
共享数据的时候

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

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

一个对象 s  在栈内存中
回复 使用道具 举报
本帖最后由 yangshixian 于 2018-7-31 21:43 编辑

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型
因为字符串本身是常量,字符串的内容不可改变,所以字符串的长度不可变
2.什么情况下会用到Static关键字?
一、当创建对象时需要通过静态代码块初始化变量时,会用到static
3.静态代码块会在什么时候执行?
静态代码块在创建对象时加载会执行
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?创建了2个对象 分别在内存中的堆和栈中创建
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

创建了一个对象,在内存中的栈


杨式贤

回复 使用道具 举报
1.        String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型
字符串储存在堆中的常量池中,重新赋值只是重新创建,原字符串长度不变
2.什么情况下会用到Static关键字?
在类中创建成员变量和成员方法的时候,里面的内容是需要共享的,这时可以用到static关键字.
3.静态代码块会在什么时候执行?
当第一次来到本类时,静态代码块执行唯一的一次
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
创建了2个对象,存储在堆内存数据中.
创建了1个对象,存储在字符串池中.
回复 使用道具 举报
1.String类是引用数据类型.因为字符串每次更改只是地址值变了,原来的字符串并没有变
2.要共用类的时候
3.和类同时加载

4.一个,在堆当中;
一个,常量池。
--李翔。
回复 使用道具 举报
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型;字符串在定义后不能改变。
2.什么情况下会用到Static关键字?
共享数据。
3.静态代码块会在什么时候执行?
第一次用到本类时,静态代码块执行唯一的一次。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
2个,一个在字符串产量池中,一个在堆中;1个,在字符串产量池中
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马