java 数组内存分配
//静态初始化数组:方法一Stringdogs[]=newString[]{"Tom","Sam","Mimi"};方法二Stringdogs[]={"Tom","Sam...
//静态初始化数组:方法一
String dogs[] = new String[] {
"Tom","Sam","Mimi" };
方法二
String dogs[] = { "Tom","Sam","Mimi" };
他们的内存分配情况是怎样的呢?
能不能这样写呢: String dogs[]=null; dogs={“haha”}; 展开
String dogs[] = new String[] {
"Tom","Sam","Mimi" };
方法二
String dogs[] = { "Tom","Sam","Mimi" };
他们的内存分配情况是怎样的呢?
能不能这样写呢: String dogs[]=null; dogs={“haha”}; 展开
展开全部
String dogs[] = new String[] {
"Tom","Sam","Mimi" };
dogs是在内存栈区声明的,new String 是在堆区去声明的 dogs指new String的内存地址
String dogs[] = { "Tom","Sam","Mimi" };
直接在栈区实例化数组对象
如果写成 String dogs[]=null;
dogs={“haha”}
栈区只有声明 并为实例化 所以在并无法直接赋值 ,只能直接附属组
追问
我很好奇你这个图片是怎么做的?我居然还可以复制里面的内容。。
展开全部
你好
这样写是不行的,String dogs[]=null;实现的是在栈内存中开辟空间,用来保存数组名称,然后通过new关键字在堆内存中开辟内存,才能进行保存数据。
这样写是不行的,String dogs[]=null;实现的是在栈内存中开辟空间,用来保存数组名称,然后通过new关键字在堆内存中开辟内存,才能进行保存数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有new的情况是在堆中分配内存,没有就是做常量处理,比如String s1 = "abc"; String s2 = "abc";那么s1==s2的结果是true的。
至于你问的能不能那么写,自己试试就知道了喽。
至于你问的能不能那么写,自己试试就知道了喽。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询