2.若串S=′software′,其子串的数目是(37)
解析:字串: n(n+1)/2 + 1
非空子串:n(n+1)/2
非空真子串:n(n+1)/2 - 1
注:空串也是
3.下列关于联合的描述中,错误的是(A)
A.联合变量定义时不可初始化
B.联合的成员是共址的
C.联合的成员在某一个时刻只有当前的是有效的
D.联合变量占有的内存空间是该联合变量中占有最大内存空间的成员在内存对齐时所需的存储空间
解析:1. 结构和联合都是由多个不同的数据类型成员组成,但在任何同一时刻,联合中只存放了一个被选中的成员(所有成员共用一块地址空间),而结构的所有成员都存在(不同成员的存放地址不同)。
2. 对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。
4.在C#中,索引器是专门用来访问对象中的数组信息的。(×)
解析:索引器为c#程序语言中类的一种成员,它使得对象可以像数组一样被索引,使程序看起来更直观,更容易编写。它可以使得像数组那样对对象使用下标。它提供了通过索引方式方便地访问类的数据信息的方法。要声明类或结构上的索引器,请使用this关键字,例如: public intthis[int index] //声明索引器 { // get and set 访问 }
5.下面有关 java 类加载器,说法正确的是?(ABCD)
A.引导类加载器(bootstrap classloader):它用来加载 Java 的核心库,是用原生代码来实现的
B.扩展类加载器(extensionsclass loader):它用来加载 Java 的扩展库。
C.系统类加载器(system classloader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类
D.tomcat 为每个 App 创建一个 Loader,里面保存着此 WebApp 的 ClassLoader。需要加载 WebApp 下的类时,就取出 ClassLoader 来使用
解析:类的加载是由类加载器完成的,类加载器包括:根加载器( BootStrap )、扩展加载器( Extension )、系统加载器( System )和用户自定义类加载器( java.lang.ClassLoader 的子类)。从 Java2 ( JDK1.2 )开始,类加载过程采取了父亲委托机制(PDM )。 PDM 更好的保证了 Java 平台的安全性,在该机制中, JVM 自带的 Bootstrap 是根加载器,其他的加载器都有且仅有一个父类加载器。类的加载首先请求父类加载器加载,父类加载器无能为力时才由其子类加载器自行加载。 JVM 不会向 Java 程序提供对 Bootstrap 的引用。下面是关于几个类加载器的说明:
· Bootstrap :一般用本地代码实现,负责加载 JVM 基础核心类库( rt.jar );
· Extension :从 java.ext.dirs 系统属性所指定的目录中加载类库,它的父加载器是 Bootstrap ;
· system class loader :又叫应用类加载器,其父类是 Extension 。它是应用最广泛的类加载器。它从环境变量 classpath或者系统属性 java.class.path 所指定的目录中记载类,是用户自定义加载器的默认父加载器。
· 用户自定义类加载器: java.lang.ClassLoader 的子类
· 父类委托机制是可以修改的,有些服务器就是自定义类加载器优先的。