面试题50

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1、把map集合转成set的方法:SetkeySet();SetentrySet();//取的是键和值的映射关系。Entry就是Map接口中的内部接口;为什么要定义在map内部呢?entry是访问键值关系的入口,是map的入口,访问的是map中的键值对。---------------------------------------------------------取出map集合中所有元素的方式一:keySet()方法。可以将map集合中的键都取出存放到set集合中。对set集合进行迭代。迭代完成,再通过get方法对获取到的键进行值的获取。SetkeySet=map.keySet();Iteratorit=keySet.iterator();while(it.hasNext()){Objectkey=it.next();Objectvalue=map.get(key);System.out.println(key+:+value);}--------------------------------------------------------取出map集合中所有元素的方式二:entrySet()方法。SetentrySet=map.entrySet();Iteratorit=entrySet.iterator();while(it.hasNext()){Map.Entryme=(Map.Entry)it.next();System.out.println(me.getKey()+::::+me.getValue());2、JDK和JRE的区别?JDK:JavaDevelopmentKit,java的开发和运行环境,java的开发工具和jre。JRE:JavaRuntimeEnvironment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。3、对象的初始化顺序?(1)给父类静态变量默认值(2)对父类静态变量赋值(3)执行父类静态块(4)给当前类静态变量默认值(5)对当前类静态变量赋值(6)执行当前类静态块(7)给父类变量默认值(8)对父类变量赋值(9)执行父类构造函数(10)给当前类变量默认值(11)对当前类变量赋值(12)执行当前类构造函数4、左右外连接的区别?左外---数据显示以左表为主右外---数据显示以右表为主☆左关系属性=右关系属性(+)------(+)在等号的右边,表示左连接☆左关系属性(+)=右关系属性------(+)在等号的左边,表示右连接右外连接RIGHTOUTERJOIN全外连接FULLOUTERJOIN5、表级锁、页级锁和行级锁的区别?表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页级,一次锁定相邻的一组记录。6、rownum和orderby的执行顺序?需要注意ROWNUM赋值和ORDERBY的执行顺序。如果ORDERBY的基准字段是表的PrimaryKey,则查询执行过程是先对表进行排序,然后为排序后的表视图从第一行到最后一行赋予ROWNUM值。反之,如果ORDERBY的基准字段不是PK,则先从第一行到最后一行为表赋予ROWNUM值,然后进行排序。7、UNION和UNIONALL的区别UNION并集:查询两个结果的并集(去掉重复值),目的是将第一个SELECT语句与第二个SELECT语句查询出的结果一起列举在一张表中,重复部分只保留一次,其余删除UNIONALL:返回两个查询的结果集的并集以及两个结果集的重复部分(不去掉重复值的结果)8、WHERE子句和HAVING子句的区别☆WHERE子句:是在分组之前使用,表示从所有数据中筛选出部分数据,以完成分组的要求,在WHERE子句中不允许使用统计函数,没有GROUPBY子句也可以使用。WHERE是对单条记录进行过滤的,不能过滤分组之后的。☆HAVING子句:是在分组之后使用的,表示对分组统计后的数据执行再次过滤,可以使用统计函数,有GROUPBY子句之后才可以出现HAVING子句9、NVL和NVL2的区别NVL函数:可以把空值转化为其他值,解决空值问题。NVL2函数:如果第一项不是空,那么返回第二个参数,否则返回第三个参数。10、成员变量和静态变量的区别:1)成员变量所属于对象。所以也称为实例变量。静态变量所属于类。所以也称为类变量。2)成员变量存在于堆内存中。静态变量存在于方法区中。3)成员变量随着对象创建而存在。随着对象被回收而消失。静态变量随着类的加载而存在。随着类的消失而消失。4)成员变量只能被对象所调用。静态变量可以被对象调用,也可以被类名调用。所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。11、SUBSTR()和INSTR()的区别INSTR()---判断一个字符串是否包含于另一个字符串NOTICE:使用INSTR()进行字符串的查找的时候,如果找得到要找的内容,返回的就是字符串的起点位置,而且在查找到的时候是区分大小写的,如果找不到,就返回0.如果字符串中间存在空格,也要算一位。SUBSTR()函数:字符串的截取,有两种形式:①从指定位置截取到结尾:SUBSTR(列|字符串,截取开始点)②截取部分的字符串:SUBSTR(列|字符串,截取开始点,截取个数)那么这道题中,我要的肯定是部分截取,那么久使用第二种截取方式12、rownum和rowid的区别?rowid用于定位数据表中某条数据的位置,是唯一的、也不会改变。rownum表示查询某条记录在整个结果集中的位置,同一条记录查询条件不同对应的rownum是不同的而rowid是不会变的。13、单例模式的实现方式1,私有化构造函数;2,创建私有并静态的本类对象;3,定义公有并静态的方法,返回该对象。14、抽象类和接口的区别:1)抽象类只能被继承,而且只能单继承。接口需要被实现,而且可以多实现。2)抽象类中可以定义非抽象方法,子类可以直接继承使用。接口中都有抽象方法,需要子类去实现。3)抽象类使用的是isa关系。接口使用的likea关系。4)抽象类的成员修饰符可以自定义。接口中的成员修饰符是固定的。全都是public的。15、count(1)和count(*)的区别count(*)将返回表格中所有存在的行的总数包括值为null的行然而count(1)将返回表格中除去null以外的所有行的总数16、方法重载的规则(名同参不同)OVERLOAD方法名称相同方法的参数必须不同(参数的类型或个数或顺序不同)方法的返回值类型可以相同,也可以不同(与返回类型、权限访问控制符无关)17、多态实现的三个条件:1:要有继承或实现2:要有重写3:父类引用指向子类对象18、方法覆盖/重写的规则(继承为前,同名同返同参样)OVERRIDE对父类继承来的方法进行改造子类继承父类时发生规则:①前提----继承②同名,同返回类型,同参数样式(参数的数量、类型、个数)-----三同③子类覆盖方法的访问权限不小于父类中被覆盖方法的访问权限④有些内容想重新实现,但不改变原来的规则⑤实际应用:线程19、throw和throws关键字的区别:throw用于抛出异常对象,后面跟的是异常对象;throw用在函数内。throws用于抛出异常类,后面跟的异常类名,可以跟多个,用逗号隔开。throws用在函数上。20、异常的分类及区别:①非检查性异常运行时异常,是RuntimeException类的子类):对于非检查性异常,异常处理的代码可写、可不写,程序都能通过编译。②检查性异常非运行时异常,不是RuntimeException类的子类):开发人员必须显式地写出检查性异常的处理代码,否则无法通过编译。。21、==和equals有什么区别?“==”:变量(栈)内存中存放的对象的(堆)内存地址---比地址equals用于比较两个对象的值是否相同---比值22、区别:final,finally和finalizefinal用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。final都可以修饰哪些元素,修饰不同元素的含义是什么?①final可以修饰类、变量、成员方法。1)final修饰类:不可以被继承,即没有子类。2)final修饰成员方法:不可以被覆盖。3)final修饰变量:final既可以修饰全局变量,也可以修饰局部变量;final修饰的变量,是常量(具名常量)。②finally是异常处理语句结构的一部分,表示总是执行。③finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,JVM不保证此方法总被调用。23、JAVA中的访问权限及区别范围publicprotecteddefaultprivate同一个类中okokokok同一包中okokok子类okok不同包中ok24、实现线程的两种方式?创建线程的第一种方式:继承Thread,由子类复写run方法。创建线程的第二种方式:实现一个接口Runnable。25、StringBuffer和StringBuilder的区别:StringBuffer线程安全。StringBuilder线程不安全。单线程操作,使用StringBuilder效率高。多线程操作,使用StringBuffer安全。26、用JDBC编写连接本地数据库emp表的实现查询功能的步骤Class.forName(driver);-----//(1)加载驱动类con=DriverManager.getConnection(url,userName,password);----//(2)连接数据库,通过url输入用户名和密码System.out.println(Databaseconnectedsuccessfully.);st=con.createStatement();-----//(3)创建一个对象,帮助程序和数据库之间进行信息的交互sql=SELECT*FROMEMP_MASTER;------//(4)编写SQL文rs=st.executeQuery(sql);------//(5)执行SQL文while(rs.next()){---------------//(6)获得返回值System.out.print(EMPNO:+rs.getInt(EMPNO)+\t);}//(7)关闭连接rs.close();st.close();con.close();27、请描述Statement和PreparedStatement的区别。PreparedStatement类是Statement类的子类,允许使用不同的参数多次执行同样的SQL语句。PreparedStatement可以动态设置参数,并增加了预编译功能,提高了执行速度。28、索引没有被使用的原因①索引列里有空值ISNULL与ISNOTNULL语句②联接列对于有联接的列,即使最后的联接值为一个静态值,优化器是不会使用索引的。③带通配符(%)的like语句④Orderby语句⑤逻辑运算符中的不等于()运算符29、ORACLE中配置监听和本地服务名(tnsname)的方式?①配置tnsnames.ora和listener.ora一般为D:\app\Administrator\product\11.2.0\client_1\network\admin,就看安装具体位置了。②通过NetManager进行配置30、主键和唯一键的区别?唯一键:UIQUE指定列的值或指定列的组合的值对于表中所有行必须是唯一的,允许出现空值主键(primarykey)是定位表中单个行的方式,(表的每行的唯一性标识)用于区分每行的列或列组合。特征:唯一、非空31、如何创建删除视图?使用视图的好处?创建视图:CREATEORREPLACEVIEW____

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功