1、public、private、protected、static。不能用来修饰interface的是哪个?
接口默认修饰符public,即使不写。
定义的变量默认修饰符(也必须是)publicstaticfinal,so又成了常量
故private、protected是不能用来修饰
2、下面关于修饰符混用的说法,错误的是?
A.abstract不能与final并列修饰同一个类
B.abstract类中可以有private成员
C.abstract方法必须在abstract类中
D.static方法中能处理非static属性
b对:当然可以,抽象类也是类。只是他的private成员不能被继承,所以在abstract类中定义private成员没有意义
c对:abstract类可以有普通方法也可以有抽象方法,但抽象方法必须在抽象类中。如果一个类继承了抽象类,但他没有完全实现其抽象方法,那么该类也必须是抽象类
d对:static修饰的代码优先加载于非static成员,所以长辈能为晚辈做打算,但是反过来不行
故选择A
3、程序和进程的本质区别是?
A.在外存和内存的存储
B.非顺序和顺序执行的机器指令
C.独占使用和分时实用计算机资源
D.静态和动态特征
进程即运行中的程序,从中即可知,进程是在运行的,程序是非运行的,当然本质区别就是动态和静态的区别。
故选D
4、Ipv6地址占多少字节?
IPv4是32位长,4字节,用点将32位分割成4个8位(1字节)的段
IPv6是128位长,16字节,用冒号将128位分割成8个16位的段
IPv6地址........:fe80::dd8:8489:165:95c6%16
IPv4地址............:192.168.3.1
5、下列说法正确的是?
A.LinkedList继承自List
B.AbstractSet继承自Set
C.HashSet继承自AbstractSet
D.WeakMap继承自HashMap
参考:jdkapi和
+Queue接口+不常用,在此不表.
+Set接口+SortedSet接口-TreeSet类-HashSet
+Map接口-HashMap类(除不同步和允许使用null键/值之外,与Hashtable大致相同.)-Hashtable类此类是实现同步的,不允许使用null键值+SortedMap接口-TreeMap类
6、链表具有的特点是?
A.不必事先估计存储空间
B.可随机访问任一元素
C.插入删除不需要移动元素
D.所需空间与线性表长度成正比
它在内在地址中是链表式的。它的存放是比较散乱的。但是它采用指向的方法表明元素的顺序。不象ArrayList是按照数组连续分配空间一个紧挨着一个。当其中的某一个元素被删除时,它会指向于它的下一个,而不需要移动其他的元素。
所以它增删改快查慢,与ArrayList相反
ArrayList底层是数组
LinkedList底层是链表
7、执行int[]x=newint[25];下边说法正确的是?
A.x[24]为0
B.x[24]未定义
C.x[25]为0
D.x[0]为空
堆中的数据都有初始值,newint[25]存在于堆,所以里边的25个int元素均有初始值。Int的初始值是啥,当然是0了。
8、Strings="abc";下边不合法的是?
A.s=s.toUpperCase();
B.charc=s[1];
C.intlen=s.length;
D.s=s.trim();
a正确:转大写
b错误:s不是数组,所以没有角标
c错误:字符串对象有length方法,而没有length属性
d正确:这是去除字符串对象中的空格的方法。
So,选择b、c
9、在程序读入字符文件时,能够以该文件直接做为参数的类是?
A.FileReader
B.BufferedReader
C.FileInputStream
D.ObjectInputStream
FileInputStream是字节输入流。
ObjectlnputStream用于对象串行化时从对象流中读取对象。
所以C、D都不是本题的答案。
FileReader和BufferedReader都是字符类输入流,
但是FileReader的参数是读入的文件,而BufferReader的参数是FileRead流的一个对象。
所以,本题的正确选项是A。
10、参考下边代码,关于super用法,描述正确的是?
classCextendsB{
publicC(){super();}
}
A.用来调用B类中定义的super()方法
B.用来调用C类中定义的super()方法
C.用来调用B类的无参构造函数
D.用来调用B类第一个出现的构造
11、有关线程描述对的是?
A.一旦一个线程被创建,它就立即开始运行
B.使用start方法,可以使一个线程成为可运行的。但它不一定立即开始运行
C.当一个线程因抢先机制而停止运行,它被放在可运行队列的前面
D.一个线程可能因为不同的原因停止并进入就绪状态。
本题是考查对线程概念的掌握。一个新创建的线程并不是自动的开始运行的,必须调用它的start()方法使之将线程放入可运行态(也叫就绪状态runnablestate),这只是意味着该线程可被JVM的线程调度程序调度而不是意味着它可以立即运行。
到此位置,可判断出:a错,b对
这里可以说明,d是对的
而即使是因为抢先而停止也不一定就进入可运行队列的前面,因为同级线程是轮换式的,它的运行可能就是因为轮换,而它因抢占而停止后只能在轮换队列中排队而不能排在前面。
这里可以说明,c的说的不对
线程的5种状态
12、对struts的支持,主要用到spring哪些模块?
A.核心模块
B.Orm模块
C.Mvc模块
D.Web模块
Struts是属于3层架构中的试图层中的mvc思想技术的一个框架
13、spring中提供通过web容器来启动spring框架的类有哪些?
A.ContextLoaderListener
B.ServletLoaderListener
C.ContextLoaderServlet
D.ActionServlet
看下边在web.xml中,配置监听服务器启动,就加载spring配置文件的代码就知道了
14、在hibernate中,以下哪些是属于session的方法?
A.Load()B.Save()C.Delete()
E.update()E.open()F.close()
F,不解释
15、编译java程序时候,编译器提示找不到要编译的代码。通常是因为?
A.文件名拼写错误
B.没有导入相应的包
C.文件名不是.java
D.源文件不再java搜索路径中
二简答
1、Java基本类型都有哪些,字节长度分别是多少?
整型:byte(1)、short(2)、int(4)、long(8)
小数:float(4)、double(8)
布尔:true、false()1
字符:char(在unicode编码下占2)
2、说说jvm原理,内存泄漏与内存溢出的区别,何时产生泄漏?
操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境.
1.创建JVM装载环境和配置
2.装载JVM.dll
3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例
4.调用JNIEnv实例装载并处理class类。
内存溢出,是指程序在申请内存时,没有足够的内存空间供其使用,出现outofmemory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。
内存泄露,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
俩东西泄漏是说你的程序有BUG导致内存不释放GC溢出是指内存不够用了导致不够用的
3、JavaEE的5大主流框架的优缺点?
省略
4、如何解决用户访问反应慢的问题?
硬件:加带宽,升级服务器cpu或内存
软件:优化代码。
5、实现你熟悉的一个排序算法?
冒泡
6、有一张表sales结构如下
用一条sql语句,输出如下?
参考答案:
SELECTyear年,
SUM(CASEmonthWHEN1THENincomeWHEN2THENincomeWHEN3THENincomeELSE0END)第一季度,
SUM(CASEmonthWHEN4THENincomeWHEN5THENincomeWHEN6THENincomeELSE0END)第二季度,
SUM(CASEmonthWHEN7THENincomeWHEN8THENincomeWHEN8THENincomeELSE0END)第三季度,
SUM(CASEmonthWHEN10THENincomeWHEN11THENincomeWHEN12THENincomeELSE0END)第四季度