java面试网络协议相关面试题.docx
- 文档编号:3273940
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:8
- 大小:22.41KB
java面试网络协议相关面试题.docx
《java面试网络协议相关面试题.docx》由会员分享,可在线阅读,更多相关《java面试网络协议相关面试题.docx(8页珍藏版)》请在冰豆网上搜索。
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处理的一个过程,对称加密和非对称加密
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 面试 网络 协议 相关 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)