面试题2

来源:互联网 发布:透明机箱推荐知乎 编辑:程序博客网 时间:2024/06/06 04:30

在深圳这边经历的一些面试题,做一个分享,作为自己的积累,同时也帮助大家成长。
上午面试
1.索引的实现方式

1、索引定义索引好比一本书的目录,加快数据库查询的速度2、建立索引的优缺点:优点:    1.大大加快数据的检索速度;       2.创建唯一性索引,保证数据库表中每一行数据的唯一性;       3.加速表和表之间的连接;       4.在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。缺点:  1.索引需要占用数据表以外的物理存储空间  2.创建索引和维护索引要花费一定的时间  3.当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。  3、索引类型:  唯一索引、主键索引和聚集索引。4、索引的实现方式1 B+树2 散列索引3 位图索引

数据库三范式

1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 

MVC

MVC 是设计创建 Web 应用程序的模式Model(模型)处理业务,持久层访问View(视图)显示数据Controller(控制器)控制业务流程MVC 分层有助于管理复杂的应用程序,便于分组开发

数据库的删除

4.drop,deletetruncate的区别drop直接删掉表结构 truncate一次性删除表中数据,再插入时自增长id又从1开始 delete一条条删除表中数据,可以加where字句。

软件开发模型

1.以软件需求完全确定为前提的瀑布模型;2.只能提供基本需求时采用的渐进式开发模型,如原型 模型、 螺旋模型等;3.以形式化开发方法为基础的的变换模型。瀑布模型即为软件生命周期型原型模型:通过“样品”不断改进得到用户所需螺旋模型:采用一种周期性的方法来进行开发。变换模型:变换模型是基于形式化规格说明语言及程序变换的软件开发模型。

把内存中的数据存放到一个地方

这里写代码片

TCP/IP分层

OSI参考模型有7层,TCP/IP模型包括4层osi模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层TCP/IP:应用层,传输层,网路层,网络接口层

下午面试
1.删除一个文件夹内后缀为txt的文件

//思路说明://new一个file,获取文件列表数组,遍历文件列表,不是文件跳过//获取文件名,判断文件以什么结尾,txt则删除File file=new File("D:/test");//新建一个fileFile[] files=file.listFiles();//获取文件列表for(int i=0;i<files.length;i++)//遍历文件列表{   if(!files[i].isFile()) continue;//如果不是文件就跳过(排除文件夹等)   String fileName=files[i].getName();//获取文件名   if(fileName.endsWith(".txt")) files[i].delete();//后缀名为txt就删除}

2.操作一个HTML页面改变其他HTML页面

1、document表示的是一个文档对象,window表示的是一个窗口对象,一个窗口下可以有多个文档对象。  所以一个窗口下只有一个window.location.href,但是可能有多个document.URL、document.location.href2、window.location.href和document.location.href可以被赋值,然后跳转到其它页面,document.URL只能读不能写主动操作的页面使用document.location.href赋值联动的页面使用document.URL联动

3.获取一个object对象的所有的属性

//把对象的属性存放到list里面,然后利用反射的方法getDeclaredFields来取得所有的属性,遍历所有的属性,设置属性可见setAccessible,获取属性值public boolean checkGoodMode(List<GoodMode> list){        int index=0;        String values[] = new String[39];//这里设置39,是因为有39个属性        for(int i=0;i<list.size();i++){            java.lang.reflect.Field[] fields = list.get(i).getClass().getDeclaredFields();//获取i对象的所有字段              for(int j=0;j<fields.length;j++){                 fields[j].setAccessible(true);                Object value;                try {                    value = fields[j].get(list.get(i));//获取字段值                    values[j]=(String) value;//字段值放进values数组                } catch (IllegalArgumentException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                } catch (IllegalAccessException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }                             }         }    }

4.spring的事务管理

spring的事务处理1.声明式声明式基于分为2种。1.使用xml配置事务拦截器TransactionInterceptor2.在业务方法上使用@Transactional注解2.编程式使用jdbc的事务管理conn.setAutoCommit(false);

5.inframe获取其他的其他类

在iframe子页面获取父页面元素$.('#objld', parent.document);在父页面获取iframe子页面的元素$("#objid", document.iframes('iframe').document) 显示iframe中body元素的内容$("#testId", document.frames("iframename").document).html()(1)父页面获取iframe中的元素值:Js代码  1.//根据iframe的id获取对象   2.var i1 = window.frames['iframeId'];   3.//var iframe =window.frames[0];也可以   4.//获取iframe中的元素值   5.var val=i1.document.getElementById("t1").value  //根据iframe的id获取对象var i1 = window.frames['iframeId'];//var iframe =window.frames[0];也可以//获取iframe中的元素值var val=i1.document.getElementById("t1").value(2)在iframe中获取父页面中的元素值:Js代码  1.var val = parent.document.getElementById("txt1");   var val = parent.document.getElementById("txt1");(3)a包含2个iframe分别为b,c,现在从b中获取c中的元素的值:Js代码  1.var i1 = parent.window.frames['iframeId'];   2.var val = i1.document.getElementById("text1").value;  var i1 = parent.window.frames['iframeId'];var val = i1.document.getElementById("text1").value;

5.双核浏览器渲染页面

 使用meta标签指定双核浏览器以IE浏览器内核渲染网页 若页面需默认用极速核,增加标签:<meta name="renderer" content="webkit">若页面需默认用ie兼容内核,增加标签:<meta name="renderer" content="ie-comp">若页面需默认用ie标准内核,增加标签:<meta name="renderer" content="ie-stand">我们只需在网站的head标签中添加上面的代码,即可以相对应的模式来渲染网站。同时我们也可以同时指定多个内核名称,之间以符号”|”进行分隔,如下代码:<meta name="renderer" content="webkit|ie-comp|ie-stand">
0 0