java/android 做题中整理的碎片小贴士(12)
1、edittext中设置最长字数,可在xml中加入android:maxLength="10",可在java代码中加入editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
2、edittext监听软键盘delete按键:
Et.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_DEL) {
//to do here }}}
3、对于if(x=y),java中的赋值是有返回值的,赋的值就是返回值,而不是c语言那种成功返回1失败返回0。而且java中似乎不会将正数认为是true。所以会编译错误。
4、round函数是取最接近整数,如果遇到一样近,则取最大值。
Math.round(11.5)=12, Math.round(-11.5)=-11
5、final修饰的方法不能被重写但可以重载。
6、Request.getHeader和request.getCookies都可以得到cookie。
7、
byte b1=1,b2=2,b3,b6;
final byte b4=4,b5=6;
b6=b4+b5;
b3=(b1+b2);
被final修饰的变量当做常量,这里的b6=b4+b5可以看成b6=10,在编译时就已经变为b6=10。
而b1和b2是byte类型,计算时将它们提升为int类型再算,b1+b2计算后是int型,再赋值给b3,而b3是byte型,类型不匹配,编译不会通过,需要进行强制转换。
Java中的byte,short,char进行计算时都会提升为int类型。
8、方法区在JVM中是和堆一样线程共享的区域。里面保存类信息、静态变量、常量和编译得到的代码。