综合面试题(1-80题)
1、写出6个java 常用的包
答:(1)https://www.wendangku.net/doc/584335094.html,ng包(2)java.util包(3)java.io包
(4)java.awt包(5)javax.swing包(6)https://www.wendangku.net/doc/584335094.html,包
2、写出java 类的super 和this 区别
答:super表示超(父)类的意思,this代表对象本身。
3、写出tomcat默认端口号,以及修改
答:在server.xml的修改
4、写出生成20个随机数,并用冒泡排序
答:int temp=0;//设置一个临时变量
int[] demo={3,5,1,4,2};
for(int i=1;i for(int j=0;j temp=demo[j+1]; demo[j+1]=demo[j]; demo[j]=temp; } } } //输出 for(int k=0;k System.out.println(demo[k]); } 5、写出九九乘法表 答:for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(i+"*"+j+"="+i*j+"\t"); } System.out.print("\n"); } 6、写出html或其它语言的登录页面 答: 密码: 7、1-1000内,能被2,3,5之一整除的数有多少个? 答:int count=0; for(int i=1;i<=1000;i++){ if(i%2==0 || i%3==0 ||i%5==0){ count++; } } System.out.println(count); Count:734 8、ArrayList.Vector,LinkList的存储性能和区别? 答:ArrayList和Vector都是使用数组的方式来存储数据,此数组元 素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序 号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索 引数据快而插入数据慢,Vector 由于使用了synchronized 方法(线 程安全),通常性能上较ArrayList 差,而LinkedList 使用双向链表 实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据 时只需要记录本项的前后项即可,所以插入速度较快。 9、.Hibnate是什么? 答:hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封 装,而我们java程序员可以使用面向对象的思想来操纵数据库。 https://www.wendangku.net/doc/584335094.html,/dashi/p/3597969.html 10、怎么调用数据库数据 答:创建jdbc连接获取数据库的值 11、如何给一个div 加样式用JQuery? 答:$(function(){ $(“#demo”).css(“ background-color”:”red”); }) 12、如何实现JSON? 答:首先要引入json包,JSONArray jsonArray2 = JSONArray.fromObject( list ); 13、说说Hiberate的优点? 答:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 14、Struts标签熟吗,如果要遍历一个集合用哪个标签? 答:s:iterator 15、页面跳转的方法? 答:window.location.href=url; 16、Struts2的应用?工作流程? 答:工作流程:(1)用户请求(2)在web.xml中配置的StrutsPrepareAndExecuteFilter(struts2的框架的核心控制器)就会过滤该请求 (3)struts.xml会起映射作用,它会根据“*”来决定调用用户定义的哪个Action类(4)再调用其execute()方法来处理用户请求,处理结束后,返回一个值,这时struts.xml 文件又起映射作用,根据返回的值来确定跳转到哪个页面。 17、Hibernate是怎么写的? 答: 18、能用Dreamweaver编写广告悬浮窗吗? 答:可以,position: absolute; ;z-index:1; 19、讲一下JA V A中你用的好的技术? 答:熟练掌握ssh以及ssm进行web开发 20、Struts2的工作原理? 答:(1)客户端(Client)向Action发用一个请求(Request) (2)Container通过web.xml映射请求,并获得控制器(Controller)的名字 (3)容器(Container)调用控制器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。在 Struts2.1以前调用FilterDispatcher,Struts2.1以后调用StrutsPrepareAndExecuteFilter (4)控制器(Controller)通过ActionMapper获得Action的信息(5)控制器(Controller)调用ActionProxy (6) ActionProxy读取struts.xml文件获取action和interceptor stack的信息。 (7) ActionProxy把request请求传递给ActionInvocation (8) ActionInvocation依次调用action和interceptor (9)根据action的配置信息,产生result (10)Result信息返回给ActionInvocation (11)产生一个HttpServletResponse响应 (12)产生的响应行为发送给客户端。 21、客户端发送HTTP请求的方式都有哪些? 答:get和post 22、关于AJAX你讲一下怎么用?回调函数怎么写的? 答:当一个请求之后,你不想整个页面刷新,只是局部页面的刷新,你就可以用ajax 回调函数:success:function(value){ Alert(“value就是你成功返回的值”) } 23、关于通信的,比如说定义一个Boolean的方法,然后给你一个IP地址,判断IP地址的正确性,返回true false。你有什么思路答:通过正则表达式去判断ip地址是否合法 24、你都做过什么项目啊? 答:oa办公系统,投票系统 25、基于javaweb的植物大战僵尸用什么技术实现的? 答:ssh或者ssm,jquery,ajax,算法,图像 26、怎么获取页面元素? 答:$(“#demo”).text()或者$(“#demo”).value() 或则document.getElementByName("demo"); 27、怎么添加一个样式? 答:参考上面11题 28、培训期间学习了什么东西? 答:了解java的编程思想,熟练运用3大开源框架spring,struts,hibernate进行web页面开发,也熟练运用mybatis,springmvc框架开发项目;前台框架有ext,bootstrap,数量运用jquery,ajax以及css进行页面的开发以及美化;熟练掌握oracle以及sqlserver数据库,熟练使用sql语句以及其他数据库的操作;熟练运用tomcat部署项目。有良好的编码习惯。 29、对面向对象的理解? 答:万物皆对象,类是对象的抽象,对象是类的实例。 封装的3大特性:封装,继承,多态。 30、用到什么数据库? 答:oracle和sqlserver 31、简单说一下数据库的复杂查询,举个例子 答:含有子查询的sql语句 32、过C语言吗?说一下在JA V A中用到的算法和数据传输的知识。 答:学过c#,算法:1.选择排序 2. 插入排序 3. 冒泡排序 4. 希尔排序 5. 归并排序6. 快速排序 应用系统之间数据传输有三个要素:传输方式,传输协议,数据格式 数据传输方式:1 socket方式 2 ftp/文件共享服务器方式3数据库共享数据方式 4 message方式 33、面向对象和面向过程的区别? 答:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 34、主要对三层中哪一层比较熟悉,应用最多?怎么生成的业务逻辑层 答:数据访问层,通过调用接口实现 35、在业务逻辑层主要用哪些技术?答:继承,多态, 36、C语言中的指针,文件操作? 答:1.打开文件,2.读写文件3.关闭文件 37、怎样在两台电脑间进行通讯? 答:socket方式 38、Java学到什么程度? 答:还要继续学习 39、谈谈你对Java的认识? 答:是一种编程语言。 40、Spring的三大特点? 答:依赖注入;控制反转;面向切向 41、Oracle数据库怎么在项目中应用的? 答:如果使用了hibernate,或者mybatis等框架,直接在其xml文件中位置即可。相反,则需要建立一个连接数据库的类。 42、使用spring的好处是什么? 答:1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑 2.可以提供众多服务,事务管理,WS等。 3.AOP的很好支持,方便面向切面编程。 4.对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等 5.Spring DI机制降低了业务对象替换的复杂性。 6.Spring属于低侵入,代码污染极低。 7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部 43、Linux的使用的版本? 答:RedHat 44、C语言中说一下文件操作怎么执行的? 答:参考36题 45、数据库中分页查询是怎么实现的? 答:sql:用top oracle:用rownumber 46、解释一下mvc? 答:mvc是3层架构,分别是模型层,界面层,控制器层。他的工作工作原理是用户在页面发送请求到控制器层,控制器层过滤请求,对请求进行配对,如果配对成功后,然后,进行业务逻辑的判断,最后,进入模型层,模型层通过跟数据库交互,返回数据给页面。 47、流程图怎么画?你画一个? 答: 48、说一下集合比如set 、list等 答:1、List,Set都是继承自Collection接口 2、List特点:元素有放入顺序,元素可重复,Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) 3、List接口有三个实现类:LinkedList,ArrayList,Vector ,Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet 49、怎么获取页面元素? 答:$(“#demo”) 50、怎么添加一个样式 答:参考之前的 51、spring、struts怎么用? 答:下载相应的jar包(Struts2-spring-plugin-XXX.jar),在web.xml配置监听,在applicationContext.xml配置事务,以及action的注入。 在struts.xml配置对应的action方法。 52、怎样理解面相对象? 答:参考之前的 53、算法你了解多少?冒泡算法、堆栈算法了解么? .答:冒泡算法: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后 的元素应该会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4..持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 . 堆栈算法:定义:是一种抽象数据类型。 特点:后进先出,只在栈尾操作 54、怎么给Tomcat配置虚拟机? 答:进入C:\WINDOWS\system32\drivers\etc目录下面的hosts文件,把localhost改成https://www.wendangku.net/doc/584335094.html,,也可以添加一行。然后,进入D:\apache-tomcat-7.0.22\conf目录下面的server.xml文件,把 55、Set,list,map的区别? 答:List特点:元素有放入顺序,元素可重复 Map特点:元素按键值对存储,无放入顺序 Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set 中的位置是有该元素的HashCode决定的,其位置其实是固定的) 56、Struts2的action的运行过程? 答:页面提交一个xxx.action的请求,在struts.xml再匹配对应的类,如果有method的方法,就通过method的值,进入对应的action类, 再通过result返回对应的页面。 57、Struts2的核心方法? 答:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 58、操作ORM层用过什么? 答:hibernate和mybatis 59、Spring怎么实现依赖注入? 答:通过setter方法,构造方法,接口 60、JavaScript和jQue ry的关系?区别? 答:jquery封装了js的底层方法 61、Ajax是什么? 答:AJAX 是一种用于创建快速动态网页的技术。 62、Ajax的核心类? 答:XmlHttpRequest 63、Ajax的实现? 答:1.创建xmlhttprequest对象(要考虑浏览器兼容问题) 2.使用xmlhttprequest对象打开一个连接(链接方式get/post和连接地址以及是否同步) 3.设置请求的头部(请求的类型和请求的编码格式) 4.设置回调函数 5.发送请求 6.更新页面显示 64、接口和类的区别? 答:1、接口类似于类,但接口的成员都没有执行方式,它只是方法、属性、事件和索引的组合而已,并且也只能包含这四种成员;类除了这四种成员之外还可以有别的成员(如字段)。 2、不能实例化一个接口,接口只包括成员的签名;而类可以实例化(abstract类除外)。 3、接口没有构造函数,类有构造函数。 4、接口不能进行运算符的重载,类可以进行运算符重载。 5、接口的成员没有任何修饰符,其成员总是公共的,而类的成员则可以有修饰符(如:虚拟或者静态)。 6、派生于接口的类必须实现接口中所有成员的执行方式,而从类派生则不然。 65、Oracle和mysql的sql语句有什么区别? 答:分页查询时oracle用的伪列(rownum),mysql用的是limit 66、Oracle中怎么创建用户?给用户赋权?赋予什么权限? 答:创建用户:create user 用户名identified by 密码 赋予权限:grant dba to 用户名 67、Oracle中怎么删除一万条数据? 答:delete from 表名where rownumber between 1 and 10000 68、mysql中用过什么?分页是怎么实现的? 答:select * from tableName where条件limit(页码-1)*每页记录数,每页记录数 69、Mysql中怎么导入和导出数据?命令。 答:导出表数据:mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --tables mysql user> db.table.sql 导入表数据:mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 mysql < db.table.sql 70、Div怎么布局? 答:通过css的样式 71、Java包括什么? 答:1.数据类型、变量、数组 2.运算符 3.程序控制语句 4.类 5.继承6.包和接口7.异常8.多线程9.图像10.图像 72、Linux的常用命令? 答:◆安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、 ln; ◆系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;◆网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 73、jsp与servlet的关系? 答:servlet是在服务器端执行的java程序,只不过它有专门的一套规则(就是我们平常 所说的api);jsp说得简单点就是用另一套简单的规则写的servlet程序,它可以写java代码,还可以写html代码,JavaScript,css等等……,但是到服务器端首先会被转成servlet 程序然后就按照servlet的执行顺序执行了。 74、什么是aop?作用? 答:AOP: (Aspect Oriented Programming) 面向切面编程。是目前软件开发中的一个热点,也是spring框架中容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。 75、指针的作用? 答:指针使用比较灵活,如果说它的好处,根据我平时编程时的感受,大概有 这么几点: 1.在数据传递时,如果数据块较大(比如说数据缓冲区或比较大的结构),这时就可以使用指针传递地址而不是实际数据,即提高传输速度,又节省大量内存。 2.数据转换,利用指针的灵活的类型转换,可以用来做数据类型转换,比较常用于通讯缓冲区的填充,比如说,一个数据缓冲区char buf[100],如果其中buf[0,1]为命令号,buf[2,3]为类型,buf[4~7]为某一数值,类型为int,就可以使用如下语句进行赋值: *(short*)&buf[0]=cmdID; *(short*)&buf[2]=type; *(int*)&buf[4]=value; 3.字符串指针,是使用最方便,且常用的。 4.函数指针,形如:#define PMYFUN (void*)(int,int),可以用在大量分支处理的实例当中,如某通讯根据不同的命令号执行不同类型的命令,则可以建立一个函数指针数组,进行散转。 5.在数据结构中,链表、树、图等大量的应用都离不开指针。 76、常用的数据集合?list的实现类是? 答:数据集合:list,set,map List的实现类:ArrayList,linkedlist 77、oracle和mysql的区别? 答:1.oracle中序列用sequence创建,而在mysql中利用auto_increment 实现 1.在oracle中使用伪字段rownumber进行分页,而在mysql中使用limit 进行分页 2.在oracle中全是一些表空间,在表空间中创建数剧库,而在mysql 中它是直接创建数剧库在创建表 78、创建表的语句怎么写? 答:Create table 表名(字段名数剧类型) 79、插入数据的语句怎么写? 答:Insert into 表名(字段名1,字段2....字段n)values(值1,值2,....值n) 80、分组的关键字? 答:group by