++i 和 i++
今天看String的源代码中看到startsWith方法里面有这么一段
while (--pc >= 0) { if (ta[to++] != pa[po++]) { return false; } }
当时很糊涂 后来baidu了下发现 i++是先是使用 i的原值,然后再原值的基础上加1。++i是先在原值的基础上加1,然后再使用i的值,注意“使用”这个词。
所以--pc >= 0这段代码可以这么理解,先对pc的值减1,再使用更新后pc的值 与0比较。ta[to++]理解为 先使用to的值再对to加1,故假如to初始值为0,ta[to++]就是ta[0];