Java + Oracle 企业笔试真题(含详细答案解析)_第1页
Java + Oracle 企业笔试真题(含详细答案解析)_第2页
Java + Oracle 企业笔试真题(含详细答案解析)_第3页
Java + Oracle 企业笔试真题(含详细答案解析)_第4页
Java + Oracle 企业笔试真题(含详细答案解析)_第5页
已阅读5页,还剩5页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java+Oracle企业笔试真题(含详细答案解析)适用场景:后端开发初级笔试、校招/社招基础考核、岗位技能摸底考试时长:90分钟满分:100分一、Java基础选择题(每题2分,共20分)1.以下关于Java基本数据类型说法正确的是()A.byte类型占2个字节B.float类型数值可以直接赋值给double类型,无需强转C.boolean类型可以赋值为0和1D.char类型占1个字节答案:B详细解析:A:byte占1字节;C:boolean只有true/false,不兼容数字;D:char在Java中占2字节(Unicode编码)。float转double属于自动类型转换,精度提升,无需强制转换。2.下列关于String、StringBuilder、StringBuffer说法错误的是()A.String是不可变字符序列B.StringBuffer线程安全C.StringBuilder效率高于StringBufferD.频繁字符串拼接优先使用String答案:D详细解析:String拼接会不断生成新对象,效率极低;频繁拼接推荐StringBuilder(单线程)、StringBuffer(多线程)。3.Java中equals()和==的区别,说法正确的是()A.两者作用完全一致B.==比较对象地址,equals默认比较内容C.==基本类型比较数值,引用类型比较地址;equals重写后可比较内容D.equals()可以比较基本数据类型答案:C详细解析:基本类型只能用==比较数值;引用类型==比较内存地址。Object原生equals()本质也是==,String等类重写后用于比较内容。equals不能用于基本类型。4.以下不会出现空指针异常的是()A.Stringstr=null;str.length();B.Objectobj=null;obj.toString();C.Stringstr="";str.length();D.Integera=null;Value();答案:C详细解析:空字符串是有效对象,只是内容为空,可正常调用方法;null代表无对象,调用任何实例方法都会报空指针。5.关于ArrayList和LinkedList说法正确的是()A.LinkedList底层是数组B.ArrayList查询快、增删慢C.LinkedList查询效率高于ArrayListD.两者都是线程安全的答案:B详细解析:ArrayList底层数组,随机访问快,中间增删需要移位,效率低;LinkedList底层双向链表,查询慢、首尾增删快。二者均非线程安全。6.Java中异常体系说法正确的是()A.Error可以被try-catch捕获B.Exception分为编译时异常和运行时异常C.运行时异常必须手动捕获D.空指针异常属于编译异常答案:B详细解析:Error是系统级严重错误,无法捕获;运行时异常(RuntimeException)无需强制捕获;空指针属于运行时异常。7.以下关于final、finally、finalize说法正确的是()A.finally代码块一定会执行B.final修饰的类可以被继承C.finalize是用于手动释放资源的关键字D.final修饰的变量不可修改答案:D详细解析:final修饰变量不可二次赋值、修饰方法不可重写、修饰类不可继承。finally不一定执行(如虚拟机退出);finalize是Object的废弃方法,已被废弃,不是关键字。8.接口和抽象类的区别,错误的是()A.抽象类可以有构造方法B.接口中可以有普通成员变量C.抽象类可以有普通方法D.类可以实现多个接口,只能继承一个抽象类答案:B详细解析:接口中变量默认是publicstaticfinal常量,不能定义普通成员变量。9.下列集合中,key允许为null的是()A.HashMapB.HashtableC.ConcurrentHashMapD.以上都不对答案:A详细解析:HashMap允许一个key为null、多个value为null;Hashtable、ConcurrentHashMap的key和value均不允许null。10.Java多线程中,synchronized关键字说法正确的是()A.可以修饰变量B.可以修饰类、方法、代码块C.是非公平锁D.加锁后其他线程无法访问对应资源答案:B详细解析:synchronized可修饰实例方法、静态方法、代码块、类,不能修饰变量;属于默认非公平锁(JDK1.6后优化),加锁后其他线程阻塞等待,可正常访问非锁定资源。二、Java简答题(每题5分,共20分)1.简述Java面向对象的四大特性,并简单说明作用详细答案:1)封装:将属性私有化,通过公开方法访问,隐藏内部实现细节,保证数据安全,降低代码耦合度。2)继承:子类复用父类代码,实现代码复用,简化代码结构,为多态提供基础。3)多态:父类引用指向子类对象,同一行为不同实现,提升代码扩展性和灵活性。4)抽象:抽取事物共性特征,忽略细节,聚焦核心功能,规范代码设计标准。2.简述HashMap的底层原理(JDK1.8)详细答案:JDK1.8中HashMap底层是数组+链表+红黑树结构。1)通过key的hash值计算数组下标,确定存储位置;2)无哈希冲突时,直接存入数组位置;3)发生哈希冲突时,采用链表挂接元素;4)当链表长度大于8、数组容量大于64时,链表转为红黑树,提升查询效率;5)负载因子默认0.75,达到阈值自动扩容,减少哈希冲突概率。3.简述Java线程的生命周期及核心状态详细答案:线程核心五大状态:1)新建(NEW):创建线程对象,未调用start();2)就绪(RUNNABLE):调用start(),等待CPU调度;3)运行(RUNNING):CPU分配时间片,执行线程代码;5)终止(TERMINATED):线程代码执行完毕或异常终止,生命周期结束。4.重载和重写的区别详细答案:1)重载(Overload):发生在同一个类中,方法名相同,参数列表(个数、类型、顺序)不同,与返回值、访问修饰符无关,属于编译期多态。2)重写(Override):发生在父子类中,方法名、参数列表、返回值必须一致,子类权限大于等于父类,不能抛出更宽泛异常,属于运行期多态。三、Oracle选择题(每题2分,共20分)1.Oracle中以下不属于DML语句的是()A.SELECTB.UPDATEC.DELETED.CREATE答案:D详细解析:DML(数据操作语言):SELECT、INSERT、UPDATE、DELETE;CREATE属于DDL(数据定义语言)。2.Oracle中,关于NULL说法正确的是()A.NULL等于0B.NULL等于空字符串C.NULL代表未知、不确定值,判断必须用ISNULLD.可以用=NULL判断空值答案:C详细解析:Oracle中null不代表0和空字符串,所有普通运算符(=、>、<)与null运算结果均为null,判断空值只能用ISNULL/ISNOTNULL。3.以下哪个函数可以去除字符串首尾空格()A.TRIM()B.LTRIM()C.RTRIM()D.SUBSTR()答案:A详细解析:TRIM:首尾去空格;LTRIM:左侧去空格;RTRIM:右侧去空格;SUBSTR:字符串截取。4.Oracle分页查询中,常用的伪列是()A.ROW_IDB.ROWNUMC.SYSDATED.LEVEL答案:B详细解析:ROWNUM是查询结果的行号伪列,是Oracle实现分页的核心;ROW_ID是数据物理存储地址。5.以下关于事务特性(ACID)说法错误的是()A.原子性:事务要么全部成功,要么全部回滚B.一致性:事务前后数据状态合法一致C.隔离性:事务之间完全互不影响D.持久性:事务提交后数据永久生效答案:C详细解析:隔离性是事务在隔离级别控制下相互影响可控,并非完全互不影响,不同隔离级别会存在脏读、不可重复读、幻读问题。6.Oracle中,用于模糊查询包含“abc”的关键字是()A.=B.LIKEC.IND.BETWEEN答案:B详细解析:LIKE配合%实现模糊查询,%代表任意字符,例如LIKE'%abc%'。7.下列索引中,Oracle默认主键索引类型是()A.位图索引B.唯一索引C.聚簇索引D.B树索引答案:D详细解析:Oracle主键默认创建唯一B树索引,是最常用、效率最优的索引类型。8.Oracle中,COMMIT的作用是()A.撤销事务B.提交事务,数据持久化C.保存断点D.锁定数据表答案:B详细解析:COMMIT提交事务,所有修改永久生效;ROLLBACK回滚事务,撤销未提交修改。9.以下能够分组统计的关键字是()A.ORDERBYB.GROUPBYC.DISTINCTD.LIMIT答案:B详细解析:GROUPBY用于分组聚合统计;ORDERBY排序;DISTINCT去重;Oracle无LIMIT,用ROWNUM分页。10.HAVING和WHERE的区别说法正确的是()A.两者无区别B.WHERE过滤分组后数据,HAVING过滤分组前数据C.WHERE不能使用聚合函数,HAVING可以使用聚合函数D.HAVING执行优先级高于WHERE答案:C详细解析:WHERE在分组前过滤原始数据,不支持聚合函数;HAVING在分组后过滤分组结果,支持聚合函数。四、Oracle简答题(每题5分,共20分)1.简述Oracle事务的提交和回滚机制详细答案:1)Oracle事务默认手动提交,执行DML语句后,数据只在内存中修改,未写入磁盘;2)执行COMMIT:事务提交,修改的数据永久写入数据库,释放锁和资源,事务结束;3)执行ROLLBACK:事务回滚,撤销所有未提交的DML修改,数据恢复到事务初始状态;4)关闭数据库连接、程序异常终止时,未提交事务会自动回滚。2.简述索引的作用、优缺点详细答案:作用:提升查询语句的检索效率,减少磁盘IO,快速定位数据行。优点:大幅加快查询速度,降低数据库检索开销。缺点:占用额外存储空间;新增、修改、删除数据时,需要同步更新索引,降低DML操作效率;过多索引会加重数据库负载。3.写出行锁和表锁的简单区别及触发场景详细答案:1)行锁:锁定数据表中的单条或多条数据行,其他行可正常操作,粒度细、并发高。触发场景:通过主键/唯一索引精准更新、删除数据。2)表锁:锁定整张数据表,所有操作阻塞,粒度粗、并发低。触发场景:无索引条件更新数据、DDL语句、手动加表锁。4.简述Oracle常见聚合函数详细答案:1)COUNT():统计记录行数;2)SUM():求和;3)AVG():求平均值;4)MAX():求最大值;5)MIN():求最小值;聚合函数会自动忽略null值,常与GROUPBY分组搭配使用。五、编程与SQL实操题(每题10分,共20分)1.Java编程:手写一个简单的单例模式(饿汉式+懒汉式线程安全版)详细答案代码://饿汉式(线程安全,类加载即创建对象)java

publicclassSingletonHungry{

//私有静态实例

privatestaticfinalSingletonHungryinstance=newSingletonHungry();

//私有构造

privateSingletonHungry(){}

//公开获取实例方法

publicstaticSingletonHungrygetInstance(){

returninstance;

}

}//懒汉式(双重校验锁,线程安全,延迟加载)java

publicclassSingletonLazy{

//volatile禁止指令重排

privatestaticvolatileSingletonLazyinstance;

privateSingletonLazy(){}

publicstaticSingletonLazygetInstance(){

if(instance==null){

synchronized(SingletonLazy.class){

if(instance==null){

instance=newSingletonLazy();

}

}

}

returninstance;

}

}解析:饿汉式无线程问题,缺点是浪费内存;双重校验锁懒汉式实现延迟加载、线程安全、效率高,是企业常用写法。2.OracleSQL实操:学生表(student)分页查询表结构:student(id主键,name姓名,age年龄,s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论