Java基础面试题及答案

.

统计单笔消费超过50元的用户总共的消费次数以及消费总金额,总金额>2000 3. 表PERSONNEL 的结构如下:

ID NUMBER(9) NAME VARCHAR2(25) MANAGER_ID NUMBER(9) 在这里, 部门的管理者也看作是雇员,写出SQL语句查询每个雇员的姓名以及管理者的姓名

4.ORACLE数据库有哪几种约束类型?

5.请分别写出mysql与oracle的分页查询语句(查询第3-第7条数据) 6.写一个查询,来查询出挣到佣金(comm)的雇员姓名ename,部门名称,和部门所处的位置loc。(有employ表和dept表)

7.写一个查询,查出在名字里面有一个\的所有雇员姓名ename和其所在的部门loc的名称。

8.显示所有薪金高于各自部门平均薪金的人? 9.查询平均成绩大于60分的同学的学号和平均成绩;

Servlet部分

1.JSP九大内置对象,Servlet域对象以及各自的作用范围 2.说出Servlet的生命周期?

5.请简述mvc架构。同时说明在自己熟悉的架构中mvc分别对应什么?

框架部分

1.请描述一下spring MVC工作原理。 2.Spring的核心是什么?

.

.

JAVA基本部分-选择题

1.D 2.B

解析: 此题考查java的浮点运算的精度问题,浮点数是以二进制得形式存储得,如0.5 = 2得-1次方

选项A 返回结果0.3999999999999999 选项B 返回结果3.75

选项C 返回结果0.0 因为30和300都是整数,只要把任何一个定义成浮点型数据,数据会更精确

选项D 返回结果0.5 原理同选项C

3.AC

解析: 固定算法,只是用while循环或for循环

4.D

解析: switch分支结构如果在case的语句体中添加break;语句,那么只要找到对应的case 的常量,就执行对应case常量后的语句,如果没有break语句就继续执行后面所有case 后的语句 如果最后有default也会执行。

5.B

解析: Java中的位运算符: \\int类型占4个字节,一个字节占8位,所以一个int数字占用32位。 >>表示右移,如果该数为正,则高位补0,若为负数,则高位补1; >>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。

6.BD

解析: 根据题意,方法名称不变,参数的个数可变,解决方案是用可变参数 类型...类型名称 比如:int... args 可变参数其本质是一个数组,且必须放在方法参数的最后一个位置,可以接受零个或多个参数,在方法中使用数组方式来访问,比如:args[0] args[1].....

简答:

.

.

1.

int[] ary = {1,2,1,4,5,6}; int[] counts = new int[10]; for(int i:ary){ counts[i]++; } for(int j:counts){ System.out.print(j+\ } 2.答案:

1.冒泡排序的基本思想 冒泡排序是交换排序中一种简单的排序方法。它的基本思想是对所有相邻记录的关键字值进行比效,如果是逆顺(a[j]>a[j+1]),则将其交换,最终达到有序化。其处理过程为: (1)将整个待排序的记录序列划分成有序区和无序区,初始状态有序区为空,无序区包括所有待排序的记录。 (2)对无序区从前向后依次将相邻记录的关键字进行比较,若逆序将其交换,从而使得关键字值小的记录向上\飘浮\(左移),关键字值大的记录好像石块,向下“堕落”(右移)。 每经过一趟冒泡排序,都使无序区中关键字值最大的记录进入有序区,对于由n个记录组成的记录序列,最多经过n-1趟冒泡排序,就可以将这n个记录重新按关键字顺序排列。 2.原始的冒泡排序算法 对由n个记录组成的记录序列,最多经过(n-1)趟冒泡排序,就可以使记录序列成为 有序序列,第一趟定位第n个记录,此时有序区只有一个记录;第二趟定位第n-1个记录,此时有序区有两个记录;以此类推,算法框架为: for(i=n;i>1;i--) { 定位第i个记录; }

若定位第i个记录,需要从前向后对无序区中的相邻记录进行关键字的比较,它可以用如下所示的语句实现。

下面给出完整的冒泡排序算法: for(int i=0;iarr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1];

arr[j+1]=temp; } } }

3.答案: int[] ary = {1,0,1,1,0,0,1,1,1,0,0,1,0,1}; int index = 0; for(int i=0;i

.

ary[index++] = 0; } } for(int i:ary){ System.out.print(i+\ } OOP部分-选择题

1.A 2.B 3.B 7.B

解析: 数组和对象在作为数的参数传递的时候,是引用传递,如果在方法中对其做过修改,则真的会影响原始数据

OOP部分-简答题

1. 2.答案:

在语法定义上的区别:

静态变量前要加static 关键字,而实例变量前则不加。 在程序运行时的区别:

实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。 静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象, 静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

3.答案:

.

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4