Java面试题

来源:互联网 发布:自动抢红包软件 编辑:程序博客网 时间:2024/06/03 16:40

1、 说说面向对象的特点
抽象封装继承多态

2、 Table标签中border、callpadding td标签中colspan、rowspan分别起什么作用
Border 是边框,callpadding是边框距离
Colspan合并行rowspan合并列

3、 js中的三种弹出式消息提醒(警告窗口确认窗口信息输入窗口)的命令是什么
警告框alert,确认框confirm,信息输入框prompt

4、 string和stringbuffer的区别
string是不可变的,是stringbuffer是可变的

5、列举java中6个常用的包
java.applet:包含一些用于创建Java小应用程序的类
java.awt:包含一些用于编写与平台无关的图形界面(GUI)应用程序的类。
java.io:包含一些用作输入输出(I/O)处理的类。
java.lang:包含一些Java语言的基本类与核心类,如String、Math、Integer、System和Runtime,提供常用的功能,这个包中的所有类是被隐式导入的。
java.net:包含用于建立网络连接的类,与java.io同时使用完成与网络有关的读写。
java.util:包含一些实用工具类和数据结构类。

6、 jsp中动态include和静态include的区别
动态include会解析你要包含的页面,静态include不会解析你要包含的页面

7、 xml中文是什么?列举两种解析方法
xml中文是拓展标记语言,方法是dom,sax

8、 页面间对象传递的方法
Response

9、 叙述abstract与interface额异同
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体

10、 假设现在有表system.table1,表中有是三个字段:id、name、age写出sql语句完成如下功能,在表中查出年龄大于20且名字以王开头的记录,并且按照年龄的倒叙排列出来,年龄大的在前面。
Select * form system.table1 order by age where age>20 and name like ‘”+王+”%’;

11、 preparestatement与statement的区别
Statement用于执行静态sql语句,在执行时,必须指定一个事先准备好的sql语句。
PrepareStatement是预编译的sql语句对象,sql语句被预编译并保存在对象中。被封装的sql语句代表某一类操作,语句中可以包含动态参数“?”,在执行时可以为“?”动态设置参数值。
使用PrepareStatement对象执行sql时,sql被数据库进行解析和编译,然后被放到命令缓冲区,每当执行同一个PrepareStatement对象时,它就会被解析一次,但不会被再次编译。在缓冲区可以发现预编译的命令,并且可以重用。
PrepareStatement可以减少编译次数提高数据库性能。

12、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1,如何输出一个某种编码的字符串?
text = new String( text.getBytes(“iso8859-1”),”gbk”);
13、试写一递归算法,用二分查找判断任意整数在任意整数数组里面是否存在,若存在就返回它在数组中的索引位置,不存在返回-1
public class BinarySearchDemo {

public static void main(String[] args) {
int[] a = new int[]{1,5,7,9,11,18,23,48,69};
int point = new BinarySearchDemo().binarySearch(a, 23);

    if(point == -1)        System.out.println("在数组中未查找到数23");    else         System.out.println("数字23是数组中第 " + (point + 1) + " 位数");}

1、 列举java中的基本数据类型
boolean、byte、char、short、int、float、douboe、long
2、用简短的代码实现字符串“s trin g”到“string”转换,即将多个空格转换为一个空格。
String str = ” s trin g “;
String str2 = str.replaceAll(” +”, ” “);
System.out.println(str2);
3、 arraylist和hashset的区别,hashmap和hashtable的区别
ArrayList是有序的,hashSet是无序的
Hashtable的方法是同步的,hashmap的方法不是同步的
4、 线程同步的关键字是什么?sleep()和wait()有什么区别,怎么唤醒wait()停止的线程
synchronized 关键字
sleep是让线程指定休眠时间,然后继续工作
wait则是等待,直到有线程通知notify()唤醒他才会重新工作。
notify(),notifyall()方法唤醒
5、spring中事务管理支持哪几种方式以及每种方式的具体方法
实现方式共有两种:编码方式;声明式事务管理方式。
基于AOP技术实现的声明式事务管理,实质就是:在方法执行前后进行拦截,然后在目标方法开始之前创建并加入事务,执行完目标方法后根据执行情况提交或回滚事务。
声明式事务管理又有两种方式:基于XML配置文件的方式;另一个是在业务方法上进行@Transactional注解,将事务规则应用到业务逻辑中。
6、hibernate的缓存等级及特点
一级缓存是session的缓存,hibernate默认配置,无须程序员操心,二级缓存是sessionfactory的缓存,默认不开启,想开始的话需要在cfg.xml或实体的xml中进行相关配置
7、mybatis中#{…}和${…}的区别

{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。 #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。

sql{}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, pojoparameterType{}括号中只能是value 。
8、列举一些Linux/Unix的常用命令
cd命令 ls命令 grep命令find命令cp命令 mv命令rm命令ps命令kill命令
tar命令cat命令chmod命令vim命令
9、已知关系模式
S(sno.sname)学生关系。Sno为学号,sname为姓名
C(cno.cname,cteacher)课程关系。Cno为课程号,cname为课程名,cteacher为任课教师
Sc(sno。Cno.scgrade)选课关系。Scgrade为成绩
列出有两门以上(含两门)不及格课程的学生姓名及平均成绩
SELECT s.SNAME AS Name, AVG( SCGRADE ) AS Average
FROM sc
INNER JOIN s ON s.SNO = sc.SNO
WHERE sc.SCGRADE <60
GROUP BY sc.SNO
HAVING COUNT( sc.SNO ) >1
10、写一个你认为最优的singlcton出来,考虑线程的安全和并发问题
class Singleton {
private static Singleton s;
private Singleton(){
System.out.println(“A Singleton Model example”);
}
public static Singleton getSigleton()
{
if(s==null)s=new Singleton();
return s;
}
}
1、mvc里一个类可以申明几个对象
一个对象
2、 spring配置文件的步骤
配置顺时层,配置事务层,配置面向切面,配置控制反转
3、 解释IOC是什么
Ioc是控制反转,是spring框架的核心,是一种通过容器管理约束对象的关系
4、 hibernate是怎样关联到数据库的
通过主键和外键关联的
5、mybatis配置文件用到的标签
typeAliases标签
6、jsp的九大内置对象
request response out application config session Page Pagecontext exception
7、struts2和mvc的区别,struts2相当于那一部分?
1)springmvc的入口是一个servlet,即前端控制器,例如:*.action
struts2入口是一个filter过虑器,即前端过滤器,例如:/*
2)springmvc是基于方法开发,传递参数是通过方法形参,可以设计为单例
struts2是基于类开发,传递参数是通过类的属性,只能设计为多例
3)springmvc通过参数解析器是将request对象内容进行解析成方法形参,将响应 数据和页面封装成 ModelAndView对象,最后又将模型数据通过request对象传输到 页面,struts采用值栈存储请求和响应的数据,通过OGNL存取数据
Struts2相当于一个servlet层
8、ajax的工作原理
Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。这样把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的。
1、 springmvc /spring常用注解,@responseBody用过吗?
@Controller @RequestMapping 没有用过@responseBody
2、mvc万能类怎么发送到前台
model.addAttribute(“test”,test);
3、spring框架的特色
1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑
2.可以提供众多服务,事务管理,WS等。
3.AOP的很好支持,方便面向切面编程。
4.对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等
5.Spring DI机制降低了业务对象替换的复杂性。
6.Spring属于低侵入,代码污染极低。
7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部
4、写一个sql语句,有一个学生表,name sex成绩,按成绩从高到低,每页10条信息,查询第二页信息
Select * from table Order by chengji desc limit 10,10;

原创粉丝点击