1题

运行下面程序后的输出结果是()

public class Test {

public static void main(String[] args) {

StringBuffer a = new StringBuffer(“A”);

StringBuffer b = new StringBuffer(“B”);

operator(a, b);

System.out.println(a + “,” + b);

}

public static void operator(StringBuffer x, StringBuffer y) {

x.append(y); y = x;

}

}

答案:AB,B

解析:a,b是对象的引用,指向堆内存。将a,b两个引用传给x,y。运行x.append(y),改变了x引用指向的堆内存的存储内容,变为AB, y = x。表示引用y,指向引用x指向的存储区域。没有改变引用b,指向的存储空间的内容。一句话解决:string是值传递,stringbuffer是引用传递。。所以就这样了。

2题

结构型模式中最体现扩展性的几种模式是()

答案:装饰模式

解析:A 装饰模式

定义:动态给一个对象加入一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。

设计初衷:通常能够使用继承来实现功能的拓展,假设这些须要拓展的功能的种类非常繁多,那么势必生成非常多子类,添加系统的复杂性,同一时候,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。装饰模式的作用就是为了:

1.扩展功能

2.不用继承

从这点来说能够算“最能体现”扩展性吧。

3题

在Linux中,对file.sh文件运行#chmod 645 file.sh中,该文件的权限是()

答案:-rw-r–r-x

解析:Linux下权限相应的数字为:

r =4, w =2, x =1

所以,6就是rw-

4就是r–

5就是r-x

所以。选D

4题

TCP建立连接的过程採用三次握手。已知第三次握手报文的发送序列号为1000,确认序列号为2000,请问第二次握手报文的发送序列号和确认序列号分别为

答案:1999。1000

解析:发送序列是自己发送报文的序列号。当前发送序列号是上一次发送序列号+1

确认序列号是从对方接收到的发送序列号+1

第三次握手发送的序列号是1000。那说明第一次握手发送的序列号是999,注意:这里是握手

,因此。第二次握手的确认序列号是1000。即确认序列号是从对方接收到的发送序列号+1。

第三次握手发送的确认号是2000,说明第二次握手的发送序列号是1999。

所以,选B



5题

下列TCP连接建立过程描写叙述正确的是:

答案:当client处于ESTABLISHED状态时,服务端可能仍然处于SYN_RCVD状态

解析:此题主要考察TCP三次握手,四次挥手的状态变化,对着图看吧,加深印象。

三次握手例如以下:

6题

属于网络112.10.200.0/21的地址是()

答案:112.10.206.0

解析:前21位为网络地址,后12位为主机地址。

110 相应前8位。10相应第二个8位,因此200相应第3个8位

又200的二进制表示为1100 1000

前面已经有了16位。因此11001 是属于网络地址的。000是属于主机地址 那么,最大的地址为

【110(十进制)】【10(十进制)】【11001 111】【 11111111】转换为十进制为110.10.207.255

故网络的地址范围为

110.10.200.0~110.10.207.255

故A为正确答案

7题

下面java程序代码,运行后的结果是()

java.util.HashMap map=new java.util.HashMap();

map.put(“name”,null);

map.put(“name”,”Jack”);

System.out.println(map.size());

答案:1

解析:HashMap能够插入null的key或value。插入的时候,检查是否已经存在同样的key。假设不存在,则直接插入,假设存在。则用新的value替换旧的value。在本题中。第一条put语句,会将key/value对插入HashMap。而第二条put,由于已经存在一个key为name的项。所以会用新的value替换旧的vaue,因此,两条put之后,HashMap中仅仅有一个key/value键值对。那就是(name,jack)。

所以,size为1.

8题

下面java程序代码,运行后的结果是()

public class Test {

public static void main(String[] args) {

Object o = new Object() {

public boolean equals(Object obj) {

return true;

}

};

System.out.println(o.equals(“Fred”));

}

}

答案:true

解析:1.建立了一个匿名内部类,并重写了Object的equals方法。

2.通过o调用了equals方法。方法返回true。

9题

代码片段:

byte b1=1,b2=2,b3,b6;

final byte b4=4,b5=6;

b6=b4+b5;

b3=(b1+b2);

System.out.println(b3+b6);

关于上面代码片段叙述正确的是()

答案:语句:b3=b1+b2编译出错

解析:表达式的数据类型自己主动提升, 关于类型的自己主动提升。注意下面的规则。

①全部的byte,short,char型的值将被提升为int型;

②假设有一个操作数是long型,计算结果是long型;

③假设有一个操作数是float型,计算结果是float型;

④假设有一个操作数是double型,计算结果是double型;

而声明为final的变量会被JVM优化,第6行相当于 b6 = 10

若有不正确,请指正

10题

下面代码运行结果是()

public class Test{

public int add(int a,int b){

try {

return a+b;

}

catch (Exception e) {

System.out.println(“catch语句块”);

}

finally{

System.out.println(“finally语句块”);

}

return 0;

}

public static void main(String argv[]){

Test test =new Test();

System.out.println(“和是:”+test.add(9, 34));

}

}

答案:finally语句块,和是:43

解析: 程序先运行try块中return之前(包含return语句中的表达式运算)的代码; 再运行finally块,最后运行try块中的return; 而 finally块之后的return语句。由于程序在try块中已经return了,所以不再运行。

11题

下面情况下不一定出现TCP分节RST的情况是:

答案:server主机崩溃后重新启动

解析:四种情况会发送RST包:

1、port未打开

2、请求超时

3、提前关闭

4、在一个已关闭的socket上收到数据

12题

一个数据库中现有A,B,C,D,E,F六个语句但眼下这个数据库是不协调的。必须删除某些语句才干恢复数据库的协调性。

已知:(1)假设保留语句A。那么必须保留语句B和C。(2)假设保留语句E,则必须同一时候删除语句D和语句C。(3)仅仅有保留语句E。才干保留语句F。(4)语句A是重要的信息,不能删除以上各项假设为真,则下面哪项一定为真?

答案:同一时候删除语句E和语句F

解析:依据(4)。A必须有。

再依据(1),B,C必须有,此时一定有ABC

依据(2)。由于有C,所以一定没有E

依据(3)。由于没有E,所以一定没有F

综上,ABC一定有。EF一定没有,D不确定

13题

下列关于静态工厂和工厂方法表述错误的是:()

答案:二者都满足开闭原则:静态工厂以if else方式创建对象,添加需求的时候会改动源码

解析:选D。开闭原则:对扩展开放。对改动封闭。静态工厂添加须要是改动源码,对改动不封闭。不符合开闭原则。

14题

设有一个用数组Q[1..m]表示的环形队列,约定f为当前队头元素在数组中的位置。r为队尾元素的后一位置(按顺时针方向),若队列非空,则计算队列中元素个数的公式应为()

答案:(m+r-f)mod m

解析:(1)当尾大于头长度为 尾 - 头当尾小于头 比如尾巴在2号位置。而头在4号位置。表的长度为4 1 2,而这段长度为 总长度 - (尾 -头 ) = 总长度 - ( 尾 -头 ) 而 ( 尾 -头 ) < 0所以 得到 总长度+ ( 尾 -头 ) 。

因此合并两个表达式 得到 (总长度+ ( 尾 -头 ))%总长度 。% 防止(1)情况发生溢出。

1

4 2

3

15题

下面程序是用辗转相除法来计算两个非负数之间的最大公约数:

long long gcd(long long x,long long y){

if(y==0)

return x;

else return gcd(y,x%y);

}

我们假设x,y中最大的那个数的长度为n,基本基本运算时间复杂度是O(1),那么该程序的时间复杂度为()

答案:O(logn)

解析:高速的思路是排除法。不是与固定几个值计算,所以不是O(1)的,当然也不会把每一个数都遍历个遍来确定,不是O(n)和O(n^2)的,于是选择A。

当然假设感兴趣的话。能够做一个实验:在10000以内两两辗转相除法。运算次数最多的是哪两个数呢?

6765和 4181

假设把上界再缩小或扩大,你会发现,出现的数都是斐波那契数列中的数,都是相邻的两项。

由于斐波那契数列相邻两项在做gcd的时候,每次mod仅仅相当于做了一次a-b,退化成更相减损术了。而没有起到mod的加速效果。

而斐波那契数列有通项公式,第n项的值是与某两个无理数的n次相关的。所以。是logn了

(当然这个证明还是非常不科学的)

16题

计算斐波那契数列第n项的函数定义例如以下:

int fib(int n){

if(n==0)

return 1;

else if(n==1)

return 2;

else

return fib(n-1)+fib(n-2);

}

若运行函数调用表达式fib(10),函数fib被调用的次数是:

答案:177

解析:f(10)=f(9)+f(8)+1

= 2f(8)+f(7)+2

=3f(7)+2f(6)+4

=5f(6)+3f(5)+7



=55f(1)+34f(0)+88

55+34+88=177

17题

设图G的相邻矩阵例如以下图:则G的顶点数和边数分别为:

0 1 1 1 1

1 0 1 0 0

1 1 0 1 1

1 0 1 0 1

1 0 1 1 0

答案:5,8

解析:笨方法:把图依照相邻矩阵画出来;

简单方法:仅仅计算主对角线的上三角或下三角有多少个 1 就可以。矩阵为5*5。则有五个顶点。关于主对角线对称。则为无向图。无向图中,边数目等于上/下三角矩阵中的非零元素数目。

奇虎360Java笔试题的更多相关文章

  1. PHP面试题2019年奇虎360面试题及答案解析

    一.单选题(共29题,每题5分) 1.以下代码 a.php 输出的结果是? a.php 的代码如下: b.php的代码如下: A.foo in a B.什么也不输出 C.报错 D.foo in b 参 ...

  2. BAT小米奇虎美团迅雷携程等等各大企业校招,笔试面试题。

    类似在线测试的方式展示题目. 历年在线笔试试卷: 百度 http://www.nowcoder.com/paper/search?query=%E7%99%BE%E5%BA%A6  腾讯http:// ...

  3. Java工程师笔试题整理[校招篇]

    Java工程师笔试题整理[校招篇]     隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...

  4. 网易PM599产品笔试题

    前几天做了网易PM599的云计算领域产培生的笔试题目,下面整理了一下各个方向的笔试题和我对这些题目的解答. 云计算领域: 1.对工业互联网的理解,结合自身优势谈谈自己应该怎么去创业. 工业互联网是一次 ...

  5. [笔试题]黑板上写下50个数字,选两个黑板上数字a和b,在黑板写|b-a|,剩下的数字?

    在黑板上写下50个数字:1至50.在接下来的49轮操作中,每次做如下操作:选取两个黑板上的数字a和b,擦去,在黑板上写|b-a|.请问最后一次动作之后剩下的数字可能是什么?为什么?(不用写代码,不写原 ...

  6. 一道简单的 Java 笔试题,但值得很多人反思!

    前言 面试别人,对我来说是一件新奇事,以前都是别人面试我.我清楚地知道,我在的地域与公司,难以吸引到中国的一流软件人才.所以,我特地调低了期望,很少问什么深入的技术问题,只问一些广泛的.基础的.我只要 ...

  7. 2016 JS 笔试题汇总:

    1 1 1 CS&S(中软国际): 1 JavaScript 循环表达式: 2  JavaScript表达式boolean返回值: 3 网页中的事件/HTML 事件属性/JavaScript ...

  8. 对Thoughtworks的有趣笔试题实践

    记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...

  9. 从阿里巴巴笔试题看Java加载顺序

    一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...

随机推荐

  1. 通过Gradle来下载依赖的jar包

    前段时间在看Gradle文章方向其比ANT.Maven真的要简单很多,特别是在下载jar依赖方面下面就是用gradle写的一个jar包依赖下载的小例子: (1)建立build.gradle文件 (2) ...

  2. 关于bat的变量赋值和解析机制

    以下的演示涉及几个知识点: 1. 怎样把命令输出内容保存到变量中? 2. 多次改变变量值,为什么在for或是if的()中的无效,怎样变通? 3. bat的function实现? 见代码,和代码凝视 : ...

  3. JavaScript入门:003—JS中的变量

    编程语言都是同样的,JS中也是有变量的.首先JS的变量是区分大写和小写的,这个须要注意.比方number和Number是不同的变量.无论是经常使用类型的,还是对象类型,比方 Object obj和Ob ...

  4. Android中关于JNI 的学习(零)简单的样例,简单地入门

    Android中JNI的作用,就是让Java可以去调用由C/C++实现的代码,为了实现这个功能.须要用到Anrdoid提供的NDK工具包,在这里不讲怎样配置了,好麻烦,配置了好久. . . 本质上,J ...

  5. vim-大小写装换

    以下内容参考自 http://blog.csdn.net/yangzhongxuan/article/details/8484167 自己验证了效果 命令一:单个字符转换(光标所在位置的字母进行转换) ...

  6. 编写一个程序,把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt。

    package example; import java.io.*; public class Test { public static void main(String[] args) throws ...

  7. 关于大数据项目创建时所需setting.xml(博主推荐)

    我目前,收录经常用的是,这两个版本,这个根据博主我本人的经验之谈,最为稳定和合理的. 注意:我的本地路径是在D:/SoftWare/maven/repository,大家自己改为你们自己的即可.   ...

  8. asp.net Code学习一(vs code跨平台软件操作)

    1.命令行: dotnet new -t web 创建web项目 dotnet new restore build pubilsh run test pack dotnet -info / -h do ...

  9. setting.system-全局属性的设定

    SystemProperties跟Settings.System 1 使用 SystemProperties.get如果属性名称以“ro.”开头,那么这个属性被视为只读属性.一旦设置,属性值不能改变. ...

  10. Flask项目之手机端租房网站的实战开发(七)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/8 ...