今天面试中遇到的问题,面的是实习生,谁帮忙回答一下这些问题,
1.说下jsp下EL语言实现原理?
-----------------------------------------
还是只会用,没有研究过什么原理!!2.简单说下以下代码的实现原理(DriverManager是怎么获取到连接的?)
Class.forName("oracle.jdbc.driver.OracleDriver");
DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orci8","java","8888888");
-----------------------------------------
更汗啊,只会用,从来没有研究过底层的逻辑!!!3.谈多站点发布分布式开发有什么理解?
-----------------------------------------
只接触过一点这方面的知识,但从来没有实施开发过4.将任意表的数据查询出来载入到对象中然后用LIST添加这个对象,如何实现过滤点我们所不愿意看到的关键字?从LIST中取出来的对象中的数据,如果有我们不愿意看到的请换成个数相等的*;
------------------------------------------
我写的直接在循环中判断某些文字,然后进行替换*5.在网站开发中经常遇到选择地区的问题,很早以前开发人员是将信息写死在表示层页面中的,经过
长期开发后有了数据库,现在数据存入了数据库中,但像中国这样的大国家省市很多,数据量很大,大家访问人数众多
如何解决高并发的问题.
剩下会的就不发了,请大家帮忙回答一下,真的想弄懂这些问题,心有不甘

解决方案 »

  1.   

    汗啊,我都有三年多的开发经验了,我去面估计回答和你差不多。关于第4个问题,应该可以在载入的对象的get方法里处理,
    public class Record{
    private String name;
    private String password;
    public String getPassword(){
    //返回和password等长的*
    }
    }第5个问题是不是可以加个cache
      

  2.   

    现在这年头面试java实习生都这么难啊,这是啥公司啊
      

  3.   

    1 el是能够嵌入到jstl中的一种语言,jsp2.0以后支持直接在jsp页面中写el,他使直接在jsp页面嵌入java代码得到简化,
    并且对java语言进行了封装,比如弱类型等机制,这些都借鉴了javascript等脚本语言2 Class.forName("oracle.jdbc.driver.OracleDriver");
    相当于执行oracle.jdbc.driver.OracleDriver里面的静态代码部分
    DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orci8","java","8888888"); 
    copy个例子:
    jdbc:oracle:thin:@192.168.3.98:1521:orcl
    jdbc:表示采用jdbc方式连接数据库
    oracle:表示连接的是oracle数据库
    thin:表示连接时采用thin模式(oracle中有两中模式)jdbc:oralce:thin:是一个jni方式的命名@表示地址
    1521和orcl表示端口和数据库名@192.168.3.98:1521:orcl整个是一快
    也就是说是这样[jdbc]:[oracle]:[thin]:[@192.168.3.98:1521:orcl]
      

  4.   

    cache 就是用缓存了。省份,城市这些东西长时间不发生变化的,可以考虑缓存在内存中。
      

  5.   

    感觉答详细了很难啊要是碰上了也只有随便胡扯下如果只是找写代码的这个公司就小题大作了以下个人见解高手勿要BS1.EL还真的用的少我会用JS,DWR(JAVA-JS),JSP<%%>和面试的人胡扯
    2.JDK源码还真没看过只能用JDBC胡扯
    3.中央管理平台和子系统和他搅合
    4.这个简单正则表达式
    5.从程序角度考虑用多线程,线程池...
    如果他是技术大牛,啪屁股走人贝
      

  6.   

    JSP 的 EL 在 JSP 编译之后产生的 Servlet 中会生成求值语句,内部计算方式与表达式求值一样,
    就是类似加法写一个类,减法写一个类等等,在 Tomcat 的实现中关这些求值的类有好多好多。每个 JDBC 驱动必须实现 java.sql.Driver 接口,而 Class.forName 会在类加载器中加载,此时
    并不会产生 Driver 的对象,这种加载只会执行这个类中的静态块。而 JDBC 规范要求所有实现
    java.sql.Driver 接口的类,必须在静态块中调用 DriverManager.registerDriver 方法把自己注
    册到 DriverManager 中去。DriverManager 通过搜寻已注册的 Driver 实现类,调用 connect 方法
    从而获得连接。当然了 connect 方法是在 Driver 接口中声明的,由具体的 JDBC Driver 类去实现。
    这就是采用 Class.forName 方式获得连接的办法。
      

  7.   

    JSP 的 EL 在 JSP 编译之后产生的 Servlet 中会生成求值语句,内部计算方式与表达式求值一样,
    就是类似加法写一个类,减法写一个类等等,在 Tomcat 的实现中关这些求值的类有好多好多。每个 JDBC 驱动必须实现 java.sql.Driver 接口,而 Class.forName 会在类加载器中加载,此时
    并不会产生 Driver 的对象,这种加载只会执行这个类中的静态块。而 JDBC 规范要求所有实现
    java.sql.Driver 接口的类,必须在静态块中调用 DriverManager.registerDriver 方法把自己注
    册到 DriverManager 中去。DriverManager 通过搜寻已注册的 Driver 实现类,调用 connect 方法
    从而获得连接。当然了 connect 方法是在 Driver 接口中声明的,由具体的 JDBC Driver 类去实现。
    这就是采用 Class.forName 方式获得连接的办法。
      

  8.   

    今天面试中遇到的问题,面的是实习生,谁帮忙回答一下这些问题,
    1.说下jsp下EL语言实现原理?El 是标签形式的语言,在 jsp2.0才正式成为 jsp的规范,sevlet2.4以后的版本可以直接使用而不用 import 。
    原理就是 通过 标签,注册到 dtd一样的文件,然后通过 name ,在request  session中通过 反射机制取得 对应的 对象,
    然后 根据el中的方法,反射到你的 bean的方法上,实现输出。
    -----------------------------------------
    还是只会用,没有研究过什么原理!!2.简单说下以下代码的实现原理(DriverManager是怎么获取到连接的?)
    Class.forName("oracle.jdbc.driver.OracleDriver");
    DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orci8","java","8888888");
    原理是  第一步 主要是通过静态代码块,把Driver注册到 DriverManager中(应该是放到了Map中,具体我忘了)。
    第二步是通过 DrvierManager在 Map中找对应的Driver,然后得到conn,如果没有第一步一般就有suitableDriver的异常。
    -----------------------------------------
    更汗啊,只会用,从来没有研究过底层的逻辑!!!3.谈多站点发布分布式开发有什么理解?
    一般就牵涉到负载均衡之类的东西,具体我也不清楚哈哈。。
    -----------------------------------------
    只接触过一点这方面的知识,但从来没有实施开发过4.将任意表的数据查询出来载入到对象中然后用LIST添加这个对象,如何实现过滤点我们所不愿意看到的关键字?从LIST中取出来的对象中的数据,如果有我们不愿意看到的请换成个数相等的*;
    我们可以通过 StringBuffer中的一些API屏蔽好了。。
    ------------------------------------------
    我写的直接在循环中判断某些文字,然后进行替换*5.在网站开发中经常遇到选择地区的问题,很早以前开发人员是将信息写死在表示层页面中的,经过
    长期开发后有了数据库,现在数据存入了数据库中,但像中国这样的大国家省市很多,数据量很大,大家访问人数众多
    如何解决高并发的问题.
    这个估计就是说说数据库的优化等等,比如 缓存啊 ,索引啊,还有些就是 线程安全问题。。
      

  9.   

    我觉得3题可以用EJB的JTA事务
      

  10.   

    分布式,EJB的专长吧,
    什么代理桩,序列化对象传递~吹就是了~嘎嘎
      

  11.   

    我要是楼主,我就给面试官 竖中指 。
    感觉面试题的测试内容没有取向性,让人怀疑公司是在招人还是在虐人。
    第一,第二两个题能够熟练使用就行了,即使知道原理对开发的帮助也不大。除非公司要招技术攻关类的人才。
    后三个倒是经验之谈,和面试官扯扯淡就可以。按个人理解浅谈一下:
    3.分布式开发,接触不多。但,主要应该把握个节点之间是同步调用还是异步调用。
      要根据应用场景来选择不同的调用方式。
    4.其实是在问你如何实现数据的过滤,不要受List使用方式的干扰。
      如果是String类型的数据,简单点,使用正则表达式进行替换。
    5.可以考虑从持久层来着手解决这个问题。
      一是,数据库方面。a.首先尝试创建索引提升效率;b.将密集访问的大表按区域拆分成小表;c.将密集访问的表常驻内存(部分数据库支持)。
      二是,数据交互方面。使用缓存机制提高效率。
      

  12.   

    难道招java的都出这么难的题目吗???
      

  13.   

    其实都不难,
    第一题实质上,就是隐式对象。JAVA对象之音的关系。比如SERVLET的REQUEST对象和。EL对象的REQUETST之间的关系。
    第二题;CLASS.FORNAME实质上就是利用反射机制创建一个对象。相当于NEW。
    第三题:其实本质就是串口化与套接字编程也可以说是远程调用接口。
    第四题:实质上就是要你设置一个SET集合对LIST进行过滤。
    第五题:就是缓存吗。还有一些具体的表的优化之类的。
    其实不难。多想想吧。明白人家出题的目的。我已经不过JAVA的。呵呵有些说的不对。大家指正哈
      

  14.   

    第4问。。如果用Hibernate,都容易解决。我把那关键字访问方法都设置为private。
    第2问。Class.forName("字符串")貌似new一个名为字符串的Class对象(反射)。也可以说是加载驱动。
    getConnect是建立一个连接 url,用户名,密码
    第1问,真的还没研究过呢,,如果让我写,我就会写上“运用到map”吧(应该是错地)
    第5问,分布式,缓存,数据库的隔离性
      

  15.   

    1. 标签实现,里面就是写 servlet。2. java 的反射获得正确的驱动类,然后通过给定的信息 I/O 操作。。3. 分布式呀,可能是用户量太大,做负载平衡吧,没有实施过。4. 循环过滤啊。5. 建一个地区映射表。
      

  16.   

    I am speechless, guys. Have you ever do any real Java projects? Have you ever "studied" some well-known sources such as Apache DBCP commons or familiarized yourselves with JDBC specs?  
      

  17.   

    我对第二题倒是有所了解,其实对于jdbc的注册驱动,是由于各个数据库的链接访问根据数据库厂商的不同而有所差异,所以java开源组织提供了一系列的标准接口,这些接口没有任何实现,而是交由不同的数据库厂商去实现,实现方式由各个厂商来决定,但必须符合Java开源组织提供的接口。这样以来,我们在java中实现数据库链接就有了统一的方式。因此我们在链接不同数据厂商的数据库时,必须要有该厂商提供的注册驱动(也就是该厂商对接口的实现,通常为一个jar文件),Class.forName("oracle.jdbc.driver.OracleDriver"); 就是通过java的反射机制获取oracle公司提供的驱动接口实现类,该类中有一个静态块,通过该语句,静态块就会调用DriverManager类的rigesterDriver方法注册到DriverManager类中,而当我们调用
    DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orci8","java","8888888"); 时,DriverManager类就会去找符合"jdbc:oracle:thin:@127.0.0.1:1521:orci8"链接语句的驱动实体类的链接!
      

  18.   

    不知道楼主现在是否顺利找到了JAVA的专职工作?我一朋友所在的北京迅捷英翔网络科技有限公司(成都)最近正在招聘JAVA工程师,您感兴趣的话可以投一份简历到他们公司人力资源部试一下,邮箱是[email protected].
      

  19.   

    j2ee和J2SE是用在哪方面的?
    求解!
      

  20.   

    2,类加载器实现的4,自己写一个类继承list 类,重写 set 方法
      

  21.   

    2只不过是查询加载类而已 并没有生成对象 。后面查查api吧。
    4重写get方法吧,判断替换。
    5常用的第一次加载就放进缓存中,不用一直去查数据库了,或者做成存储过程原理一样一个放在数据库缓存中
    一个放在服务器缓存中
      

  22.   

    哇  这个JAVA的面试题 那么难哒!~    比上的课还难嘛好像!