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

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


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的误差)。


/**
 *         ┏┓   ┏┓
 *        ┏┛┻━━━┛┻┓
 *        ┃       ┃  
 *        ┃   ━   ┃
 *        ┃ >   < ┃
 *        ┃       ┃
 *        ┃... ⌒ ... ┃
 *        ┃       ┃
 *        ┗━┓   ┏━┛
 *          ┃   ┃          
 *          ┃   ┃   努力挤牙膏中~
 *          ┃   ┃           
 *          ┃   ┃        
 *          ┃   ┃
 *          ┃   ┃           
 *          ┃   ┗━━━┓
 *          ┃       ┣┓
 *          ┃       ┏┛
 *          ┗┓┓┏━┳┓┏┛
 *           ┃┫┫ ┃┫┫
 *           ┗┻┛ ┗┻┛
 */
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值