北京小厂笔试题
用了1个小时,做完感觉得去查缺补漏了哈哈哈(苦笑)。
Java开发工程师
时间:60-90分钟
说明:所有题目只需简要描述即可,在答题过程中若有具体的函数记不得函数名称或者参数,只需写出示意代码即可.如记不清截取字符串函数,可写substr(字符串,开始的下标,长度)表示..
一、基础题【Java语言】 1.String和StringBuffer有什么区别?int 和 Integer有什么不同?
存储区间不同,一个存储在堆中,作为对象使用,一个存储在栈中,作为地址引用 Int是基本数据类型,integer是包装类型,作为对象引用
2.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
有可能发生数据长度溢出,和前者一样
3.数组有没有length()这个方法? String有没有length()这个方法?
有,string没有
4.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 前者为方法的重载,后者为继承的重写;不可以,只能修改参数
5.List, Set, Map是否继承自Collection接口?说出ArrayList,Vector, LinkedList的存储性能和特性?
是的,三者都是列表类型里的分支,arraylist基于数组存储,查询快,增删慢;vector基于数组存储,线程安全,linkedlist基于双向链表,增删快,查询慢
6.构造器Constructor是否可被override?
可以
7.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
不可以,因为要保证事务的完整性
8.同步和异步有何异同,在什么情况下分别使用他们?举例说明。
区别在于数据的一致性,事务的完成需要同步一致,以保证事务的数据完成后是一致的,同步更新临界区的值,而异步是分批次完成数据的传输,在每个任务分配到不同的线程中时,处于空闲的cpu就会调度对应的线程,执行任务
9.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 是引用传递,对象实例化以后存储在jvm的栈中,调用的值是堆中对象的引用地址
二、编程题【JAVA代码查错】
- 下面程序的运行结果是
public static void main(String[] args) { String str1 = "hello"; String str2 = "he" + new String("llo"); String str3 = "he" + "llo"; System.err.println(str1 == str2); System.err.println(str1 == str3); } False、true
2、方法体内定义一个数组,放1-5 5个数字; Public void arraylist1(){ Aarry[4] array1=new Array[0,1,2,3,4]; }
3、查询表A前3条数据,放入Map中,key值为ID,value为text值。
Map map1=new Map; For(i:3){ Map1.get(A,‘ID’,‘text’)
}
三、数据库 一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数,除了使用到select和from关键字以外,还需要用到的关键字有哪些?并使用什么函数进行统计记录数? Where Sum()
1、内联接,外联接区别? 内联接表示查询链接子表充当查询条件
外联接表示接入外表做一个表的补充查询
- 表A ID NAME 1 A1 2 A2 3 A3
表B ID AID NAME 1 1 B1 2 2 B2 3 4 B3 表A和表B的关系 A.ID => B.AID 1)写出exists和in之间的区别 exists是查询条件命令,in表示被查询对象
2)使用exists和in,查询出A表包含B表的数据
Select * from a,b Exists a in b
4.如何查看SQL执行计划 使用explain查询语句
四、Web表现层 【请使用原生JS实现】 1、如何动态改变DIV对象的显示内容?
在js层中引入对应的交互函数,通过前端交互触发,
2、如何判断页面中的一个checkbox是否被选中?如何禁用它?
可以在下方打上控制台输出语句,然后在浏览器中打开开发者工具,检查对应的提示是否有被执行,可以设置全局变量将其关闭
3、列出你所用过的Html元素。
