黑马程序员技术交流社区

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

作者: 厦门校区    时间: 2018-7-31 21:06
标题: 【厦门JavaEE基础三期-每日总结】String类、static、Arrays类、Math类

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

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

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

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
作者: liebstch    时间: 2018-7-31 21:19
陈建秋
1.String类是应用数据类型,因为字符串的底层是字符数组,数组的长度是不可变的。
2.单某个数据需要,共享给所有对象时,可以用Static修饰。
3静态代码块会在实例化对象的时候执行。
4.(1)创建了2个对象,分别在字符串产量池中,和堆内存中。
   (2)创建了一个对象,存放在字符串常量池中。
作者: sulaymanfan    时间: 2018-7-31 21:19
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";创建了一个对象, 在堆内存中.





作者: 李志超    时间: 2018-7-31 21:19


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

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

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

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
两个;都是在堆中;
1;堆中;
作者: 丶黑白    时间: 2018-7-31 21:20
余志斌
1.引用型。字符串长度是个常量,不可改变。
2需要共享、绑定数据的时候。
3加载类的时候。
4 1个,在堆内存中
   1个,在堆内存的常量池中。
作者: weimengchao    时间: 2018-7-31 21:22
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型   底层是字符数组,数组长度不可改变

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

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

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
两个  字符串常量池  栈内存
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
一个,在字符串常量池
作者: 郑颖锋    时间: 2018-7-31 21:23
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"创建了一个对象,在内存中的堆内存的字符串常量池中
作者: 练志成    时间: 2018-7-31 21:24


1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用型,字符串不可改变。
2.什么情况下会用到Static关键字?
执行唯一一次就可以的情况下

3.静态代码块会在什么时候执行?
调用类的时候一起执行
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
一个字符串,堆中,一个,字符串的常量池中
作者: wzewsb    时间: 2018-7-31 21:25
1.String是引用数据类型,因为是对象而不是基本数据类型.为不可变对象,一旦被创建,就不能修改它的值.对已存在的String对象的修改都是重新创建1个新的对象,然后把新的值保存进去
2.共享数据的时候,修饰成员变量,修饰成员方法,修饰代码块会用到static关键字
3..当调用一个类的静态变量时,这个类中的静态代码块会执行。
当调用一个 类的静态方法时,这个类中的静态代码块会执行。
当创建一个 类的一个实例时,这个类中的静态代码块、非静态代码块(也叫构造代码块)、创建实例的相应的构造方法都会执行。
4.创建2个对象,在字符串常量池和字符串对象创建。第二个创建了一个。存在字符串常量池
作者: 张剑猛    时间: 2018-7-31 21:26
1、字符串是引用类型,字符串的值在创建后不能被更改,所以长度不可变
2、共享数据的时候用到static
3、类运行的时候运行静代码块
4、3个,String s 在栈中创建,byte[]和String对象在堆中创建;
3个,String s 在栈中创建,byte[]和String对象在堆中创建,其中String对象在字符串常量池创建

作者: 林靖    时间: 2018-7-31 21:26
1.引用数据类型;因为这是字符串的固有属性
2.创建静态方法、静态变量、静态代码块
3.被调用的时候执行,且有优先级
4.1.创建了一个对象,存在于堆中
   2.创建了一个对象,存在于String常量池中

作者: Michcale    时间: 2018-7-31 21:26
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"创建了一个对象.在堆中的常量池中创建,


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

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

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

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

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

作者: 刘海杰    时间: 2018-7-31 21:33
1、引用类型,字符串在堆中的常量池有固定的地址
2、类中变量为共享数据,成员方法需要被调用时
3、类加载时,同时执行,有且只有一次。
4、2个,堆内存、常量池;1个,常量池

作者: 赖良峰    时间: 2018-7-31 21:41
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?引用数据类型    字符串是常量,常量一旦创建不可改变

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

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

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

一个对象 s  在栈内存中

作者: yangshixian    时间: 2018-7-31 21:41
本帖最后由 yangshixian 于 2018-7-31 21:43 编辑

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

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


杨式贤


作者: 李伟javaee03    时间: 2018-7-31 21:44
1.        String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型
字符串储存在堆中的常量池中,重新赋值只是重新创建,原字符串长度不变
2.什么情况下会用到Static关键字?
在类中创建成员变量和成员方法的时候,里面的内容是需要共享的,这时可以用到static关键字.
3.静态代码块会在什么时候执行?
当第一次来到本类时,静态代码块执行唯一的一次
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
创建了2个对象,存储在堆内存数据中.
创建了1个对象,存储在字符串池中.

作者: 小悦悦    时间: 2018-7-31 21:45
1.String类是引用数据类型.因为字符串每次更改只是地址值变了,原来的字符串并没有变
2.要共用类的时候
3.和类同时加载

4.一个,在堆当中;
一个,常量池。
--李翔。
作者: 傅海展    时间: 2018-7-31 21:47
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型;字符串在定义后不能改变。
2.什么情况下会用到Static关键字?
共享数据。
3.静态代码块会在什么时候执行?
第一次用到本类时,静态代码块执行唯一的一次。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
2个,一个在字符串产量池中,一个在堆中;1个,在字符串产量池中
作者: 陈锦祥    时间: 2018-7-31 21:47
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
   引用数据   字符串在内存建立时 会进入常量池
2.什么情况下会用到Static关键字?
  当需要成员变量要被共享时,或者成员方法需要用类名来调用时,
3.静态代码块会在什么时候执行?  当第一次用到本类是,静态代码块执行唯一一次。

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

1个对象   “abc”在常量池中

作者: 罗荣贵    时间: 2018-7-31 21:47
1.String是引用数据类型,字符串的基础数据放在字节码数组中,数组创建后,长度不会变
2.对象要公用的成员变量和成员方法用这个关键字修饰
3.静态代码块在类加载进方法区的时候执行
4.有两个对象,“abc”在堆中常量池创建,new出的对象在堆中,不在常量池内。创建一个对象,在堆中常量池创建

作者: 林嘉志    时间: 2018-7-31 21:48
1、String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型,因为创建的字符串是常量,常量不可变
2、什么情况下会用到Static关键字?
创建类变量和类方法的时候,用Static修饰成员方法和成员变量
3、静态代码块会在什么时候执行?
随着类的加载而执行且执行一次,优先于main方法和构造方法的执行
4、String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
一、一个,在堆中创建
二、一个,在堆中的字符串常量池中创建

作者: 谢君昇    时间: 2018-7-31 21:50
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型。字符串是常量一旦创建永不更改
2.什么情况下会用到Static关键字?
当需要数据共享时
3.静态代码块会在什么时候执行?
跟类一同执行
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
创建了一个对象,在堆内
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
创建了一个对象,在堆中字符常量池中

作者: 黄艺纯    时间: 2018-7-31 21:51
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

引用类型。
因为字符串常量池。


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

1.静态变量:
当分析对象中所具备的成员变量的值都是相同的。这时这个成员就可以被静态修饰。
只要是数据在对象中都是不同的,就是对象的特有数据,必须存储在对象中,是非静态的。
如果是相同的数据,对象不需要做修改,只需要使用即可,不需要存储在对象中,是静态的。

2.静态函数。
函数是否用静态修饰,就参考一点,就是该函数功能是否有访问到对象中特有的数据。
简单来说,从源代码看,该功能是否需要访问非静态的成员变量,如果需要,该功能就是非静态的。如果不需要,就可以将该功能定义成静态的。当然,也可以定义成非静态,但是非静态需要被对象调用,而仅创建对象是没有意义的。
3.静态代码块。
随着类的调用或创建实例而执行,而且只执行一次。
作用:
用于给类进行初始化。

3.静态代码块会在什么时候执行?
随着类的调用或创建实例而执行,而且只执行一次。

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

一个。在堆内存的字符串常量池中。

作者: 冰是睡着的水    时间: 2018-7-31 21:52
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String类是引用数据类型,因为每个字符串在堆中的常量池有固定的地址,每次更改都会生成一个新的地址值,所以不可更改。
2.什么情况下会用到Static关键字?
答:需要共享变量或者方法时会用到Static关键字。
3.静态代码块会在什么时候执行?
答:和类同时执行。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
 String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:一个。在堆中创建。1个,在堆中的常量池创建。
作者: 吴鑫佳    时间: 2018-7-31 21:52
1、String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用类型,每个字符串都有固定的地址,更改字符串,实际更改的是对应的地址,字符串本身并没有消失和改变,所以字符串的长度也是固定的。
2.什么情况下会用到Static关键字?
所有的对象共享同一数据的时候
3.静态代码块会在什么时候执行?
跟类的加载同时进行
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建
一个对象,在堆中生成的,另一句也只产生一个对象,在堆中的常量池中
作者: 小鱼七    时间: 2018-7-31 21:54


1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
是引用类型,字符串在堆中欧对应的地址值,地址值不变,字符串也不会变。
2.什么情况下会用到Static关键字?
在类的每个对象都有相同的属性时,直接用类名调用成员方法时
3.静态代码块会在什么时候执行?
在第一次用到本类时
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
1、字符串创建了2个对象,左边的在栈中创建,右边在堆内存中创建
2、创建了1个对象,s在栈中,"abc"在堆中
作者: 苏华琛    时间: 2018-7-31 21:55

1.String是引用数据类型,因为是对象而不是基本数据类型.为不可变对象,一旦被创建,就不能修改它的值.对已存在的String对象的修改都是重新创建1个新的对象,然后把新的值保存进去
2.共享数据的时候,修饰成员变量,修饰成员方法,修饰代码块会用到static关键字
3..当调用一个类的静态变量时,这个类中的静态代码块会执行。
当调用一个 类的静态方法时,这个类中的静态代码块会执行。
当创建一个 类的一个实例时,这个类中的静态代码块、非静态代码块(也叫构造代码块)、创建实例的相应的构造方法都会执行。
4.①创建2个对象,在字符串常量池和字符串对象创建。
②第二个创建了一个。存在字符串常量池
作者: MJ11    时间: 2018-7-31 21:55
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
   String类是引用数据类型。String的底层是靠字符数组实现的,而数字的长度是固定不变的
2.什么情况下会用到Static关键字?
   共享数据,修饰成员变量与成员方法的时候会用到。
3.静态代码块会在什么时候执行?
当调用一个类的静态变量与静态方法时,静态代码块会执行,随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

创建了两个对象,在内存中的字符串常量池与字符串对象中进行创建
创建了一个对象,在字符串常量池中创建。

田浪

作者: 舟sir    时间: 2018-7-31 22:04


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

引用数据类型;
因为在字符常量池中,属于常量

2.什么情况下会用到Static关键字?
数据共享的时候,想在本类中直接调用的时候, static要调用static的时候,用来一次性地对成员变量进行赋值;


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

所在类第一次使用的时候会执行,且只执行唯一的一次;

4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
   
   构造方法创建了一个对象,在堆中储存字符串常量和对象地址两个储存
   直接赋值创建一个对象,在字符串常量池中储存
   
作者: 仰望`星空    时间: 2018-8-1 00:02
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
--》String 类是引用类型,因为它是常量,长度不可改变

2.什么情况下会用到Static关键字?   --》当本类中数据需要共享时可使用Static关键字

3.静态代码块会在什么时候执行?   --》随类的加载而生成

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

作者: 郭生发    时间: 2018-8-1 01:01
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
        String类是引用数据类型。
        因为创建字符串会在常量池中,字符在内存中,底层是以数组的形式保存的,数组的长度不可变,所以字符串的长度不可变。

2.什么情况下会用到Static关键字?
        多个对象拥有相同的成员变量用static修饰可以共享。
        用static修饰的方法可不创建对象也能调用。

3.静态代码块会在什么时候执行?
        第一次加载类是执行唯一的一次。
4.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
创建了二个对象,分别在常量池中和堆中。
创建了一个对象,在常量池中。
作者: ZNBran    时间: 2018-8-2 19:12
1.String类是引用数据类型,字符串底层是字符数组而数组长度固定不变。
2.被static修饰的数据可以共享给所有对象
3.静态代码块跟随类加载一起执行
4.2个对象一个s在堆内存中,“abc”在字符串常量池中
   1个对象s在堆内存中
作者: 沈智桂    时间: 2018-8-3 00:41

1.String类是应用数据类型,因为字符串的底层是字符数组,数组的长度是不可变的。
2.单某个数据需要,共享给所有对象时,可以用Static修饰。
3静态代码块会在实例化对象的时候执行。
4.(1)创建了2个对象,分别在字符串产量池中,和堆内存中。
   (2)创建了一个对象,存放在字符串常量池中。
作者: zouyitao    时间: 2018-8-3 21:29
邹毅涛
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
  String是引用数据类型,字符串创建后在字符串常量池,不可改变
2.什么情况下会用到Static关键字?
  当数据共享时,不仅只作用于一个方法时,用Static关键字。
3.静态代码块会在什么时候执行?
  静态代码块在加载class文件时加载。

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




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