2018.6.22 Java试题测试结果
如何从有数字规律的网址抓取网页并保存在当前目录?假设网址为 http://test/0.xml,其中这个数字可以递增到100。
for((i=0;i<100;++i));do wget http://test/$i.xml; done
关于计算机网络,以下说法正确的是 1 2 5
(1)在向下的过程中,需要添加下层协议所需要的首部或者尾部
(2)在向上的过程中不断拆开首部和尾部
(3)在向上的过程中,需要添加下层协议所需要的首部或者尾部
(4)在向下的过程中不断拆开首部和尾部
(5)SMTP属于TCP协议
(6)POP3属于UDP协议
(7)DNS属于TCP协议
(8)Telnet属于UDP协议
关于MySQL索引 ,下面说法正确的是( B ) 2 4
(1)B+Tree 索引是大多数 MySQL 存储引擎的默认索引类型
(2)在 MySQL 中只有 Memory 引擎显式支持哈希索引
(3)哈希索引只包含哈希值和列指针,而不存储字段值
(4)MyISAM 存储引擎支持空间索引,可以用于地理数据存储。
(5)空间索引使用 MATCH AGAINST,而不是普通的 WHERE
(6) 索引将顺序 I/O变为随机 I/O
解释
(1) BTree 索引是大多数 MySQL 存储引擎的默认索引类型,不是B+Tree。
(2) 哈希索引是memory引擎表的默认索引类型,memory也支持btree。
(3) 哈希索引只包含哈希值和行指针,而不存储字段值,所以不能使用索引中的值来避免读取行(即不能使用哈希索引来做覆盖索引扫描)。
(5) 空间索引不会要求where子句使用索引最左前缀可以全方位索引数据,可以高效使用任何数据组合查找 配合使用mercontains()函数使用。
(6) 索引将随机I/O变为顺序I/O
在Linux系统中,可以用来查找可执行文件的是?
(1)whereis
(2)locate
(3)which
(4)type
(5)find
A (1)(2)(3)
B (1)(2)(5)
C (1)(2)(3)(5)
D (1)(2)(3)(4)(5)
有一条TCP连接,它的最大报文段长度为4KB,TCP拥塞窗口为24KB,这时候发生超时,那么该拥塞窗口变为了( 4KB )
TCP报文中,当发生超时事件,阈值被设置成当前拥塞窗口的一半,而拥塞窗口被设为一个最大报文段,也就是4KB。
在Java中,包com中定义了类TestUtil,在com的子包util中定义了同名类TestUtil,给定如下Java代码,编译运行时,将发生( 编译无法通过 )。
package test;
import com.util.TestUtil;
import com.TestUtil;
public class Test {
public static void main(String[] args) {
TestUtil testutil = new TestUtil();
}
}
给定Java代码如下所示,则编译运行后,输出结果是( 2 2 2 )。
public class Test {
static int a;
int b;
static int c;
public int aMethod() {
a++;
return a;
}
public int bMethod() {
b++;
return b;
}
public static int cMethod() {
c++;
return c;
}
public static void main(String args[]) {
Test test1 = new Test();
test1.aMethod();
System.out.println(test1.aMethod());
Test test2 = new Test();
test2.bMethod();
System.out.println(test2.bMethod());
Test test3 = new Test();
test3.cMethod();
System.out.println(test3.cMethod());
}
}
注释
关于类的成员变量若没有赋值,都存在默认值的,
对于基本类型,都存在对应值,int : 0
对于引用类型,为null
给定某Java程序的main方法如下,该程序编译运行后的结果是(运行时出现异常 )。
public class A{
public static void main(String[] args) {
String str="ww";
str.concat("abc");
str.concat("123");
System.out.println(str);
}
}
注释
1.字符串连接的时候链接一个新的字符串对象来保存新的连接成的字符串
2.或者写成不用在原字符串是你的改变,在连接时用字符串原始值
给定某Java程序的main方法如下,该程序编译运行后的结果是(22 22 )。
public class Test {
int count = 21;
public void count() {
System.out.println(++count);
}
public static void main(String args[]) {
new Test().count();
new Test().count();
}
}
注释
++C是先将变量C进行加一操作,是“先赋值,后使用”,所以调用方法输出的结果是22。而main()方法中new出来的是两块空间,所以结果都是22。
在JDK1.8中,HashMap没有实现哪个接口(AbstractMap )。
AbstractXX的多半是抽象类,而不是接口,接口不需要强调抽象,他不可能不抽象
下面关于进程和线程说法错误的是( B )
A进程是系统进行资源分配和调度的基本单位,而线程是CPU调度和分配的基本单位
B线程也拥有自己的系统资源
C一个线程可以创建和撤销另一个线程
D一个进程中的多个线程共享资源
线程自己拥有:状态和计数器
同一个进程内的线程共享这个进程的资源
所有线程是没有自己的系统资源的,多个线程是交替使用其进程的资源
线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:
(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;
(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源
(3)线程是处理器调度的基本单位,但进程不是.
4)二者均可并发执行.进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性
下面关于线程同步说法错误的是( D )
A用户模式和内核模式下同步方式不同
B对于临界区的访问适用于单进程中线程间的同步
C事件对象适用于多个进程间的各线程实现同步
D互斥对象也只适用于单进程中线程间的同步
解释:他是内核对象,不同进程的多个线程可以访问单个互斥对象,这样可以确保多个线程同时访问内存块,内存块中数据不会遭到破坏。
下面关于死锁的说法错误的是( D )
A死锁是指多个进程因抢占资源而发生的一种阻塞且相互等待的现象
B死锁的产生源于系统资源不足和进程推进顺序不当
C可以通过终止和撤销进程来解除死锁
D银行家算法用在预防死锁策略中
银行家算法(Banker's Algorithm)是一个避免死锁(Deadlock)的著名算法 银行借贷系统的分配策略为基础,判断并保证系统的安全运行。
产生死锁的四个条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
用13的瓷砖密铺320的地板有几种方式?
3*n的区域铺瓷砖为f(n),如果第一列竖着,那么就是f(n-1),如果横着铺,就是f(n-3)。
f(n) = f(n-1) + f(n-3),递推结果为1278。
动态规划,转移方程为:f[i] = 2*f[i-3] + f[i-4] + f[i-5];
代码实现
public class Main {
public static void main(String[] args) {
int[] a = new int[20 + 5];
a[0] = 1;
a[1] = 1;
a[2] = 1;
a[3] = 2;
a[4] = 3;
for (int i = 5; i <= 20; i++) {
a[i] = (a[i-3] << 1) + a[i-4] + a[i-5];
System.out.println(i + " " + a[i]);
}
}
}