java/android 做题中整理的碎片小贴士(12.5)
1、存在使i+1<i的数,即当i为int型且i为int表示的最大正数时,i+1就会溢出变成负数。也存在使i>j || i<=j不成立的数,Double.NaN,Float.NaN,它们不等于任何数,包括自己。
2、随意地给出一个数如0.633其数据类型是double,若要表达float,则在小数后面加上f如3.14f。
3、创建对象的几种方法①new②运用反射手段,调用java.lang.Class或java.lang.reflect.Constructor类的newInstance()方法。③用对象的clone()方法。④用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。其中只有①②会调用构造函数,③④不会。
4、ArrayList list=new ArrayList(); 这种是默认创建大小为10的数组,每次扩容大小为1.5倍;
ArrayList list=new ArrayList(20); 这种是指定数组大小的创建,没有扩充。
5、通过HttpServletRequest.getParameter获取的参数,由客户端浏览器和web容器配置共同决定编码。
6、URL一般四部分组成:<协议>://<主机(ip+子网掩码)>:<端口>/<路径>.
7、方法区和堆内存线程共享;程序计数器(汇编那种)和虚拟机的栈,线程隔离。
8、Ant没有约定目录结构,需要自己制定。Maven比较智能,只要按照约定编写就可以自定执行,还有生命周期,默认写在一个pom.xml中。他们都是基于java的构建(build)工具。
9、没有定义任何(而非仅限不带参数的)构造函数时,JVM都会为类生成一个默认构造函数。
10、abstract类的子类也可以是abstract类,从而不必实现其超类的所有abstract方法。
11、throws用于在方法上声明该方法不需要处理的异常类型,是此方法可能抛出的异常类型;throw用于抛出异常。
12、final用于可以声明属性和方法,分别表示属性的不可变及方法的不可覆盖。不是方法的不可继承。
12.5、int x=20, y=5,则System.out.print(x+y+""+(x+y)+y);输出结果是25255。小括号优先级最高,先计算x+y=25,对于其他,字符串前面的按原有格式相加,字符串后面的按字符串相加,所以是25255。
14、局部变量存放在栈上,栈上的垃圾回收可以用finalize()。堆上的对象可以通过指向null来期望gc,但不能决定何时被gc。
15、获取文件中的内容,FileInputStream fin = new FileInputStream(filename);
16、Throwable是Exception和Error的超类,Exception是一般Exception和RuntimeException的超类。
17、守护线程会在非守护线程全部结束后自动结束。
18、依赖注入的目的是减少组件的耦合度。
19、值传递不会改变实际参数的数值,引用传递不会改变实际参数的地址,但能改变实际参数的内容。