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中是和堆一样线程共享的区域。里面保存类信息、静态变量、常量和编译得到的代码。

posted @ 2018-09-22 09:32  jason31  阅读(127)  评论(0编辑  收藏  举报