`
lvwenwen
  • 浏览: 959217 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

2012/3/9面试

阅读更多
1.嘉讯软件公司
  1.js闭包,所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。
   function a(){
      var i=0;
      function b(){
        alert(++i);
      }
      return b;
    }
    var c = a();
    c();
  这段代码有两个特点:
  1、函数b嵌套在函数a内部;
  2、函数a返回函数b。
当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个闭包。
闭包的作用就是在a执行完并返回后,闭包使得Javascript的垃圾回收机制GC不会收回a所占用的资源,因为a的内部函数b的执行需要依赖a中的变量

原型(js-proptory):
每个javascript对象都有一个原型对象(简称原型),这个原型是由该对象的构造函数所定义(javascript自动创建的),并且对象继承原型的所有属性和方法(函数),
比如 一个String对象 的原型为 String.prototype ,如果我们想要给String类添加方法,可以这样做(比如添加常用的trim()方法):
js 代码
String.prototype.trim = function (){  
  return this.replace(/(^\s*)|(\s*$)/g, "");  


这个特性是相当令人惊讶的,因为这破坏了封装性,就好像在Java中你可以对String类直接进行修改一样。function() 可以当作数据来给左操作数赋值(而不仅仅是当作动作),也跟Java非常地不同。
,那为什么要使用原型呢?我感觉主要是为了解决对内部类型的继承问题,也就是说当你无法修改String的构造函数而想要让所有String实例都具有某一方法的时候,你可以用这个prototype;
或者说,你用这个prototype来模拟实现String类的子类,达到对父类进行扩展的目的。

  2.Spring实现的原理  Aop(什么是Aop,有什么作用), 用动态代理实现(什么是动态代理--->MyAdvice implements Advice,afterMethod,beforeMethod(前置通知,后置通知))
  3.多线程(多锁,写锁,读写锁怎么互斥),Socket,http协议,tcp/ip,upd协议
  4.怎么锁定是哪条线程耗费大内存,线程池,主线程,次线程分别做什么事 (android中ui,Handler: 主线程如何通知子线程,通知子线程处理耗时操作,Bundle)
  5.什么是同步,什么是异步,一般什么情况下使用.
  6.反射怎么获取对象 Class.forName("xxx.xxx.texst").newInstance();
  7.可不可以自己写个内加载器去加载自己定义的java.lang.arraylist;
  --->Class clazz = new MyClassLoader("itcastlib").loadClass("cn.itcast.day2.ClassLoaderAttachment");
  8.oracle创建了哪些索引(主键索引,聚合索引),oracle执行顺序不是从右往左,只能说where 条件的右边放过滤大量的数据的条件
  数据量大的表写在前面&过滤数据大的条件写在后面可以需要较少执行时间了。
  SQL解析的大概步骤:
翻译SQL语句,验证它是合法的语句,即书写正确
实现数据字典的查找,以验证是否符合表和列的定义 楼上的例子显然是这一步就结束了
在所要求的对象上获取语法分析锁(latch),使得在语句的语法分析过程中不改变这些对象的定义
验证为存取所涉及的模式对象所需的权限是否满足
决定此语句最佳的执行计划 这一步才会考虑CBO还是RBO,并生成执行计划,而LZ问的执行顺序应该指的就是整个解析过程完成后的执行过程,其采用的顺序由此处产生的执行计划决定
将它装入共享SQL区
  9.索引什么情况下失效(帅选数据量超过表中的一个阀值,索引会失效)
     1.只要索引的基表在物理上被移动了就会失效的
     2.发生了ddl 操作,,,有没有使用update global indexes 来更新这个ddl操作涉及到的数据,,就会导致索引失效...
  2.易思博技术公司
    1.怎样自己写一个类加载器去加载(自己写类加载器(重写findClass方法))
    2.获取路径webapp下面(getclassloader(""),ActionContext.getServletContext+getrealpath,+seporator,)
    3.常见的设计模式:Mvc,模板模式,适配器模式(usb接口,更方便),单列模式(Sington),观察者模式(Observer)
    4.Struct2(过滤器 Filter)
    5.spring怎么实现(动态代理)
    6.Hibernate原理
    7.怎么防止表单重复提交(客服端(js),服务器(写一个方法),写一个TokenProccessor { // 令牌类,里面产生随机数)
    8.spring里面怎样自己实现注入属性
    9.js怎么定义一个类
       一、定义类并创建实例
     function MyClass() {
        this.id = 5;
        this.name = 'myclass...';
     }
     10.webkit开发
     3.远行科技
       1.多线程断点上传下载(android)
       2.FileInputStream ,FileOutputStream 中 notify方法不抛出异常
       3.String(null) 强制转换不报错
       4.

public static void main(String[] args) throws Exception {
/*FileInputStream fi =new FileInputStream(new File(""));
FileOutputStream fo =new FileOutputStream(new File(""));
fi.close();
fo.close();
fi.notify(); //notify 没异常
*/
   /* String s ="";
    String b =(String)s;
    System.out.println(b);*/
/*String s="hello";
if(s=="hello"){System.out.println("hello");}else
if(s!="hello"){System.out.println("!hello");}*/
StringBuffer strr=new StringBuffer("AA");
changeStr(strr);
System.out.println(strr);

}

public static void changeStr(StringBuffer str){
/* str.toLowerCase();
str+="bb";
StringBuffer bf =new StringBuffer();
bf.append(str);
bf.append("cc");
     bf.toString();*/
str.append("BB");
str.toString().toLowerCase();

}

1.synchronized是利用锁的机制,使变量或代码块在某一时该只能被一个线程访问。而ThreadLocal为每一个线程都提供了变量的副本,
  使得每个线程在某一时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共享.
  而Synchronized却正好相反,它用于在多个线程间通信时能够获得数据共享。Synchronized用于线程间的数据共享,
  而ThreadLocal则用于线程间的数据隔离。当然ThreadLocal并不能替代synchronized,
  它们处理不同的问题域。synchronized是用来处理多线程环境下的数据同步,而ThreadLocal只是为了保存当前线程私有的某种状态。

  2.strust1常用标签
     1.Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。这里仅对项目中常用的Bean标签及Logic标签做一介绍。
Bean标签: 在访问JavaBeans 及其属性,以及定义一个新的bean 时使用
Logic标签: 管理条件产生的输出和对象集产生的循环
在使用标签的时候需注意struts标签不能嵌套使用 (也就是说在一个标签的属性中不能写另一个标签)。
标签的一些公共属性:
id 命名自定义标签创建时的脚本变量名。
name   指出关键字值,在该关键字下可以找到一个存在的bean 。如果给出了scope属性,则仅仅在scope中查找。否则,根据标准的顺序在各种scope中查找:(page, request, session, or application)。
property   指出bean 中的某个属性,可以在其中检索值。如果没有标明,则使用对象本身的值。
scope   定义了Bean在哪个范围(page, request, session, or application)中被查找。如果没有标明按顺序查找。脚本变量(见id)将在相同的范围中创建。

       1.bean:define:有三个用途。我们较多使用为后两者。
        1.三是复制一个现有的bean的属性给新的bean:
  Xml代码 
     <bean:define id="bop" name="user" property="role[3].name"/> 
     <bean:define id="foo" name="bar" property="baz" scope="request"  toScope="session"/> 
    //toScope属性指新bean的scope,默认为page   
2.bean:message:用来实现对国际化的支持的一个标签。
3.bean:write:以字符串形式输出bean的属性值。
4.Logic标签实例说明
logic:iterate 标签来迭代集合。
indexId属性:当前访问元素的序号
length属性:指定输出元素的个数
offset属性:指定从第几个元素开始输出
        5.logic:empty 该标签是用来判断是否为空的。如果为空,该标签体中嵌入的内容就会被处理。
6.logic:equal 该标签为等于比较符。

    3.struts2的常用标签
      1.<s:textfield>标签:文本框标签,可填写文本内容,同时该标签含有很多有用的属性:
      2.<s:password>标签:密码框标签,其附带的属性与textfield相似
<s:textarea>标签:定义多行的文本输入控件,其核心属性cols和rows分别指定文本域的宽度和高度
<s:date>标签:时间显示标签,用于显示指定格式的时间对象,很多人不知道如何在文本框中显示指定日期格式,
大家可以参考通过<s:textfield>+<s:date>的形式
      3.<s:radio>标签:单选按钮,该控件依然采用key/value的形式处理数据,即key值传到后台,
      value值显示给用户,结合上面的例子,我们知道性别男的key=0,value="男",性别女的key=1,value="女",
      这就是为什么在后台将性别以SexBean这种javabean的形式来存储。开发用struts2的<s:radio>标签展示单选按钮完全是傻瓜式的操作:
      设置需要显示的数据集合(collection或array),设置key和value,如下面的代码:
      4.<s:select>标签:下拉列表,该标签的使用方法跟<s:radio>标签完全类似,另外可以通过headerKey和headerValue属性设置下拉列表默认值和显示的内容
<s:select>转换成普通html后的代码
      5.<s:hidden>标签:隐藏标签,可以设置变量值,但是不在页面显示
<s:submit>标签:表单提交按钮
<s:reset>标签:表单重置按钮
<s:debug>标签:struts2独有的调试标签,在开发中使用,可以在页面看到值栈中的所有信息,方便调试。
      6.<s:property>标签:用于显示变量值的标签,没有什么可说的
<s:if><s:elseif><s:else>标签:这三个标签结合使用就能实现java的if...elseif...else的逻辑操作,标签中的test属性用于分之条件判断。
<s:iterator>标签:迭代标签,这个标签的功能类似于java的for循环操作,value属性装的是集合对象,var属性是集合中的某一对象,
status表示迭代的次数,begin和end表示循环开始位置和结束位置。最后看上面例子的代码:
      7.OGNL简介
OGNL是一个功能强大的EL,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,
遍历整个对象的结构图,实现字段类型转化等功能,它使用相同的表达式去存取对象的属性。
之所以命名为OGNL,就是因为它处理对象很给力,struts能够将对象层层解析,
把各个对象的关系以图的样式展示出来。比如userBean.userId,之所以能找到这个对象,
就是因为OGNL会先找userBean对象,然后再找userBean对象里的userId属性。假设UserBean这个类还包含了名为Role的javabean的实例,
Role里面包含字段roleName,我们要找到roleName就可以直接写<s:property value="user.role.roleName">,OGNL通过对象逐级导航找到子对象。
      
分享到:
评论

相关推荐

    永隆 JAVA笔试题(软通2012/11/12)

    【标题】:“永隆 JAVA笔试题(软通2012/11/12)”揭示了这是一份来自2012年11月12日软通动力公司的JAVA程序员笔试题目集。这份试题可能包含了Java编程语言的基础概念、核心特性、面向对象设计、数据结构与算法、多...

    2012java面试题及答案

    3. **封装**:封装是隐藏对象的内部细节,只通过公共接口与外界交互。它增强了安全性,防止了意外的修改,同时提高了代码的可维护性和可测试性。 4. **多态性**:多态性允许不同的对象对相同的消息作出不同的响应,...

    Java面试葵花宝典2012版

    ### Java面试葵花宝典2012版 #### 1. 多个类在一个`.java`源文件中 在一个`.java`源文件中确实可以包含多个类,但有一些限制: - 只能有一个公共类(public class),并且该类的名字必须与文件名相同。 - 其他类必须...

    java面试宝典2012

    《Java面试宝典2012》是一部针对Java开发者求职面试的重要参考资料,它全面涵盖了2012年及之前Java技术领域的主要知识点和面试常见问题。这本书籍旨在帮助Java程序员准备面试,提升对核心技术的理解与应用能力。 1....

    java面试题大全(2012版)

    2012版最全面试题大全目录: 一. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环?...

    Java面试宝典2012

    3. **集合框架**:集合框架是Java的重要组成部分,面试者应掌握ArrayList、LinkedList、HashSet、HashMap等核心类的使用,理解它们的实现原理和性能特点,以及泛型、迭代器、并发集合等高级话题。 4. **内存管理与...

    2012java面试题

    2012年的Java面试题反映了当时业界对Java开发者技能的要求,这些要求至今仍然是Java程序员需要掌握的基础。以下是一些可能出现在2012年Java面试中的关键知识点: 1. **Java基础**: - **数据类型**:包括基本类型...

    中软国际2012面试题(华为线外包面试题)

    ### 中软国际2012面试题解析 #### 1. 使用`IDisposable`接口管理资源 在.NET框架中,`IDisposable`接口是用于管理非托管资源的标准方式。当对象不再被使用时,需要释放它所占用的系统资源,如文件句柄、数据库连接...

    2012前端工程师招聘面试题

    9. 统一网页外观技术:CSS (Cascading Style Sheets) 用于设置网页样式,确保页面的统一和专业外观。 10. 代码优化原则:避免使用全局变量,这可能导致命名冲突和内存消耗,而应尽可能使用局部变量。 11. CSS 样式...

    2012java面试题.2

    在2012年,Java面试题主要涵盖了以下几个核心知识点: 1. **基础语法**:面试通常会从基本的Java语法开始,包括变量声明、数据类型(如基本类型与引用类型)、运算符、流程控制(if语句、switch语句、循环结构如for...

    Java面试宝典2012版

    《Java面试宝典2012版》是针对Java开发者准备面试的重要参考资料,它涵盖了从基础到高级的各种Java编程和面试知识点。以下是一些关键点的详细解释: 1. Java源文件可以包含多个类,但只能有一个公开类(public ...

    java面试宝典(2012.6)

    《深入解析Java面试宝典(2012.6):关键知识点详解》 Java作为一门广泛应用的编程语言,其面试题目往往能精准反映应聘者的技术深度与广度。《Java面试宝典(2012.6)》是一份宝贵的资源,针对面试中出现频率最高的...

    2012腾讯校园招聘面试经历

    在2012年腾讯的校园招聘中,面试主要涵盖了多个技术领域的知识点,包括但不限于C语言基础、Linux命令、SQL语言、数据结构、操作系统、网络、Android开发以及Java编程。以下是对这些知识点的详细说明: 1. **C语言...

    Java面试宝典2012版文档

    Java面试宝典2012版是一份针对Java开发者的重要面试参考资料,包含了多个核心知识点,以下将逐个解析其中的部分内容: 1. **一个.java源文件中的类限制**:一个.java源文件中确实可以包含多个类,但只能有一个公开...

    java 2012面试题

    9. 设计一个计算一百亿的计算器,如果使用普通的int或long类型,很容易超出范围,因此可以使用BigInteger类来处理大数。 10. 使用final关键字修饰变量时,表示该变量是一个常量,其引用不能变,即不能再指向另一个...

    J2SE2012面试题集

    Java 2012面试题集是一份针对Java开发者,特别是关注J2SE(Java 2 Platform, Standard Edition)技术的面试者的重要参考资料。这份题集涵盖了广泛的Java基础知识,包括Web开发、数据库交互以及框架应用等多个领域,...

Global site tag (gtag.js) - Google Analytics