今天面试中遇到的问题,面的是实习生,谁帮忙回答一下这些问题,
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.说下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.在网站开发中经常遇到选择地区的问题,很早以前开发人员是将信息写死在表示层页面中的,经过
长期开发后有了数据库,现在数据存入了数据库中,但像中国这样的大国家省市很多,数据量很大,大家访问人数众多
如何解决高并发的问题.
剩下会的就不发了,请大家帮忙回答一下,真的想弄懂这些问题,心有不甘
public class Record{
private String name;
private String password;
public String getPassword(){
//返回和password等长的*
}
}第5个问题是不是可以加个cache
并且对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]
2.JDK源码还真没看过只能用JDBC胡扯
3.中央管理平台和子系统和他搅合
4.这个简单正则表达式
5.从程序角度考虑用多线程,线程池...
如果他是技术大牛,啪屁股走人贝
就是类似加法写一个类,减法写一个类等等,在 Tomcat 的实现中关这些求值的类有好多好多。每个 JDBC 驱动必须实现 java.sql.Driver 接口,而 Class.forName 会在类加载器中加载,此时
并不会产生 Driver 的对象,这种加载只会执行这个类中的静态块。而 JDBC 规范要求所有实现
java.sql.Driver 接口的类,必须在静态块中调用 DriverManager.registerDriver 方法把自己注
册到 DriverManager 中去。DriverManager 通过搜寻已注册的 Driver 实现类,调用 connect 方法
从而获得连接。当然了 connect 方法是在 Driver 接口中声明的,由具体的 JDBC Driver 类去实现。
这就是采用 Class.forName 方式获得连接的办法。
就是类似加法写一个类,减法写一个类等等,在 Tomcat 的实现中关这些求值的类有好多好多。每个 JDBC 驱动必须实现 java.sql.Driver 接口,而 Class.forName 会在类加载器中加载,此时
并不会产生 Driver 的对象,这种加载只会执行这个类中的静态块。而 JDBC 规范要求所有实现
java.sql.Driver 接口的类,必须在静态块中调用 DriverManager.registerDriver 方法把自己注
册到 DriverManager 中去。DriverManager 通过搜寻已注册的 Driver 实现类,调用 connect 方法
从而获得连接。当然了 connect 方法是在 Driver 接口中声明的,由具体的 JDBC Driver 类去实现。
这就是采用 Class.forName 方式获得连接的办法。
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.在网站开发中经常遇到选择地区的问题,很早以前开发人员是将信息写死在表示层页面中的,经过
长期开发后有了数据库,现在数据存入了数据库中,但像中国这样的大国家省市很多,数据量很大,大家访问人数众多
如何解决高并发的问题.
这个估计就是说说数据库的优化等等,比如 缓存啊 ,索引啊,还有些就是 线程安全问题。。
什么代理桩,序列化对象传递~吹就是了~嘎嘎
感觉面试题的测试内容没有取向性,让人怀疑公司是在招人还是在虐人。
第一,第二两个题能够熟练使用就行了,即使知道原理对开发的帮助也不大。除非公司要招技术攻关类的人才。
后三个倒是经验之谈,和面试官扯扯淡就可以。按个人理解浅谈一下:
3.分布式开发,接触不多。但,主要应该把握个节点之间是同步调用还是异步调用。
要根据应用场景来选择不同的调用方式。
4.其实是在问你如何实现数据的过滤,不要受List使用方式的干扰。
如果是String类型的数据,简单点,使用正则表达式进行替换。
5.可以考虑从持久层来着手解决这个问题。
一是,数据库方面。a.首先尝试创建索引提升效率;b.将密集访问的大表按区域拆分成小表;c.将密集访问的表常驻内存(部分数据库支持)。
二是,数据交互方面。使用缓存机制提高效率。
第一题实质上,就是隐式对象。JAVA对象之音的关系。比如SERVLET的REQUEST对象和。EL对象的REQUETST之间的关系。
第二题;CLASS.FORNAME实质上就是利用反射机制创建一个对象。相当于NEW。
第三题:其实本质就是串口化与套接字编程也可以说是远程调用接口。
第四题:实质上就是要你设置一个SET集合对LIST进行过滤。
第五题:就是缓存吗。还有一些具体的表的优化之类的。
其实不难。多想想吧。明白人家出题的目的。我已经不过JAVA的。呵呵有些说的不对。大家指正哈
第2问。Class.forName("字符串")貌似new一个名为字符串的Class对象(反射)。也可以说是加载驱动。
getConnect是建立一个连接 url,用户名,密码
第1问,真的还没研究过呢,,如果让我写,我就会写上“运用到map”吧(应该是错地)
第5问,分布式,缓存,数据库的隔离性
DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orci8","java","8888888"); 时,DriverManager类就会去找符合"jdbc:oracle:thin:@127.0.0.1:1521:orci8"链接语句的驱动实体类的链接!
求解!
4重写get方法吧,判断替换。
5常用的第一次加载就放进缓存中,不用一直去查数据库了,或者做成存储过程原理一样一个放在数据库缓存中
一个放在服务器缓存中