java题库总结3
1.在接口里面的变量默认都是public static final 的,它们是公共的,静态的,最终的常量.相当于全局常量,可以直接省略修饰符。
实现类可以直接访问接口中的变量
接口中只有抽象方法和全局常量,jdk1.8之后增加了静态方法和普通方法,普通方法必须用关键字default标识
2.ThreadLocal类
ThreadLocal类用于创建一个线程本地变量
在Thread中有一个成员变量ThreadLocals,该变量的类型是ThreadLocalMap,也就是一个Map,它的键是threadLocal,值为就是变量的副本。通过ThreadLocal的get()方法可以获取该线程变量的本地副本,在get方法之前要先set,否则就要重写initialValue()方法。
ThreadLocal存放的值是线程封闭,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递
从线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收
3.
public
class
Test {
public
static
void
main(String args[]) {
String s =
"祝你考出好成绩!"
;
System.out.println(s.length());
}
}
//8 问的是字符串的长度而不是字节长度,中文在java中不同的编码所占字节不同,unicode是两个,utf-8是3个,gbk是2个。
4.函数
根据作用域规则,在函数中定义的变量只能在函数中引用
在函数中定义的变量不能与其所在函数的形参同名
在函数中定义的变量,其存储单元在内存的栈区
函数中的变量:局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了
5.堆栈:堆主要是用来存放对象的,栈主要是用来执行程序的
栈内存中存放函数中定义的一些基本类型的变量和对象的引用变量;
堆内存中存放new创建的对象和数组
6.算法包括0个或多个输入,1个或多个输出,中间有穷个处理过程。
存储结构不属于算法结构
7.多态的作用:隐藏细节 提高可重用性 扩展代码模块