记录java工程师面试题总结

第一题: 

深度学习是当前很热门的机器学习算法。在深度学习中,涉及到大量矩阵相乘,
现在需要计算三个稠密矩阵A,B,C的乘积ABC,假设三个矩阵的尺寸分别为m*n,n*p,p*q,且m<n<p<q,
以下计算顺序效率最高的是:() 
正确答案是:B 你的答案是:未做 错误

A(BC)
(AB)C
(AC)B
所有效率都相同
解析:
搜索我的文章:三个元素相乘的矩阵乘除法

第二题:

下面有关http keep-alive说法错误的是?、

A: 在HTTP1.0和HTTP1.1协议中都有对KeepAlive的支持。其中HTTP1.0需要在request中增加“Connection: 
    keep-alive” header才能够支持,而HTTP1.1默认支持
B: 当使用Keep-Alive模式时,Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请 
   求时,Keep-Alive功能避免了建立或者重新建立连接
C: 可以在服务器端设置是否支持keep-alive
D: 当你的Server多为动态请求,建议开启keep-alive增加传输效率
解析: D
1. A、B、C为keep-alive的概念客观性描述,说法都是正确的
2. 当Server的静态资源(css 、html、js、img)较多时,打开keep-alive的开关能够显著减少建立tcp连接的    cpu时间消耗
3. 当Server的请求大多为动态请求(数据库访问或者I/O较多)时,keep-alive关闭比较好,能够节省一定     的内存,同时节省的内存可以用来作为cache,降低I/O压力
4. 基于以上分析,当Server多为动态请求时,尽量关闭keep-alive

第三题:

在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();
  }
}

A: 创建了一个com.TestUtil对象
B:  创建了一个com.util.TestUtil对象
c:  运行时出现异常
D: 编译无法通过

解析: D

java导包冲突,,,不允许同时导入两个有相同类名的包,eclipse无法识别出到底选哪个包,所以就报错了咯
import  com.textUtil
import com.util.testUtil
这两个包有冲突;
删除其中任意一个包就不会报错了

第四题:

一:linux文件权限对应的数字:

1:在Linux中,file.sh文件的权限为-rw-r--r-x, 其对应权限用数值形式表示为( A )

645
643
775
745

 

使用数字表示权限

除了符号,也可以使用八进制数字来指定具体权限,如下表所示:

数字

说明

权限

0

没有任何权限

---

1

执行权限

--x

2

写入权限

-w-

3

执行权限和写入权限:1 (执行) + 2 (写入) = 3

-wx

4

读取权限

r--

5

读取和执行权限:4 (读取) + 1 (执行) = 5

r-x

6

读取和写入权限:4 (读取) + 2 (写入) = 6

rw-

7

所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7

rwx

第五题:

[不定项选择题]
关于ACID下面说法正确的是?

A 是可用性。整个操作中的所有动作是保证高可用性,系统必须提供要求的稳定性,以保证事务的提交。
C 一致性。在事务开始之前和结束后,数据库的约束保持不变。
I 隔离性。两个同时运行的事务的执行是互不影响,中间结果不可交叉访问。
D 持久性。在事务提交以后,该事务所作的更改持久保存在存储介质之中,不会被回滚。
正确答案:B D

解析:
原子性( Atomicity): 整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环 
      节。事务在执行过程中发生错误,会被 回滚 (Rollback)到事务开始前的状态,就像这个事务从来没 
      有执行过一样。
一致性(Consistency): 在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。具体来说就 
       是,比如表与表之间存在外键约束关系,那么你对数据库进行的修改操作就必需要满足约束条件,即如 
       果你修改了一张表中的数据,那你还需要修改与之存在外键约束关系的其他表中对应的数据,以达到 
       一致性。
隔离性(Isolation): 隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事 
      务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在 
      使用系统。这种属性有时称为 串行 化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得 
      在同一时间仅有一个请求用于同一数据。
持久性(Durability): 在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中, 
      并不会被回滚。


第六题:

以下选项中哪个是发出下列查询后Oracle返回的值:

select substr(job, 1, 3) from emp where ename like upper(‘__ar%’) ?

正确答案是:A 你的答案是:未做 

ANA

CLE

MAN

SAL



解析:
---取1到3位
SQL> select job,substr(job,1,3) from emp;
结果:
JOB	  SUBSTR
--------- ------
CLERK	  CLE
SALESMAN  SAL
SALESMAN  SAL
...

---取后2位
SQL>  select job,substr(job,length(job)-1,length(job)) from emp;
 
JOB	  SUBSTR(JOB,LENGTH(
--------- ------------------
CLERK	  RK
SALESMAN  AN
SALESMAN  AN
MANAGER   ER
.....


例:select ename from emp where ename like'%A_ _ _'; 这条SQL语句中'%A_ _ _'是什么意思?


%是模糊查询,表示倒数第四位是字符A,%表示前边的字符串任意,下划线表示A的后边有多少位的字符串。
你这个结果查询出来的结果,都是A字符在倒数第四位的行。

重点:  select substr(job, 1, 3) from emp where ename like upper(‘_ _a%’) ?

依据上图可以看到  JOB 列中第三个字母是A 的单词是ANALYST   ,而(job,1,3)的意思是从第一个字母取到第三个

答案是:ANA  

第六题:

面试题:在Oracle中发出的下列查询:

SQL> select months_between(‘15-MAR-83’,’15-MAR-97’) form dual;

Oracle返回什么?

正确答案是:D 你的答案是:C 错误

A: 14

B: -14

C:  168

D: -168


解析:  {March(Mar)3月 }此题的问题是求:83年3月15日 -  97年3月15日  之间的有多少月?

求出是  83年3月15日 -  97年3月15日 = -168 月


MONTHS_BETWEEN (x, y)用于计算x和y之间有几个月。如果x在日历中比y早,那么MONTHS_BETWEEN()就返回一个负数。否者为正数

注意:

在调用MONTHS_BETWEEN函数时,日期的次序非常重要:如果想让结果为正数,稍晚的时间必须出现在前面。

下面这个例子显示了2008年5月25日和2008年1月15日之间相差的月数。注意由于第一个参数是稍后的日期(2005年5月25日),因此所 返回的结果是正数:
SELECT MONTHS_BETWEEN('25-MAY-2008', '15-JAN-2008' )FROM dual;
-------------------------------------------

结果:4.32258065
SELECT MONTHS_BETWEEN('15-JAN-2008' ,'25-MAY-2008')FROM dual;
结果:-4.32258065

 

 

 

 

 

 

 

 

 

 

 

二逻辑题:

【例题】(2010·江苏B类)三个学生共解出30道数学题,每人都解出了其中的12道,且每道

题都有人解出.只有一人解出的题叫做难题,只有两个人解出的题叫做中等题,
三人都解出的题叫做容易题.在这30道题中,难题、中等题、容易题均有,且题数各不相等,则难题的题数是( ).


A.14           B.15              C.22             D.25


【解析】D

假设难题有x道,中等题有y道,容易题有z道,那么根据题意可得:(1)x+2y+3z=36(2)x+y+z=30.(1)-(2)得:y+2Z=6,
因为y和z都是正整数且yz,所以只有一种情况,即y=4,z=1,这时x=25.所以正确答案为D项.

X+2y+3z=36这个方程什么意思:

每人解了12道,重复的算进去,总共解了36道.
难题一人解出,只有1*X道;中等题两人解出,则中等题有2*Y道(算重复的);简单题就是3Z道了.
所以X+2Y+3Z=36.

第五题:

 

 

二: 简答题:

第一题:描述IPv6相对IPv4带来了哪些技术差异?

一:IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,最大地址个数为2^32;而IPv6中IP地址的长度为128,即最大地址个数为2^128。与32位地址空间相比,其地址空间增加了2^128-2^32个。   
二:IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。   
三:IPv6增加了增强的组播(Multicast)支持以及对流的支持(Flow Control),这使得网络上的多媒体IPv6的长分布式结构图
[3]应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。   
四:IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。   
五:IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,在IPV6中的加密与鉴别选项提供了分组的保密性与完整性。极大的增强了网络的安全性。 六:允许扩充。如果新的技术或应用需要时,IPV6允许协议进行扩充。   
七:更好的头部格式。IPV6使用新的头部格式,其选项与基本头部分开,如果需要,可将选项插入到基本头部与上层数据之间。这就简化和加速了路由选择过程,因为大多数的选项不需要由路由选择。   
八:新的选项。IPV6有一些新的选项来实现附加的功能。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值