JAVA 中高级面试笔试题

Java类(10题)
1、面向对象的特征有哪些方面  
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3.封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4. 多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

2、说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

3、构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

4、String s = new String(“xyz”);创建了几个String Object
两个

5、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

6、Spring 全局处理异常有几种方式,列举其中一种
使用@ExceptionHandler进行处理

1.创建异常基类,使用@ExceptionHandler声明异常处理
BusinessException和SystemException为自定义异常类,代码如下:
package com.twosnail.exception;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
@Controllerpublic class BasicExController {
/** * 基于@ExceptionHandler异常处理基类 * @return */ @ExceptionHandler
public String exception( HttpServletRequest request , Exception ex ) {
// 根据不同错误转向不同页面
if( ex instanceof BusinessException ) {
return “business-error”;
}else if( ex instanceof SystemException ) {
return “system-error”;
} else {
return “error”;
}
}
}

2.使所有需要异常处理的Controller都继承该类,如下所示:
public class DemoController extends BasicExController {}
然而,Dao层、Service层、Controller层抛出的异常(BusinessException、SystemException和其它异常)都能准确显示定义的异常处理页面,达到了统一异常处理的目标。

二、SimpleMappingExceptionResolver简单异常处理器

7、对List<Map<String, String>>排序, 要求可以按照正序,逆序排序(代码写不出来可以写原理)
list集合本身就是有序的数组

//正序
for(int i=0;i<list.length;i++)
{ list[i] }
for(int i=list.length;i>0;i–)
{ list[i] }

8、获取一个Bean的方法,并调用该方法, 例如下面的NameBean,如何获取setName的方法,并调用它,利用Java反射原理
public class NameBean{
public String name;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
}

import java.lang.reflect.method;
public class Test {
public static void main(String args[]) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException, SecurityException, NoSuchmethodException
{
Class NameBean c = NameBean.class;
method m = c.getDeclaredmethod("setName ", String.class); m.setAccessible(true);
NameBean nb = c.newInstance();
m.invoke(nb, “Hello”);
}
}

9、如何用maven 添加中央库没有的jar包,如何处理父子工程
本地的setting.xml 配置好中央仓库的地址,用户名。用deploy 命令上传。或者用maven中央仓库的管理工具nexus在nexus中上传。

10、java后端如何防范网络攻击,列举一二
1)后端校验数据的完整性和安全性
2)使用双向的SSL实现数据传输保密

UNIX,LINUX(10题)
一、          填空题:
1.     有两种流控方法,一是硬件方式,利用( RS232 )接口的CTS信号线即允许发送,RTS信号线即请求发送;二是软件方式,利用流控字符( Xon和Xoff )。
2.     虚拟终端,是PC机通过( 网络 )与UNIX主机相连,客户端运行( telnet )程序,服务器端运行( telnetd )程序,成为UNIX的一个基于TCP通信的虚拟终端。
3. 内核分为 进程管理系统 、 内存管理系统 、 I/O管理系统 和文件管理系统 等四个子系统。
4. 进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基本状态为: 运行态 、 就绪态 和 等待态(阻塞态) 。。
5. 欲发送10个分组报文测试与主机abc.tuu.edu.cn的连通性,应使用的命令和参数是( ping abc.tuu.edu.cn –c 10 。
)

二、     单项选择题:

1.用ls –al 命令列出下面的文件列表,( D )文件是符号连接文件。
A. -rw-rw-rw- 2 hel-s users 56 Sep 09 11:05 hello
B. -rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbey
C. drwxr–r-- 1 hel users 1024 Sep 10 08:10 zhang
D. lrwxr–r-- 1 hel users 2024 Sep 12 08:12 cheng

2.在/home/stud1/wang目录下有一文件file,使用( D )可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中。
A. cat file >;file.copy B. cat >;file.copy
C. cat file file.copy & D. cat file >file.copy &

3.下面的网络协议中,面向连接的的协议是( A )。
A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议
Linux文件权限一共10位长度,分成四段,第三段表示的内容是 ( )。
A 文件类型 B 文件所有者的权限
C 文件所有者所在组的权限 D 其他用户的权限

4.在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是 ( C )
A 主机IP设置有误
B 没有设置连接局域网的网关
C 局域网的网关或主机的网关设置有误
D 局域网DNS服务器设置有误

5.下列文件中,包含了主机名到IP地址的映射关系的文件是( B )。
A /etc/HOSTNAME B /etc/hosts C /etc/resolv.conf D /etc/networks

运维(5题)
1.你在局域网内想获得IP 192.168.1.2 的MAC,在XP系统的命令提示符中如何操作?

在CMD命令行输入 nbtstat -a 192.168.1.2

2.ICMP 在沟通之中,主要是透过不同的类别(Type)与代码(Code)让机器来识别不同的连线状态,请问 type 8 名称( D ),代表的意思 是( )
ICMP是“Internet Control Message Protocol”(Internet控制消息协议)的缩写, 用于在IP主机、路由器之间传递控制消息
  Echo Request 请求回应讯息 Echo Reply 是一个回应信息。
  Timestamp Replay 此讯息纯粹是回应Timestamp Request用的
  Timestamp Request 要求对方送出时间讯息用以计算路由时间的差异以满足同步性协定的要求
  Redirect 用来重新导向路由路径

3.ISO/OSI 7层模型和TCP/IP 四层协议都是什么?并简单画出二者间每层的对应关系及每层运行的协议
 ISO/OSI  TCP/IP  协议
  物理层数据链路层网络层 传输层 会话层 表示层 应用层
  网络接口 网间层 传输层 应用层
4.如何查看系统分区的容量使用情况?如何查看 /var/log 目录的使用容量?

df –h
  du –sh /var/log
  cat /dev/null >/var/log/messages

5.[root@seker root]# rpm -qa | grep sendmail
  sendmail-8.12.11-4.RHEL3.1
  [root@seker root]# rpm -e sendmail-8.12.11-4.RHEL3.1
  error: Failed dependencies:
  /usr/sbin/sendmail is needed by (installed) redhat-lsb-1.3-3.1.EL3.centos.0
  smtpdaemon is needed by (installed) mdadm-1.5.0-9
  [root@seker root]#
-e 参数是卸载指定rpm包,如上提示为什么不能卸载?如何才能卸载?
redhat-lsb-1.3-3.1.EL3.centos.0 和 mdadm-1.5.0-9 需要sendmail-8.12.11-4.RHEL3.1软件包,所以,在删除sendmail-8.12.11-4.RHEL3.1之前,要先删除前面这两个软件包

发布了40 篇原创文章 · 获赞 53 · 访问量 7715

猜你喜欢

转载自blog.csdn.net/qq_44758351/article/details/104184667