java数据段 静态区_回顾一下基础,关于栈与堆,常量池,静态区
先來張簡單的圖:
1.jpg
------------------分割------------------------
棧內(nèi)存:
1.操作比較快速.但是為私有.
2.線程之間不共享.所以存放一些基本數(shù)據(jù)類型,局部變量(方法走完就回收了),
3.對于引用數(shù)據(jù)類型的地址引用.
堆內(nèi)存:
1.new出來的實例
2.成員變量的值(如果是基本數(shù)據(jù)類型,比如: int).個人感覺是包裝成了引用數(shù)據(jù)類型(Integer,Float之類的).
3.線程間可以共享數(shù)據(jù),不安全.
4.通過gc回收釋放內(nèi)存
靜態(tài)區(qū):
1.存放static修飾的各種.
2.一般是不會被回收的,所以使用static要特別注意,如果只是staitc修飾的只是一些基本數(shù)據(jù)類型,那么無所謂.如果是引用數(shù)據(jù)類型就要注意了.適時釋放引用.
3.隨著進(jìn)程的結(jié)束而結(jié)束.
常量池
1.存放了基本數(shù)據(jù)類型的值.表
2.String表.比如String s ="123ab123",創(chuàng)建這個String會先在常量池的表里面找,如果有就直接引用,如果沒有就會在常量池創(chuàng)建添加到表并引用.
-----------------------分割------------------------------
實戰(zhàn)場景
1.adapter的數(shù)據(jù)刷新:
public class MainActivity extends AppCompatActivity {
...//無關(guān)代碼省略
private List data;//數(shù)據(jù)
private MyAdapter adapter;//listview的adapter
...
public void init(){
adapter = new MyAdapter (data);
}
public void loadData(){
//請求接口;
//請求成功;
//得到新的list數(shù)據(jù)newData;
data = newData;
adapter.notifyDataSetChanged();//通知adapter.
}
}
public class MyAdapter extends BaseAdapter{
private List adapterData;
public MyAdapter (List list){
adapterData = list;
}
......
}
上面這段代碼,會發(fā)現(xiàn)刷新listview不成功.
如果把上面的代碼稍微改一下.
public class MainActivity extends AppCompatActivity {
...//無關(guān)代碼省略
private List data;//數(shù)據(jù)
private MyAdapter adapter;//listview的adapter
...
public void init(){
adapter = new MyAdapter (data);
}
public void loadData(){
//請求接口;
//請求成功;
//得到新的list數(shù)據(jù)newData;
data = newData;
adapter.notifyDataSetChanged();//通知adapter.
}
public class MyAdapter extends BaseAdapter{
......
public int getItemCount(){
return data==null?0:data.size;
}
}
}
把MyAdapter 寫成MainActivity的內(nèi)部類.就能刷新了.
二者的區(qū)別,仔細(xì)想一下就明白了,就是操作的地址值不同對象不同而已.
第一段代碼的圖:
2.jpg
第二段的代碼的圖
3.jpg
圖畫的有點搓,哈哈.
--------------------分割線--------------------------
再來個String創(chuàng)建的簡單圖:
4.jpg
望大家指出理解有誤的地方。
~——————————分割————————~
你得喜歡與回復(fù)是我最大的動力— —
總結(jié)
以上是生活随笔為你收集整理的java数据段 静态区_回顾一下基础,关于栈与堆,常量池,静态区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言中for优化,c – 在For循环
- 下一篇: 深圳市收运体系运营管理_华为公司质量管理