java数据段 静态区_回顾一下基础,关于栈与堆,常量池,静态区

先来张简单的图:

a7ac41b57aa3

1.jpg

------------------分割------------------------

栈内存:

1.操作比较快速.但是为私有.

2.线程之间不共享.所以存放一些基本数据类型,局部变量(方法走完就回收了),

3.对于引用数据类型的地址引用.

堆内存:

1.new出来的实例

2.成员变量的值(如果是基本数据类型,比如: int).个人感觉是包装成了引用数据类型(Integer,Float之类的).

3.线程间可以共享数据,不安全.

4.通过gc回收释放内存

静态区:

1.存放static修饰的各种.

2.一般是不会被回收的,所以使用static要特别注意,如果只是staitc修饰的只是一些基本数据类型,那么无所谓.如果是引用数据类型就要注意了.适时释放引用.

3.随着进程的结束而结束.

常量池

1.存放了基本数据类型的值.表

2.String表.比如String s ="123ab123",创建这个String会先在常量池的表里面找,如果有就直接引用,如果没有就会在常量池创建添加到表并引用.

-----------------------分割------------------------------

实战场景

1.adapter的数据刷新:

public class MainActivity extends AppCompatActivity {

...//无关代码省略

private List data;//数据

private MyAdapter adapter;//listview的adapter

...

public void init(){

adapter = new MyAdapter (data);

}

public void loadData(){

//请求接口;

//请求成功;

//得到新的list数据newData;

data = newData;

adapter.notifyDataSetChanged();//通知adapter.

}

}

public class MyAdapter extends BaseAdapter{

private List adapterData;

public MyAdapter (List list){

adapterData = list;

}

......

}

上面这段代码,会发现刷新listview不成功.

如果把上面的代码稍微改一下.

public class MainActivity extends AppCompatActivity {

...//无关代码省略

private List data;//数据

private MyAdapter adapter;//listview的adapter

...

public void init(){

adapter = new MyAdapter (data);

}

public void loadData(){

//请求接口;

//请求成功;

//得到新的list数据newData;

data = newData;

adapter.notifyDataSetChanged();//通知adapter.

}

public class MyAdapter extends BaseAdapter{

......

public int getItemCount(){

return data==null?0:data.size;

}

}

}

把MyAdapter 写成MainActivity的内部类.就能刷新了.

二者的区别,仔细想一下就明白了,就是操作的地址值不同对象不同而已.

第一段代码的图:

a7ac41b57aa3

2.jpg

第二段的代码的图

a7ac41b57aa3

3.jpg

图画的有点搓,哈哈.

--------------------分割线--------------------------

再来个String创建的简单图:

a7ac41b57aa3

4.jpg

望大家指出理解有误的地方。

~——————————分割————————~

你得喜欢与回复是我最大的动力— —

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java项目如何更改路径_Java修改eclipse中web项目的server部署路径问题

和MyEclipse不一样,在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse中的服务器,才能运行Web项目。所以要对Eclipse…

java xpdf 转换成html_java将Word/Excel/PDF文件转换成HTML整理

项目开发过程中,需求涉及到了各种文档转换为HTML或者网页易显示格式,现在将实现方式整理如下:一、使用Jacob转换Word,Excel为HTML“JACOB一个Java-COM中间件.通过这个组件你可以在Java应用程序中调用COM组件和Win32 libraries。”首先下载Jac…

mysql 出现 quot_MYSQL 新版出现 Client does_mysql _ 搞代码

mysql 帮助:A.2.3 Client does not support authentication protocolMySQL 4.1 and up uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older clients. If you upgrade the server to 4.1, attemp…

Java可移动性不强_java地位无可撼动的原因

如今,面对曾经在程序员中被各种新技术掩盖直至堙灭的技术值得怀念。犹如COBOL这当年被老程序员们尊为神器的语言如今也基本没有价值。而Java作为现代程序员的中坚力量在这点上会不会成为下一个COBOL?有关JAVA的技术卖出多少本书已经是一个很久远的记忆了…

php数据回显是什么意思,jquery回显是什么意思

首先来看一下回显是什么意思?在数据提交出现错误的时候, 已填写的信息仍在文本框中, 比如用户登录, 当用户输入错误的密码之后, 用户名仍在文本框, 只是密码框清空。对于一些要填写很多信息的表单, 如果因为一些错误导致已经填写的整个表单信息重新填写, 对于用户非…

Java摩托车汽车轮胎数量,摩托车轮子上的知识,你知道多少?

原标题:摩托车轮子上的知识,你知道多少?摩托车轮子好比人的两条腿,决定了车子跑得远,跑得快和跑得是否安稳。摩友们似乎对轮子的关心不多,因为它是易损件,概念中轮子轮胎出了问题,随便找路边的“风火补胎”…

php配置文件加盐解密,PHP实现支持加盐的图片加密解密

一个简单的图片加解密函数&#xff0c;使用client跑&#xff0c;不要使用浏览器跑话不多说&#xff0c;直接上代码/*** Created by hello.* User: qq 845875470* Date: 2016/4/2* Time: 11:21*/$notice <<为了稳定性&#xff0c;必须在客户端跑格式 &#xff1a;php pat…

Oracle导入dmp文件报12504,ORA-12504:TNS :监听程序在 CONNECT_DATA 中未获得SERVICE_NAME...

使用本地的SQLPlus连接服务器上的Oracle数据库&#xff0c;这是由于本地有安装了Oracle数据库服务&#xff0c;所以才会系统先提示&#xff1a;ORA-12504:TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME再次输入用户名密码系统又提示&#xff1a;ORA-12560: TNS: 协议适配…

linux+有趣的指令,6个有趣的Linux命令(乐趣终端) - 第二部分

在我们过去的以下文章中&#xff0c;我们展示了一些关于Linux的有趣命令的有用文章&#xff0c;这表明Linux并不像看起来那么复杂&#xff0c;如果我们知道如何使用它&#xff0c;就会很有趣。 Linux命令行可以非常容易地完成任何复杂的任务&#xff0c;可以有趣和快乐。有趣的…

dvwa安装包linux,dvwa安裝、配置、使用教程(Linux)

一、搭建LAMP環境二、安裝DVWA2.1 下載dvwa2.2 解壓安裝將下載的應用解壓到apache默認的主目錄/var/www/html&#xff1a;unzip DVWA-master.zip -d /usr/www/html2.3 啟用功能dvwa上的漏洞&#xff0c;需要些刻意的配置才能被利用。訪問&#xff1a;http://172.0.0.2/dvwa如下…

八数码c语言编程深度搜索,广度优先搜索解 八数码, 求意见, 求bug/

已结贴√问题点数&#xff1a;100 回复次数&#xff1a;31广度优先搜索解 , 求意见&#xff0c; 求bug/我得去买票了&#xff0c;....#include #include #include #define NUM 5typedef struct bgMatrix{int v, w;char matrix[NUM][NUM];int pre;}Matrix;typedef struct bgQueu…

linux定时任务每两天执行,Linux定时任务 crontab每秒执行 实现2种方法

linux crontab 命令&#xff0c;最小的执行时间是一分钟&#xff0c; 如果要在小于一分钟执行。就要换个方法来实现&#xff0c;下面分别以两种方法来实现&#xff1a;tolog.phpfile_put_contents(/home/fujieace/php/crontab/run.log, date(Y-m-d H:i:s)."\r\n", FI…

C语言中的标识符以字母或下划线开头,牛逼大神整理的C语言基础知识,你确定你不码下来?...

【【怪兽爱C语言】牛逼大神整理的C语言基础知识&#xff0c;你确定你不码下来&#xff1f;】https://toutiao.com/group/6577344220355363341/?iid15906422033&appexplore_article&timestamp1531501720&tt_fromcopy_link&utm_sourcecopy_link&utm_mediumt…

c语言switch同时比较多个变量,C语言学习if和switch分支选择结构

如何判断一个整数是否为正数计算机同我们一样&#xff0c;也是可以判断大小。在此之前&#xff0c;我们需要先说明在计算机中用来判断两个数关系的符号&#xff0c;即关系运算符。关系运算符号c语言中的关系运算符与数学上学习的有什么不同&#xff1f;image.png关系表达式的值…

c语言字符串升序输出,编写程序将已按升序排好的两个字符串a和b中的字符按升序归并到字符串c中,最后输出”abcdefghijklmnpq”。...

满意答案sjoest2014.08.18采纳率&#xff1a;59% 等级&#xff1a;8已帮助&#xff1a;663人(1)char a[]"acegikm"; a数组没有赋予数组大小&#xff0c;所以它的大小&#xff0c;默认等于赋予的字符串长度等于7&#xff0c;所以当strcat(a,b)时&#xff0c;…

c语言指针化简带分数,c语言带分数四则运算问题!!!要求被调函数,化简.

满意答案Lie囡2013.02.03采纳率&#xff1a;58% 等级&#xff1a;12已帮助&#xff1a;8948人#include long int a,b,c,d,x,y,z;char op;int f1();int f2();main(){printf("shu ru di yi ge shu de fen zi:");scanf("%ld",&a);printf("shu ru …

c语言smile定义函数,【C初始之习题五】

1.实现一个函数&#xff0c;打印乘法口诀表&#xff0c;口诀表的行数和列数自己指定&#xff0c;输入9&#xff0c;输出99口诀表&#xff0c;输入12&#xff0c;输出1212的乘法口诀表。#define _CRT_SECURE_NO_WARNINGS#include#includevoid Sum(int x){int num 0;for (int i …

2017年9月计算机二级c语言,2017年9月计算机二级C语言程序设计练习题

2017年9月计算机二级C语言程序设计练习题2017年计算机二级考试即将在九月份进行&#xff0c;你准备好了吗?下面是小编为大家带来的计算机二级C语言程序设计练习题&#xff0c;欢迎阅读。练习题一&#xff1a;阅读程序题1、int x6, y7;printf(“%d,”,x); printf(“%d”,y);程序…

android getter不起作用,java - 如何在Android Studio中自动生成getter和setter

java - 如何在Android Studio中自动生成getter和setterAndroid Studio中是否有一个快捷方式可以自动生成给定类中的getter和setter&#xff1f;14个解决方案454 votes在编辑器中使用Alt Insert for Windows或Command N for Mac&#xff0c;您可以轻松地为类的任何字段生成get…

离散中多重组合是指_PLC编程中如何使用开关、模拟、脉冲量

在工业自动化控制中&#xff0c;经常会遇到开关量&#xff0c;数字量&#xff0c;模拟量&#xff0c;离散量&#xff0c;脉冲量等各种概念&#xff0c;而人们在实际应用中&#xff0c;对于这些概念又很容易混淆。作为电气工程及其自动化设计人员来说&#xff0c;弄清楚这些变量…