int 和 Integer 的区别与作用:
一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。
int num2=Integer.parseInt("12");
double num3=Double.valueOf("12.2");;
List<Integer> nums;
这里<>需要类。如果你用int。它会报错的
Integer:的缺省是null;
java堆内存和栈内存的区别:
1 栈:为编译器自动分配和释放,如函数参数、局部变量、临时变量等等
2 堆:为成员分配和释放,由程序员自己申请、自己释放。否则发生内存泄露。典型为使用new申请的堆内容。
除了这两部分,还有一部分是:
3 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。
StringBuilder、StringBuffer 的区别:
buffer:缓冲区
-
StringBuffer
允许多线程操作,其很多方法都被关键字synchronized(线程安全)
修饰,而StringBuilder
则不是,如果不考虑线程安全,StringBuilder
应该是首选。
kotlin和java开发优缺点
apk会变大.一方面会增加kotlin的一些库文件,另一方面kotlin编译的类增加了一些方法。
总体上来说,Kotlin要优于Java,使用起来更方便,更简洁.
避免修改接口而实现同一个类中两种同名方法的调用
static优势:
static可以修饰成员变量,成员方法,代码块,类
特点:
static修饰的方法和变量,为类所属方法和变量,不会在对象销毁时销毁,所以生命周期较长。
被static修饰的内容会随着类的加载而加载,优先于对象存在,成员变量和成员方法可以通过类名直接调用并被该类下所有对象共享。
在static方法中,不能出现this,super,因为其优先于对象而存在
抽象类 & 接口
- 抽象类和接口都不能被实例化。
- 抽象类要被子类继承,接口要被类实现。
- 接口只能做方法的声明,抽象类可以做方法的声明,也可以做方法的实现。
- 接口里定义的变量只能是公共的静态常量,抽象类中的变量可以是普通变量。
- 抽象类里的抽象方法必须全部被子类实现;接口的接口方法必须全部被子类实现,否则只能为抽象类。
- 抽象类里可以没有抽象方法。
- 如果一个类里有抽象方法,那么这个类只能是抽象类。
- 抽象方法要被实现,所以不能是静态的,也不能是私有的。
- 接口可继承接口,并可多继承接口,但类只能单继承。
编码:
-
GB2312
与GBK
编码规则类似,但是GBK
范围更大,它能处理所有汉字字符。 -
UTF-16
和UTF-8
都是处理Unicode
编码,UTF-16
效率更高,它适合在本地磁盘和内存之间使用。 -
UTF-16
不是在网络之间传输,因为网络传输容易损坏字节流,UTF-8
更适合网络传输,对ASCII
字符采用单字节存储,单字节损毁不会影响后面其它字符。