分块查找是静态查找,动态查找有二叉排序树查找,最优二叉树查找,键树查找,哈希表查找
动态查找表的特点是:表结构本身是在查找过程中动态生成的,即对于给定值key,若表中存在其关键字等于key的记录,则查找成功返回,否则插入关键字等于key的记录。
java.io.Reader是一个读取字符流的抽象类,通过继承Reader类,可以很方便的读取字符流,比如,我们可以将一个字符串读取为一串串(字符)流,还可以读取一个文件里的内容为一串串的流。
Java(1.6.x)里提供了几种Reader的直接继承类,具体的有:BufferedReader, CharArrayReader, FileReader, InputStreamReader, PipedReader, StringReader等,子类须实现的方法只有 read(char[], int, int) 和 close()。
能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换:
dst=new String(src,"GBK").getBytes("UTF-8")
数据库若出现日志满了,会出现什么情况
只能执行查询等读操作,不能执行更改,备份等写操作
关系模型实体间的敏感词采用二维表来表示,简称表。选项C为网状模型实体间的敏感词,选项D为层次模型实体间的敏感词,选项A属性刻画了实体。
tablespace是逻辑上的概念,datafile是物理上的概念。
- 一个tablespace可以由多个datafile组成,一个datafile不能跨越多个tablespace 。
- table中的数据,通过hash算法分布在tablespace中的各个datafile中,tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。
- 表空间是oracle数据库中最大的逻辑单位与存储空间单位,数据库系统通过表空间为数据库对象分配空间。表空间在物理上体现为磁盘数据文件,每一个表空间由一个或多个数据文件组成,一个数据文件只可与一个表空间相联系,这是逻辑与物理的统一。
表达式的数据类型自动提升, 关于类型的自动提升,注意下面的规则。
①所有的byte,short,char型的值将被提升为int型;
②如果有一个操作数是long型,计算结果是long型;
③如果有一个操作数是float型,计算结果是float型;
Set有两个实现类:HashSet和LinkedHashSet
AbstractSet实现了Set
- 当队列不为空时,front指向队列的第一个元素,rear指向队列最后一个元素的下一个位置。
- 当队列为空时,front=rear
- 队列满时:(rear+1)%maxsiz=front,少用一个存储空间,也就是数组的最后一个存数空间不用
方法区在JVM中也是一个非常重要的区域,它与堆一样,是被 线程共享 的区域。 在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。
JVM运行时,数据区包含:虚拟机栈,堆,方法区,本地方法栈,程序计数器,其中,堆和方法区是线程共享的,虚拟机栈和程序计数器是线程私有的。
一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:
1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
2)禁止进行指令重排序。
volatile只提供了保证访问该变量时,每次都是从内存中读取最新值,并不会使用寄存器缓存该值——每次都会从内存中读取。
而对该变量的修改,volatile并不提供原子性的保证。
由于及时更新,很可能导致另一线程访问最新变量值,无法跳出循环的情况
多线程下计数器必须使用锁保护。