您的位置:首页 > 移动开发 > Android开发

一些我总会忘记的小知识总结(Android or Java)

2015-09-15 14:45 459 查看
在项目开发时过于追求大的知识,比如多线程下载,网络请求等,往往会忽略一些非常小的知识,有时候为了验证想法和实际我会开辟一个工程专门用来验证,接下来就是我验证过的一些,看看你是否会忽略呢?

1. arrayList.add(null)是允许的吗?

2. ArrayList添加一个String对象,改变该String对象后再添加,结果是添加了两个一样的对象还是不一样的?

ArrayList<String> strList = new ArrayList<String>();
String str = "abc";
strList.add(str);
str = "123";
strList.add(str);
strList.add(null);
System.out.println("strList = " + strList);


//输出结果
strList = [abc, 123, null]


所以

1. ArrayList是可以添加null对象的;

2. ArrayList添加一个String,改变值后再添加,得到的是两个不同的String

如果你用ArrayList存储对象,拿出来用之前记得有必要判空哦!~

而如果你需要重复添加String类型的话,定义一个String,不停覆盖值就够了!~

3.foreach的对象如果是空会怎样?

ArrayList<String> strings = null;
for (String str : strings) {
}


//结果
Exception in thread "main" java.lang.NullPointerException


所以

3.foreach的对象不能为空,否则会报空指针

这里就要注意如果以后传数据的时候,如果要用到foreach的话,最好先判断数据是否为空!~

4.String如果初始化为null,打印出来是什么?

String str = null;
System.out.println("str = " + str);


//输出结果
str = null


所以

4.String为null的话打印出来也是null。

如果你不希望得到这个结果的话,记得判空哦!~

5.Android 如何在初始化时获取TextView的宽高?

tv.measure(0, 0);
int width = tv.getMeasuredWidth();
int height = tv.getMeasuredHeight();


在初始化过程中,默认调用
tv.getHeight()
是不能得到真实高度的(得到的值为0),是因为View要等到
onLayout()
结束后才能用
getWidth()|getHeight()
得到宽高。同样,在
onMeasure()
结束后,才能得到
getMeasuredWidth()
,第一句
tv.measure(0, 0);
相当于强制调用了
onMeasure()
,所以二三句就能得到宽高了(注意dp和px的误差)。

/**
 *         ┏┓   ┏┓
 *        ┏┛┻━━━┛┻┓
 *        ┃       ┃  
 *        ┃   ━   ┃
 *        ┃ >   < ┃
 *        ┃       ┃
 *        ┃... ⌒ ... ┃
 *        ┃       ┃
 *        ┗━┓   ┏━┛
 *          ┃   ┃          
 *          ┃   ┃   努力挤牙膏中~
 *          ┃   ┃           
 *          ┃   ┃        
 *          ┃   ┃
 *          ┃   ┃           
 *          ┃   ┗━━━┓
 *          ┃       ┣┓
 *          ┃       ┏┛
 *          ┗┓┓┏━┳┓┏┛
 *           ┃┫┫ ┃┫┫
 *           ┗┻┛ ┗┻┛
 */
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: