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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 wyl530274554 于 2012-6-12 10:48 编辑

  • 毕老师视频里:
    1、堆:对象数据,保持对原类的引用(即方法区中的类结构的引用?)
    2、栈:局部变量的值(基本数据类型)、引用(引用数据类型)(即对象地址)
    3、方法区:类结构(属性和方法),类静态成员
    4、字符串池:字符串常量


1、<已解决>请问System.out.println("haha");     这个字符串"haha"是不是存放在字符串池里?还在在方法区保留着?<已解决>
        答: 存放于字符串池内。
2、<已解决> fianl int a = 4; (假如是在方法里定义的)
        final修饰的变量是一个常量,只能被赋值一次
        那它存在内存的哪个位置呢? ?<已解决>
        答:方法被加载后,a存在于栈中,只不过这个变量的值不能被改变;方法结束,a随之消失。





评分

参与人数 1黑马币 +20 收起 理由
黄奕豪 + 20 赞一个!

查看全部评分

3 个回复

倒序浏览
字符串“haha”还是在存放在字符串池里。“haha”字符串常量的值是一个指向“haha”字符串中第一个字符h的指针常量,System.out.println("haha")中只是把指向"haha"的指针常量传递到方法中了,java编译器会在字符串池中保存“haha”这个字符串中所有字符。需要补充的是当一个字符串常量出现在表达式中,它的值是个指针常量。希望对你有帮助
回复 使用道具 举报
刘煜 发表于 2012-6-9 21:52
字符串“haha”还是在存放在字符串池里。“haha”字符串常量的值是一个指向“haha”字符串中第一个字符h的 ...

谢谢
就是说我们用到的都是指针常量,指向字符串池里的数据?

final int i =4;
这个东西是不是也在字符串池里存着?
回复 使用道具 举报
wyl530274554 发表于 2012-6-9 22:42
谢谢
就是说我们用到的都是指针常量,指向字符串池里的数据?

肯定不是了,Java虚拟机的字符串池,保存着几乎所有的字符串对象。字符串表达式总是指向字符串池中的一个对象。字符串池是有String类维护的,final int i = 4中i是int类型,肯定不是在字符串池里存放着。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马