java面试网络协议相关面试题.docx

上传人:b****6 文档编号:3273940 上传时间:2022-11-21 格式:DOCX 页数:8 大小:22.41KB
下载 相关 举报
java面试网络协议相关面试题.docx_第1页
第1页 / 共8页
java面试网络协议相关面试题.docx_第2页
第2页 / 共8页
java面试网络协议相关面试题.docx_第3页
第3页 / 共8页
java面试网络协议相关面试题.docx_第4页
第4页 / 共8页
java面试网络协议相关面试题.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

java面试网络协议相关面试题.docx

《java面试网络协议相关面试题.docx》由会员分享,可在线阅读,更多相关《java面试网络协议相关面试题.docx(8页珍藏版)》请在冰豆网上搜索。

java面试网络协议相关面试题.docx

java面试网络协议相关面试题

竭诚为您提供优质文档/双击可除

java面试,网络协议相关面试题

  篇一:

javaweb面试题和逻辑题及答案

  1

  2

  3

  4

  5、

  查询:

selectstudentid,studentname,birthdayfromxj_student;

  删除:

deletefromxj_studentwherestudentid=;

  修改:

updatexj_studentsetstudentname=,birthday=wherestudentid=;

  添加:

insertintoxj_studentvalues(,,);

  6、请在下面写出一个验证表单testForm的username输入框的输入内容长度不能小于

  10字

  7

  8

  逻辑思维题

  1、鲁道夫、菲利普、罗伯特三位青年,一个当了歌手,一个考上大学,一个加入美军陆战

  队,个个未来都大有作为。

现已知:

a.罗伯特的年龄比战士的大;b.大学生的年龄比菲利普小;c.鲁道夫的年龄和大学生的年龄不一样。

请问:

三个人中谁是歌手?

谁是大学生?

谁是士兵?

  2、有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。

  筐上的标签都是骗人的,(比如,如果标签写的是橘子,那么可以肯定筐里不会只有橘

  子,可能还有苹果)你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三

  3、假设一个池塘,里面有无穷多的水。

现有2个空水壶,容积分别为5升和6升。

问题是

  4、你让工人为你工作7天,给工人的汇报是一根金条。

你必须在每天结束时都付费1/7的

  工钱,但只许你把今天弄断3段,你如何给工人付费?

  5

  6、一个人花8块钱买了一只鸡,9元钱卖掉,然后觉得不划算又花10块钱买回来,然后

  7、一列火车全长250米,每小时60公里的速度,穿越长达500米的隧道,请在半分钟内

  8、有一个人在自由市场买了两只鸡,在回家的路上遇到两个熟人要买他的鸡,他只好把鸡

  卖了,每只鸡6元钱。

其中一只赚了20%,另外一只赔了20%,请问这个人是赔了还是赚了,是多少钱?

  9

  10、有一只蜗牛要从井底爬出来,井深20尺,蜗牛每天白天向上爬3尺,晚上下滑2

  篇二:

必看的java编程面试题

  必看的java编程面试题概述mVc体系结构?

  答:

mVc包括三类对象,model是应用对象,view是视图,controller是控制器,它定义用户界面对用户输入的响应方式。

  在mVc体系中,模型通常被称为”业务逻辑”,是真正完成任务的代码,视图就是使用界面,反映数据的变化。

控制器控制着模型和视图之间的交互过程,它决定着向用户返回怎样的视图、检查通过界面输入的信息以及选择处理输入信息的模型。

在mVc中,表示层和逻辑层分离,各部分可相互独立进行开发,便于开发和维护,提高了开发效率。

  概述struts,以及struts如何实现mVc架构的?

  答:

strutsframework是一种基于jaVa编程的技术,web应用程序开发人员通过strutsframework即可充分利用面向对象设计、代码重用以及”编写一次、到处运行”的优点。

struts提供了一种创建web应用程序的框架,其中对应用程序的显示、表示和数据的后端代码进行了抽象。

struts采用jsp作为mVc的视图,由actionservlet具体指定的action动作类作为控制器即mVc中的c,负责视图与模型之间的交互。

控制器的每个入口点都由名为struts-config.xml的配置文件设置。

该文件把来自视图的请求映射为特定的jaVa类以进行相应的处理,控制器还指定下一个视图的位置。

struts中的模型主要指的就是javabean,它是模型的代表,主要封装数据和业务逻辑。

  struts的处理流程:

  l、控制器进行初始化工作,读取配置文件,为不同的struts模块初始化相应的modulconfig对象。

  2、控制器接收http请求,并从actionconfig中找出对应于该请求的action子类,如果没有对应的action,控制器直接将请求转发给jsp或者静态页面,否则控制器将请求分发至具体的action类进行处理。

  3、在控制器调用具体的action的execute方法之前,actionForm对象将利用http请求中的参数来填充自已。

还可以在actionForm类中调用Validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的actionerrors对象。

  4、执行具体的的execute的方法,它负责执行相应的业务逻辑。

执行完后,返回一个actionForward对象,控制器通过该actionForward对象来进行转发工作。

也可以把action要处理的业务逻辑封装在javabean中,如果系统中还有ejb,那么通过javabean调用ejb以完成业务处理;如果没有ejb,那么就直接在javabean中连接数据库,进行数据库相关的操作。

  1.int和integer的区别

  integer是一个类,对它的操作要通过类的方法,int是8种基本数据类型之一(八种数据类型:

字符类型:

char,布尔类型boolean以及数值类型byte、short、int、long、float、double)。

integer是对int的封装。

声明int的变量不需要实例化。

声明integer变量需要实例化。

int

  不需要实例化。

  2.string和stringbuffer的区别

  string声明的数组长度是确定的,不能随意增加其容量。

线程安全的可变字符序列。

stringbuffer可随意增加容量,线程安全的字符序列

  3.运行时异常和一般异常的区别

  运行时异常时程序运行时可能报出的异常。

可以用trycatch获得,也可以不做处理。

比如:

indexoutofexception、classcase\texception、nullpotionterexception、classnotfoundexception

  一般异常,这些异常时在定义方法是声明抛出的,这些异常必需用trycatch抛出,或throws处理,如果不处理,如果不处理,程序将编译失败。

比如:

ioexcption、filenotfoundexception、sqlexption

  4.例举5个常用的包、类、接口

  包名:

java.util,java.io,java.awt,java.lang,java.swing

  类名:

string,stringbuffer,date,calendar,hashmap,hashset

  接口:

collection,action,serziale,actionsupport,map

  5.Vector和linklis

  Vector:

由于使用了synchronized方法(线程安全),通常性能上较arraylist差

  linkedlist:

使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,插入速度较快。

  6.连接池的工作机制

  连接池控制着和数据库的链接,它来控制开启几个链接,关闭几个链接,什么时候关闭,调用什么方法,在hibernate中的,connectionprovider相当于一个连接池,它来维持session和数据库的链接状态。

  7.应用服务器有哪些

  tomcat,jboss,weblogic

  8.集合有哪些,集合的方法有哪些

  集合:

collection,map

  方法:

add,clear,remove,contains,equals,hashcode,clear,clone,size,isempty,put,get

  9.mVc各部分有哪些技术实现,是如何实现

  View:

产生http响应,请求模型更新,提供form表单用于用户请求

  model:

封装应用状态响应状态查询,暴露应用接口

  controller:

验证请求数据,将请求数据与模型更新相映射,返回响应的视图。

  10.struts的配置文件有哪些,解释globalForwards、actionmapping、messageResourcestruts-config.xml

  返回公共页面的配置,比如:

返回到错误页面,登录页面

  配置action的相关信息,包括path,type,name,validate,scope,input

  描述该模块的一起配合使用的消息资源,messageresource对象

  11.简述actionForm和action在struts中扮演的角色

  actionform封装请求的数据

  action处理用户请求产生响应

  12.方法里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会执行?

会,而且先执行finally,在执行try

  13.在web应用中,你都使用那些技术或方法来改善系统的性能?

  ajax,action(线程安全,运行慢),jbpm,写一些公共的类,方法,进行调用对服务器访问人数控制。

编程用java实现将c盘的一个文本文件复制到d盘importjava.io.FileReader;

  importjava.io.Filewriter;

  importjava.io.ioexception;

  /*

  *需求:

将c盘的一个文本文件复制到d盘。

  *

  *思路:

  *1,需要读取源,

  *2,将读到的源数据写入到目的地。

  *3,既然是操作文本数据,使用字符流。

  *

  */

  publicclasscopytexttest{

  /**

  *@paramargs

  *@throwsioexception

  */

  publicstaticvoidmain(string[]args)throwsioexception{

  //1,读取一个已有的文本文件,使用字符读取流和文件相关联。

  FileReaderfr=newFileReader(“io流_2.txt”);

  //2,创建一个目的,用于存储读到数据。

  Filewriterfw=newFilewriter(“copytext_1.txt”);

  //3,频繁的读写操作。

  intch=0;

  while((ch=fr.read())!

=-1){

  fw.write(ch);

  }

  //4,关闭流资源。

  fw.close();

  fr.close();

  }

  }

  2.以下是借助了数组,即缓冲区,并进行了异常处理

  importjava.io.FileReader;

  importjava.io.Filewriter;

  importjava.io.ioexception;

  publicclasscopytexttest_2{

  privatestaticfinalintbuFFeR_size=1024;

  /**

  *@paramargs

  */

  publicstaticvoidmain(string[]args){

  FileReaderfr=null;

  Filewriterfw=null;

  try{

  fr=newFileReader(“io流_2.txt”);

  fw=newFilewriter(“copytest_2.txt”);

  //创建一个临时容器,用于缓存读取到的字符。

  char[]buf=newchar[buFFeR_size];//这就是缓冲区。

  //定义一个变量记录读取到的字符数,(其实就是往数组里装的字符个数)

  intlen=0;

  while((len=fr.read(buf))!

=-1){

  fw.write(buf,0,len);

  }

  }catch(exceptione){

  //system.out.println(“读写失败”);

  thrownewRuntimeexception(“读写失败”);

  }finally{

  if(fw!

=null)

  try{

  fw.close();

  }catch(ioexceptione){

  e.printstacktrace();

  }

  if(fr!

=null)

  try{

  fr.close();

  }catch(ioexceptione){

  e.printstacktrace();

  }

  }

  }

  }

  在java中,构造方法必须满足什么样的规则,构造方法能够被static,final,synchronized,abstract和native修饰吗?

请说明你的理解。

  答:

构造方法一般需要满足以下几条规则:

  

(1)方法名必须与类名保持一致。

  

(2)不要声明返回类型。

  (3)不能被static,final,synchronized,abstract和native修饰。

构造方法不能被子类继承,所以用final和abstract修饰没有任何意义。

构造方法用于初始化一个新建对象,所以用static修饰没有意义。

多个线程不会同时创建内存地址相同的对象,因此使用synchronized修饰也是没有必要的。

此外,java语言目前还不支持native类型的构造方法。

  知识扩展:

  用this语句来调用其他构造方法时,必须遵守以下规则:

  

(1)假如在一个构造方法中使用了this语句,那么它必须作为构造方法的第一条语句(不考虑注释语句)。

  

(2)只能在一个构造方法中使用this语句来调用类的其他构造方法,而不能在实例方法中用this语句来调用类的其他构造方法。

  (3)只能用this语句来调用其他构造方法,而不能通过方法名来直接调用构造方法。

同样,使用super语句调用父类的构造方法时,也必须遵守以下语法规则:

  

(1)在子类的构造方法中,不能直接通过父类方法名来调用父类的构造方法,而是使用super语句。

  

(2)假如子类的构造方法中有super语句,它必须作为构造方法的第一条语句。

  篇三:

java开发常见面试题

  20xx年java开发岗位面试题归类

  20xx-02-20分类:

jaVa开发、编程开发、首页精华8人评论来源:

阿呆变geek

  分享到:

更多18

  下面是我自己收集整理的java岗位今天面经遇到的面试题,可以用它来好好准备面试。

  一、java基础

  1.string类为什么是final的。

  2  

.hashmap的源码,实现原理,底层结构。

  3.说说你知道的几个java集合类:

list、set、queue、map实现类咯。

  4.描述一下arraylist和linkedlist各自实现和区别

  5.java中的队列都有哪些,有什么区别。

  6.反射中,class.forname和classloader的区别

  7.java7、java8的新特性(baidu问的,好bt)

  8.java数组和链表两种结构的操作效率,在哪些情况下(从开头开始,从结尾开始,从中间开始),哪些操作(插入,查找,删除)的效率高

  9.java内存泄露的问题调查定位:

jmap,jstack的使用等等

  10.string、stringbuilder、stringbuffer区别

  11.hashtable和hashmap的区别

  13.异常的结构,运行时异常和非运行时异常,各举个例子

  14.stringa=“abc”stringb=“abc”stringc=newstring(“abc”)stringd=“ab”+“c”.他们之间用==比较的结果

  15.string类的常用方法

  16.java的引用类型有哪几种

  17.抽象类和接口的区别

  18.java的基础类型和字节大小。

  19.hashtable,hashmap,concurrenthashmap底层实现原理与线程安全问题(建议熟悉jdk源码,才能从容应答)

  20.如果不让你用javajdk提供的工具,你自己实现一个map,你怎么做。

说了好久,说了hashmap源代码,如果我做,就会借鉴hashmap的原理,说了一通hashmap实现

  21.hash冲突怎么办?

哪些解决散列冲突的方法?

  22.hashmap冲突很厉害,最差性能,你会怎么解决从o(n)提升到log(n)咯,用二叉排序树的思路说了一通

  23.rehash

  24.hashcode()与equals()生成算法、方法怎么重写

  二、javaio

  1.讲讲io里面的常见类,字节流、字符流、接口、实现类、方法阻塞。

  2.讲讲nio。

  3.string编码utF-8和gbk的区别

  4.什么时候使用字节流、什么时候使用字符流

  5.递归读取文件夹下的文件,代码怎么实现

  三、javaweb

  1.session和cookie的区别和联系,session的生命周期,多个服务部署时session管理。

  2.servlet的一些相关问题

  3.webservice相关问题

  4.jdbc连接,forname方式的步骤,怎么声明使用一个事务。

举例并具体代码

  5.无框架下配置web.xml的主要配置内容

  6.jsp和servlet的区别

  四、jVm

  1.java的内存模型以及gc算法

  2.jvm性能调优都做了什么

  3.介绍jVm中7个区域,然后把每个区域可能造成内存的溢出的情况说明

  4.介绍gc和gcRoot不正常引用。

  5.自己从classload加载方式,加载机制说开去,从程序运行时数据区,讲到内存分配,讲到string常量池,讲到jVm垃圾回收机制,算法,hotspot。

反正就是各种扩展

  6.jvm如何分配直接内存,new对象如何不分配在堆而是栈上,常量池解析

  7.数组多大放在jVm老年代(不只是设置pretenuresizethreshold,问通常多大,没做过一问便知)

  8.老年代中数组的访问方式

  9.gc算法,永久代对象如何gc,gc有环怎么处理

  10.谁会被gc,什么时候gc

  11.如果想不被gc怎么办

  12.如果想在gc中生存1次怎么办

  五、开源框架

  1.hibernate和ibatis的区别

  2.讲讲mybatis的连接池。

  3.spring框架中需要引用哪些jar包,以及这些jar包的用途

  4.springmVc的原理

  5.springmVc注解的意思

  6.spring中beanFactory和applicationcontext的联系和区别

  7.spring注入的几种方式(循环注入)

  8.spring如何实现事物管理的

  9.springioc

  10.springaop的原理

  11.hibernate中的1级和2级缓存的使用方式以及区别原理(lazy-load的理解)

  12.hibernate的原理体系架构,五大核心接口,hibernate对象的三种状态转换,事务管理。

  六、多线程

  1.java创建线程之后,直接调用start()方法和run()的区别

  2.常用的线程池模式以及不同线程池的使用场景

  3.newFixedthreadpool此种线程池如果线程数达到最大值后会怎么办,底层原理。

  4.多线程之间通信的同步问题,synchronized锁的是对象,衍伸出和synchronized相关很多的具体问题,例如同一个类不同方法都有synchronized锁,一个对象是否可以同时访问。

或者一个类的static构造方法加上synchronized之后的锁的影响。

  5.了解可重入锁的含义,以及Reentrantlock和synchronized的区别

  6.同步的数据结构,例如concurrenthashmap的源码理解以及内部实现原理,为什么他是同步的且效率高

  7.atomicinteger和等线程安全操作的关键字的理解和使用

  8.线程间通信,wait和notify

  9.定时线程的使用

  10.场景:

在一个主线程中,要求有大量(很多很多)子线程执行完之后,主线程才执行完成。

多种方式,考虑效率。

  11.进程和线程的区别

  12.什么叫线程安全?

举例说明

  13.线程的几种状态

  14.并发、同步的接口或方法

  15.hashmap是否线程安全,为何不安全。

concurrenthashmap,线程安全,为何安全。

底层实现是怎么样的。

  16.j.u.c下的常见类的使用。

threadpool的深入考察;blockingqueue的使用。

(take,poll的区别,put,offer的区别);原子类的实现。

  17.简单介绍下多线程的情况,从建立一个线程开始。

然后怎么控制同步过程,多线程常用的方法和结构

  18.volatile的理解

  19.实现多线程有几种方式,多线程同步怎么做,说说几个线程里常用的方法

  七、网络通信

  1.http是无状态通信,http的请求方式有哪些,可以自己定义新的请求方式么。

  2.socket通信,以及长连接,分包,连接异常断开的处理。

  3.socket通信模型的使用,aio和nio。

  4.socket框架netty的使用,以及nio的实现原理,为什么是异步非阻塞。

  5.同步和异步,阻塞和非阻塞。

  6.osi七层模型,包括tcp,ip的一些基本知识

  7.http中,getpost的区别

  8.说说http,tcp,udp之间关系和区别。

  9.说说浏览器访问,经历了怎样的过程。

  10.http协议、https协议,ssl协议及完整交互过程;

  11.tcp的拥塞,快回传,ip的报文丢弃

  12.https处理的一个过程,对称加密和非对称加密

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1