JAVA面试题
文章平均质量分 60
opzoonzhuzhengke
这个作者很懒,什么都没留下…
展开
-
华为JAVA面试题及详解
今晚强哥说我要多写代码,基础很重要,为了长远起见,我就开始写一些面试题的代码。第一题 package com.zzk.test;public class Test { public static void main(String[] args) { String str="1234"; changeStr(str); System.out.prin原创 2011-11-22 20:02:43 · 3236 阅读 · 2 评论 -
做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处
做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处interface Animal{ //动物的接口 public void eat(Food food); //接口中只有抽象的方法和静态常量!这里void前面省略了abstract。同样,变量可以省略static final}class Cat implements An转载 2013-01-17 13:50:04 · 15697 阅读 · 0 评论 -
使用jdbc向数据库插入100000条记录
分别使用statement,PreparedStatement,及PreparedStatement+批处理3种方式进行测试://1.使用statement插入100000条记录 Java代码 public void exec(Connection conn){ try { //开始时间 Long beginTime = Sy转载 2014-09-11 20:53:21 · 1784 阅读 · 0 评论 -
脏读、不可重复读、幻读
锁就是防止其他事务访问指定的资源的手段。锁是实现并发控制的主要方法,是多个用户能够同时操纵同一个数据库中的数据而不发生数据不一致现象的重要保障。一般来说,锁可以防止脏读、不可重复读和幻觉读。 事务并发产生的问题: 脏读:一个事务读取到了另外一个事务没有提交的数据 事务1:更新一条数据 -转载 2014-09-11 21:37:56 · 654 阅读 · 0 评论 -
请别再拿“String s = new String("xyz");创建了多少个String实例”来面试了吧
这帖是用来回复高级语言虚拟机圈子里的一个问题,一道Java笔试题的。本来因为见得太多已经吐槽无力,但这次实在忍不住了就又爆发了一把。写得太长干脆单独开了一帖。顺带广告:对JVM感兴趣的同学们同志们请多多支持高级语言虚拟机圈子 以下是回复内容。文中的“楼主”是针对原问题帖而言。==============================================转载 2014-09-11 20:07:51 · 753 阅读 · 0 评论 -
hibernate OpenSessionInView
一、什么是OpenSessionInView在hibernate中使用load方法时,并未把数据真正获取时就关闭了session,当我们真正想获取数据时会迫使load加载数据,而此时session已关闭,所以就会出现异常。 比较典型的是在MVC模式中,我们在M层调用持久层获取数据时(持久层用的是load方法加载数据),当这一调用结束时,session随之关闭,而我们希望在V层使用这些数据,这时转载 2014-09-11 20:49:27 · 703 阅读 · 0 评论 -
大数据量下的数据库查询与插入如何优化? (整理)
数据库经常要做一些查询与插入,但是如果查询和插入的数据量过大的时候就会引发数据库性能问题,降低数据库工作效率。因此性能调优是大家在工作中都能够预见的问题,大到世界五百强的核心系统,小到超市的库存系统,几乎都会有要调优的时候。面对形形色色的系统,林林总总的需求,调优的手段也是丰富多彩。原创 2014-09-11 21:12:13 · 8333 阅读 · 3 评论 -
oracle提交了之后就不能回滚么?
execute执行后 可以回滚commit提交后 不可以回滚其实Oracle提交数据是分两步操作的,第一步execute执行,第二步commit提交。对应的PL\SQL也是要先点execute执行,执行后再点commit提交。但是 commit提交后 可以用闪回查询恢复原来的数据 因为oracle会将近期的数据保存到快照中 如:SELECT * FROM TABLE_1 AS OF转载 2014-09-11 21:13:22 · 1076 阅读 · 0 评论 -
hibernate中实体类的三种状态
1-----transient状态。当我们new一个对象是,就是transient状态,最显著的特点是在数据库中没有与之对应的记录。也没有纳入到session 的管理,随时可以被垃圾回收处理掉。2-----persient状态。当我们对transient 对象进行save(),saveOrUpdate()之后对象进入persient状态,在数据库中有与之对应的记录。纳入了session的管理,转载 2014-09-11 21:23:04 · 755 阅读 · 0 评论 -
hibernate一级缓存,二级缓存,三级缓存,缓存算法及配置。
什么是缓存(我的理解):在内存中开辟一块空间,把原来在硬盘上的东西,放到内存当中,当需要用到一些数据时,直接在内存中查找,而不是到硬盘上查找。这块内存中的空间就是缓存。缓存能提高程序的运行效率。一级缓存(session级的缓存):在一个session中load同一个对象2次,load时,hibernate首先在session缓存中查找对象,如果没找到就到数据库中去load。因此,在同一个ses转载 2014-09-11 21:26:20 · 744 阅读 · 0 评论 -
数据库隔离级别
数据库隔离级别有四种,应用《高性能mysql》一书中的说明: 然后说说修改事务隔离级别的方法:1.全局修改,修改mysql.ini配置文件,在最后加上1 #可选参数有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.2 [mysqld]3 transaction-isolation转载 2014-09-11 21:42:32 · 641 阅读 · 0 评论 -
查询选修了全部课程的学生姓名
查询选修了全部课程的学生姓名:student 是学生表 course 是选课表 sc 是课程表select snamefrom studentwhere not exists (select * from course where not exists原创 2013-01-09 15:42:49 · 1607 阅读 · 0 评论 -
【最近面试遇到的一些问题】数据库连接池的优点和原理,常用的java开源连接池组件
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连原创 2013-01-06 17:21:09 · 3911 阅读 · 0 评论 -
JAVA面试题-STRINGBUFFER倒序输出、正则将首字母大写
package com.zzk.test;//将This is a test倒着输出tset a si sihT(用StringBuffer)public class Test{ public static void main(String[] args) { StringBuffer s=new StringBuffer("This is a test"); Sy原创 2011-11-23 20:30:52 · 3284 阅读 · 0 评论 -
【最近面试遇到的一些问题】线程安全-单例模式[转]
public class Singleton { private Singleton() {} private static Singleton instance = null; public static Singleton getInstance() { if(instance == null) { instance = new Singleton(); } re原创 2013-01-06 16:48:44 · 476 阅读 · 0 评论 -
【最近面试遇到的一些问题】java中list、set和map 的区别
List按对象进入的顺序保存对象,不做排序或编辑操作。Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否则应该使用List)。Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用 LinkedHashSet或者LinkedHashMap. L原创 2013-01-06 17:01:23 · 535 阅读 · 0 评论 -
【最近面试遇到的一些问题】JAVA UTF-8 GB2312 编码互转
朋友让我帮他写个gb2312->utf-8的字符转换程序,找了半天没有在网上找到合适的,于是自己动手写了一个,呵呵。把它贴在这里,免得以后忘记了 ^_^ 实现思路大致如下: 取得一个汉字的Unicode码把Unicode码分解为两个16进制数据字符串(丢弃前两个字节)把这两个16进制数据字符串转换成二进制数据字符串把二进制数据字符串分解为三个串,第一个串为4(原创 2013-01-06 17:04:51 · 872 阅读 · 0 评论 -
【最近面试遇到的一些问题】数组没有length()这个方法,有length的属性。String有有length()这个方法。
数组没有length()这个方法,有length的属性。String有有length()这个方法。原创 2013-01-06 17:06:15 · 963 阅读 · 0 评论 -
【最近面试遇到的一些问题】运行时异常与一般异常有何异同
Throwable 是所有 Java 程序中错误处理的父类 ,有两种资类: Error 和 Exception 。 Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。Exception :表示可恢复的例外,这是可捕捉到的。Java 提供了两原创 2013-01-06 17:08:21 · 1755 阅读 · 0 评论 -
【最近面试遇到的一些问题】多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么
多线程有两种实现方法。一种是继承Thread类,一种是实现Runnable接口! 同步有两种方法。一种同步方法,一种同步代码!分别是synchronized,wait与notify原创 2013-01-06 17:14:49 · 613 阅读 · 0 评论 -
【最近面试遇到的一些问题】JSP中动态INCLUDE与静态INCLUDE的区别
动态INCLUDE在使用的时候,会先解析所要包含的页面(你例子中的included.jsp),解析后在和主页面放到一起显示;静态INCLUDE在使用的时候,不会解析所要包含的页面(你例子中的included.htm),也就是说,不管你的included.htm中有什么,我的任务就是把你包含并显示,其他的一概不管jsp:include是先编译一下included.jsp文件,然后再包含原创 2013-01-06 17:20:29 · 574 阅读 · 0 评论 -
【最近面试遇到的一些问题】Java中取小数点后两位(四种方法)
一 Long是长整型,怎么有小数,是double吧 java.text.DecimalFormat df=new java.text.DecimalFormat("#.##"); double d=3.14159; System.out.println(df.format(d)); 二 java.math.BigDecimal原创 2013-01-06 16:57:28 · 525 阅读 · 0 评论 -
【最近面试遇到的一些问题】forward 和redirect的区别
1.从地址栏显示来说forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.2.从数据共享来说forward:转发页面和转发到的页面可以原创 2013-01-06 17:16:02 · 494 阅读 · 0 评论 -
Struts2的结构
Struts2:(1)客户端提交一个HttpServletRequest请求(.action或JSP页面)(2)请求被提交到一系列Filter过滤器,如ActionCleanUp和FilterDispatcher等(3)FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器(4)请求发到FilterDispatcher后,FilterDis转载 2014-09-11 21:44:09 · 643 阅读 · 0 评论