JAVA面试笔试试题
- 格式:doc
- 大小:134.50 KB
- 文档页数:13
1、给出至少三种排序方式,并写出详细实现思路。
2、假如有一个文件大小为IG的文本文件,每行都不超过20个字符,可用内存只有100M,
现需要进行对该文件进行排序,请给出实现思路。
3、现有一个1T大小的文本文件,存储在HDF5上,需要对其排序,hadoop上每个节点可用内存为5G,请诶出
实现思路(考虑性能)。
4、对数组、LIST、SET、MAP 按照使用场景做个尽可能详细的对比。
5、画出JVM内存架构图,并给出各个区的作用,并给出Java 在那些情况下会出现内存溢出。
6、给出尽可能多的方式来看看Java应用对应的jvm内存各个区的内存分配值以及垃圾回收信息。
7、给出Java实现线程安全的方式。
8. 画出运行mapreduce的流程图。
9、画出HBase架构图
10、如果有如下表结构
Oracle 关系表有100亿车联网监控数据
<car_id , x, y, create_at, org_id,type>
car_id:8 为整数,
x:经度浮点小数点后3位
y:维度浮点小数后3位
create_at:创建时间 timestamp
type:类型1位整数,1.表示报警点, 2.正常点
org_id:组织机构id,3位长整数
需要支持如下业务
查询指定天指定车辆的轨迹
下载指定天指定单位所有报警点
请按照hbase 设计优化策略,给出一种Hbase表结构并给出理由。
测试题一卷以下为职业测试题,请在30分钟内完成,其中1-5为逻辑测试题(单选)6-25为职业能力测试题一、选择题1. 一个对国家气象服务局的风暴检测雷达系统的测试发现:1975年的系统比新的计算机化系统可靠10倍。
因此,用于新雷达系统的技术一定不如用于1975年雷达系统的技术那么尖端。
以上结论的成立依赖以下哪项有问题的假设?A.风暴检测雷达系统的可靠性是由故障的频率决定的。
B.用于风暴检测雷达系统的技术尖端水平可以由该系统的可靠性决定。
C.风暴检测雷达系统的可靠性是由他们预测天气形态的准确性决定的。
D.计算机硬件现在是用于天气预报服务的新风暴检测雷达系统的主要组成部分。
E.风暴检测雷达系统技术的大多数重要的进步是在20世纪50年代取得的。
2.为了增加收入,一家机场计划改变其计时停车区收取的停车费。
机场会在第一个4小时或不到4小时期间收取4美元,而后每小时收取1美元:而不是在第一个2小时或不到2小时期间收取2美元,而后每小时收取1美元。
下面哪种考虑如果正确,能表明该计划可以成功地增加收入?A.很少有人会在机场的计时停车区内一次停车超过2小时。
B.在过去的几年内,机场运营其计时停车设备的成本要高于从中获得的收入。
C.在机场进行短途旅行的人通常把车停在按天计费而非按时计费的停车区内。
D.用来运营机场停车区的资金很大一部分被用来维护设备而不是支付收取停车费的职工工资。
3.张教授的所有初中同学都不是博士;通过张教授而认识其哲学研究所同事的都是博士:张教授的一个初中同学通过张教授认识了王研究员。
以下哪项作为结论从上述断定中推出?A.王研究员是张教授的哲学研究所同事B.王研究员不是张教授的哲学研究所同事C.王研究员是博士D.王研究员不是博士E.王研究员不是张教授的初中同学4.通常认为左撇子比右撇子更容易出操作事故,这是一种误解。
事实上,大多数家务事故,大到火灾,烫伤,小到切坡手指,都出自右撇子,一下哪项最为恰当第概括了上述论证中的漏洞?A.对两类没有实质性区别的对象做实质性的区分B.在两类不具有可比性的对象之间进行类比C.未考虑家务事故在整个操作事故中所占的比例D.未考虑左撇子在所有人中所占的比例E.忽视了这种可能性:一些家务事故是由多个人造成的5.临床试验显示,对偶尔食用一定量的牛肉的人而言,大多数品牌的牛肉干的添加剂并不会导致动脉硬化,因此,人们可以放心食用牛肉干而无需担心对健康的影响,以下哪项如果为真,最能削弱上述论证?A.食用大量的牛肉干不利于动脉健康B.动脉健康不等于身体健康C.肉类都含有对人体有害的物质D.喜欢吃牛肉干的人往往也喜欢食用其他对动脉健康有损害的食品E.题干所述临床试验大都是由医学院的实习生在导师指导下完成的6.如果某位同事在你准备下班回家时,请求你留下来听他“倾吐苦水”,你是:A.立即同意B.劝他等第二天再说C.以夫人生病为由拒绝他的请求7.如果你参加一个新技术培训班,学到了一些对许多同事都有益的知识,你是;A.返回后立即向大家宣布并分发资料B.只泛泛的介绍一下情况C.把这个课程贬的一文不值,不泄露任何信息8.你的学习多依赖于A.阅读书刊B.参加集体讨论C.两者之间。
卫宁健康java笔试面试题(一)卫宁健康Java笔试面试题一、基础知识1.什么是Java?2.Java的特点有哪些?3.Java的基本数据类型有哪些?4.Java中的循环结构有哪些?它们之间有什么区别?5.Java中的访问修饰符有哪些?它们分别用来表示什么意思?二、面向对象1.什么是面向对象编程?2.Java中类与对象的关系是什么?3.什么是封装、继承和多态?4.Java中如何实现继承和多态?5.什么是接口?如何在Java中定义和实现接口?三、异常处理1.什么是异常?Java中的异常分类有哪些?2.Java中的异常处理机制是怎样的?3.try-catch-finally语句的作用是什么?4.请举例说明如何捕获和处理异常。
四、集合框架1.Java中的集合框架有哪些?它们的特点和用途分别是什么?2.如何创建和操作ArrayList和HashMap?3.ArrayList和LinkedList的区别是什么?4.HashMap和HashTable的区别是什么?五、多线程1.什么是多线程?和单线程相比,多线程有什么优势?2.在Java中创建多线程的方式有哪些?请分别说明它们的使用场景。
3.如何实现线程同步?4.什么是线程死锁?如何避免线程死锁的发生?六、数据库操作1.什么是数据库?常见的数据库类型有哪些?2.如何在Java中连接数据库?3.什么是SQL语句?请举例说明如何执行SQL查询和更新操作。
4.如何处理数据库事务?七、常用框架与技术1.什么是Spring框架?它的特点和作用是什么?2.什么是Spring Boot?它和Spring框架有什么区别?3.什么是MyBatis框架?它的特点和作用是什么?4.什么是RESTful API?请举例说明如何设计和实现一个RESTfulAPI。
八、其他问题1.你在项目中遇到过的最大挑战是什么?你是如何解决的?2.你在团队合作中是如何发挥自己的作用的?3.你在学习Java过程中用到的哪些学习资源?你最喜欢的Java书籍是什么?4.你对持续学习和个人发展的看法是什么?你如何保持学习的动力?以上是针对“卫宁健康Java笔试”准备的面试题,希望能对您有所帮助,祝您面试顺利!卫宁健康Java笔试面试题(续)九、网络编程1.请描述Java中的Socket编程是什么?2.什么是TCP和UDP协议?它们之间的区别是什么?3.如何在Java中使用Socket实现TCP通信?请给出示例代码。
面试笔试题测试题及答案一、选择题1. 下列哪个不是Java的基本数据类型?A. intB. floatC. StringD. double答案:C2. 在JavaScript中,以下哪个是正确的条件语句?A. if (x = 5)B. if (x == 5)C. if (x === 5)D. if (x = 5)答案:B二、填空题1. 在HTML中,用于定义文档类型和字符编码的标签分别是______和______。
答案:<!DOCTYPE>;<meta charset="UTF-8">2. 在Python中,用来实现列表推导式的语法是______。
答案:[x for x in iterable if condition]三、简答题1. 请简述什么是栈(Stack)以及它的主要操作。
答案:栈是一种后进先出(LIFO)的数据结构,主要操作包括入栈(push),出栈(pop),以及查看栈顶元素(peek)。
2. 请解释什么是闭包(Closure)以及它在JavaScript中的应用。
答案:闭包是函数和创建该函数的词法环境的组合。
在JavaScript 中,闭包允许函数访问创建时的作用域,即使该函数在不同的作用域中被调用。
四、编程题1. 编写一个函数,实现字符串的反转。
示例:```pythondef reverse_string(s):return s[::-1]```2. 给定一个整数数组,请找出其中的最大值和最小值,并返回它们的和。
示例:```pythondef find_max_min_sum(arr):max_val = max(arr)min_val = min(arr)return max_val + min_val```五、案例分析题1. 描述一个你曾经参与过的项目,并解释你在项目中的角色以及所面临的挑战和解决方案。
答案:[此处考生需根据个人经历填写具体内容]2. 如果你在团队中遇到意见不合的情况,你通常如何处理?答案:[此处考生需根据个人经验填写处理方式和策略]。
2024年招聘Java开发工程师笔试题及解答(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个不是Java中的基本数据类型?A、intB、floatC、StringD、boolean2、在Java中,以下哪个关键字用于声明一个类?A、classB、structC、enumD、interface3、关于Java中的String类,以下描述正确的是:A. String类是final类,无法继承。
B. String类是可变的,可以对其进行修改。
C. String类是可变的,每次对String对象的操作都会创建新的对象。
D. String类是不可变的,每次对String对象的操作都会创建新的对象。
4、关于Java中的垃圾回收机制,以下描述不正确的是:A. 垃圾回收器可以自动回收不再使用的对象占用的内存空间。
B. 垃圾回收机制是Java自动管理内存的一种方式,程序员无需手动释放内存。
C. 垃圾回收器会定期检查并回收那些不再有引用的对象。
D. 堆内存中的所有对象在不再有引用后,会自动关联到垃圾回收机制中,即成为垃圾,等待垃圾回收器来回收。
5、以下哪个Java版本正式支持模块化系统“Java Platform Module System”(JPMS)?A、Java 8B、Java 9C、Java 10D、Java 116、在Java中,以下哪个关键字用来声明一个线程?A、threadB、runC、ThreadD、start7、以下哪个关键字是Java中用于实现多线程的同步机制?A. synchronizedB. transientC. volatileD. static8、以下哪个选项不是Java中的访问修饰符?A. privateB. publicC. protectedD. friendly9、在Java中,以下哪个选项不是访问修饰符?A. publicB. privateC. protectedD. friend 10、下列关于Java异常处理的说法中,哪一个是正确的?A. Java程序必须捕获并处理所有抛出的异常。
第1篇一、Java基础知识1. 请简述Java语言的特点。
2. 什么是Java虚拟机(JVM)?它有什么作用?3. 什么是Java的内存模型?请解释Java内存模型中的几个关键概念:堆、栈、方法区、程序计数器、本地方法栈。
4. 什么是Java中的反射机制?请举例说明反射在Java中的应用。
5. 什么是Java中的泛型?请解释泛型的原理和作用。
6. 请简述Java中的四种访问控制符:public、protected、default、private。
7. 什么是Java中的继承和多态?请举例说明继承和多态在实际开发中的应用。
8. 什么是Java中的封装?请举例说明封装在实际开发中的应用。
9. 什么是Java中的接口和抽象类?它们之间有什么区别?10. 什么是Java中的异常处理?请解释try-catch-finally语句的执行顺序。
二、Java集合框架1. 请列举Java集合框架中的常用集合类及其特点。
2. 请简述ArrayList、LinkedList、HashMap、HashSet的区别。
3. 什么是Java中的泛型集合?请举例说明泛型集合的应用。
4. 什么是Java中的迭代器(Iterator)和枚举器(Enum)?请比较它们的区别。
5. 什么是Java中的List、Set、Map的遍历方法?6. 请解释Java中的ArrayList和LinkedList的内部实现原理。
7. 什么是Java中的HashMap的扩容机制?8. 什么是Java中的HashSet的内部实现原理?9. 请解释Java中的线程安全集合类,如CopyOnWriteArrayList、ConcurrentHashMap。
三、Java多线程与并发1. 什么是Java中的线程?请解释线程的创建、调度和同步。
2. 请简述Java中的线程状态,如新建、就绪、运行、阻塞、等待、超时等待、终止。
3. 什么是Java中的同步机制?请解释synchronized关键字的作用。
华为Java笔试题+数据库题一、单项选择题 1.Java是从( B)语言改进重新设计。
A.Ada B.C++ C.Pasacal D.BASIC 2.下列语句哪一个正确(B ) A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 3.下列说法正确的有(C ) A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 4.提供Java存取数据库能力的包是( A) A.java.sql B.java.awt C.ng D.java.swing 5.下列运算符合法的是( A) A.&& B.<> C.if D.:= 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是(C ) A.0 B.1 C.-1 D.死循环 7.下列哪一种叙述是正确的( D) A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 8.下列语句正确的是( C) A.形式参数可被视为local variable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 9.下列哪种说法是正确的(A ) A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 二、多项选择题 1.Java程序的种类有(BCD ) A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有( BCD) A.环境变量可在编译source code时指定 D. javac.exe能指定编译结果要置于哪个目录(directory) 3.下列标识符不合法的有( ACD) A.new B.$Usdollars C.1234 D.car.taxi 4.下列说法错误的有(BCD) A.数组是一种对象 B.数组属于一种原生类 C. int number=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 5.不能用来修饰interface的有(ACD ) A.private B.public C.protected D.static 6.下列正确的有(ACD ) A. call by value不会改变实际参数的数值 B. call by reference能改变实际参数的参考地址 C. call by reference不能改变实际参数的参考地址 D. call by reference能改变实际参数的内容 7.下列说法错误的有( ACD) A.在类方法中可用this来调用本类的类方法 B.在类方法中调用本类的类方法时可直接调用 C.在类方法中只能调用本类中的类方法 D.在类方法中绝对不能调用实例方法 8.下列说法错误的有(ABC ) A. Java面向对象语言容许单独的过程与函数存在 B. Java面向对象语言容许单独的方法存在 C. Java语言中的方法属于类中的成员(member) D. Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同 9.下列说法错误的有(BCD ) A.能被java.exe成功运行的java class文件必须有main()方法 B. J2SDK就是Java API C. Appletviewer.exe可利用jar选项运行.jar文件 D.能被Appletviewer成功运行的java class文件必须有main()方法 三、判断题 1.Java程序中的起始类名称必须与存放该类的文件名相同。
1.什么是对象序列化,为什么要使用?所谓对象序列化就是把一个对象以二进制流的方式保存到硬盘上。
好处:方便远程调用。
2.值传递与引用传递的区别?所谓值传递就是把一个对象的值传给一个新的变量,但是系统会给这个新的变量开辟一个新的内存空间。
不会改变原有的值所谓引用传递就是把一个对象在堆中保存的数据传递给一个变量,此时新的变量与原有的变量对应同一个内存存储空间,当新的变量修改对象的属性时,内存中的数据也会修改。
3.接口与抽象类的区别?1:接口里面不可以实现方法体,抽象类可以实现方法体。
2:接口可以多继承接口,抽象类不可以。
3:接口需要被子类实现,抽象类是要被子类继承(单一继承)。
4:接口中只能有公有的方法和属性而且必须赋初始值,抽象类中可以有私有方法和属性.5: 接口中不能存在静态方法,但属性可以和final,抽象类中方法中可以有静态方法,属性也可以。
4.谈谈继承,为什么要使用继承?所谓继承就是找出几个类中共同的部分,提取出来作为父类。
而子类只需要继承父类,就可以共享父类的方法。
使用继承能够减少重复的代码。
5.方法重载的好处?所谓重载就是在一个类中可以定义多个相同的方法,但是方法的参数类型和参数的个数以及顺序要不同。
重载的好处就是能够让我们很快的掌握该方法的功能,我们只要要记住该方法就能很快的理解该方法的参数以及参数的作用6.项目中印象最深的部分?我觉得在该项目中我体现到了反射技术的强大之处,原来我一直不清楚反射是一种什么样的技术,只知道一些概念上的知识,经过这个项目之后,终于知道该怎样灵活运用反射,以及在什么时候运用。
谈谈你对面向对象的理解与认识?我觉得使用面向对象这种思维的方式比较符合我们人类的思想,不需要去学习一些什么新的思考方式,就按照现实生活做的一些故事就能让人理解该内容的知识以及他们的作用。
我的看法就是:1:当加入新的功能的时候不会修改原有的代码。
(面向接口编程) 2: 当我们写的一个类可以重复的运用在其他项目中。
泰豪软件股份有限公司JAVA招聘面试题(笔试)1.选择题(3′×10)(1)在java中,100.0 * 0.6 结果等于多少?dA、60.0004B、60C、60.00D、60.0(2)int a = 'A',请问System.out.println(a)打印出什么?aA、65B、AC、aD、97(3)System.out.println(Integer.parseInt("+1"))这句话执行会出现什么异常?aA、NumberFormatExceptionB、NullPointException(4)jsp如何获得客户端的IP地址?aA、request.getRemoteAddr()B、Request.ServerV ariables("REMOTE_ADDR")(5)String a=new String("foo");String b=new String("foo");请问System.out.println(a1= =b1)打印出什么?bA、trueB、falseC、1D、0(6)Math.round(11.5)的值是多少?cA、11B、11.5C、12D、12.0(7)请问如下哪个方法可以将MenuBar加入Frame中?bA、setMenu()B、setMenuBar()C、add()D、addMenuBar()(8)Which of the following lines of code will compile without error?(多选)bcA、int i=0;if (i) {System.out.println(“Hi”);}B.boolean b1=true;boolean b2=true;if(b1= =b2) {System.out.println(“So true”);}C.int i=1;int j=2;if(i==1|| j==2) System.out.println(“OK”);D.int i=1;int j=2;if (i==1 &| j==2) System.out.println(“OK”);(9)Jsp路径太深文件名太长就无法读取文件,jsp路径最大长度是多少?bA、127B、255C、512D、1024(10) Consider the following code:(多选) C D EInteger s = new Integer(9);Integer t = new Integer(9);Long u = new Long(9);Which test would return true?A、(s==u)B、(s==t)C、(s.equals(t))D、(s.equals(9))E、(s.equals(new Integer(9))2.填空题(4′×5,每题4′)(1) String s = "Hello";String s1 = s;s = s + " world!";请问s的值是____Hello Would!_ ________,s1的值是___Hello_ ________。
一.单选题二.多选题三.简答题四.查错题五.编程题六.数据库一.单选题1.下列不可作为java语言修饰符的是(D)A) a1 B) $1C) _1 D) 112.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A)A) a1.java B) a1.classC) a1 D) 都对3.整型数据类型中,需要内存空间最少的是(D)A) short B) longC) int D) byte4. Java 类可以作为(C)A) 类型定义机制 B) 数据封装机制C) 类型定义机制和数据封装机制 D) 上述都不对5.在创建对象时必须(C)A) 先声明对象,然后才能使用对象B) 先声明对象,为对象分配内存空间,然后才能使用对象C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象D) 上述说法都对6.在调用方法时,若要使方法改变实参的值,可以(B)A) 用基本数据类型作为参数B) 用对象作为参数C) A和B都对D) A和B都不对7. Java中(C)A) 一个子类可以有多个父类,一个父类也可以有多个子类B) 一个子类可以有多个父类,但一个父类只可以有一个子类C) 一个子类可以有一个父类,但一个父类可以有多个子类D) 上述说法都不对8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B)A) 安全性 B) 多线性C) 跨平台 D) 可移植9. Character流与Byte流的区别是(C)A) 每次读入的字节数不同B) 前者带有缓冲,后者没有C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用10.以下声明合法的是(D)A)default String s; B)public final static native int w( ) C)abstract double d; D)abstract final double hyperbolicCosine( )11.关于以下application的说明,正确的是(C)2. {3. static int x=10;4. static { x+=5;}5. public static void main(String args[ ])6. {7. System.out.println(“x=” + x); 8. }9. static { x/=3;}10. }A)4行与9行不能通过编译,因为缺少方法名和返回类型B)9行不能通过编译,因为只能有一个静态初始化器C)编译通过,执行结果为:x=5D)编译通过,执行结果为:x=312.关于以下程序代码的说明正确的是(D)1.class HasStatic{2. private static int x=100;3. public static void main(String args[ ]){4. HasStatic hs1=new HasStatic( );5. hs1.x++;6. HasStatic hs2=new HasStatic( );7. hs2.x++;8. hs1=new HasStatic( );9. hs1.x++;11. System.out.println(“x=”+x);12. }13. }A) 5行不能通过编译,因为引用了私有静态变量B) 10行不能通过编译,因为x是私有静态变量C) 程序通过编译,输出结果为:x=103D) 程序通过编译,输出结果为:x=10213.以下选项中循环结构合法的是(C)A)while (int i<7){i++;System.out.println(“i is “+i);}B) int j=3;while(j) {System.out.println(“ j is “+j);}C)int j=0;for(int k=0; j + k !=10; j++,k++) {System.out.println(“ j is “+ j + “k is”+ k);}D) int j=0;do{System.out.println( “j is “+j++);if (j = = 3) {continue loop;}}while (j<10);14. 类Test1定义如下:1.public class Test1{2. public float aMethod(float a,float B){ } 3.4.}将以下哪种方法插入行3是不合法的。
编程语言方面。
(满分100分)一、选择题1、public class test{String s = new String (“Hello”);Notify(s);System.out.println(s);}Public static void notify(String s){S += “world”;}What is the return ?(5分)A . The program runs and prints “Hello”B . As error causes compilation to fail.C . The program tuns and prints “Hello world!”D . The program runs but aborts with 按exception2 .Public class test{public static String output = "";public static void foo (int i){try{if(i==1){throw new Exception e;}}}}A . 14323B . 24313C . 13423D .132433 .If (x>0) { System.out.println(“first”);}else if (x>-3) { System.out.println(“second”); }else { System.out.println(“third”); }Which range of a value would prim the string “”(5分)A . x > 0B . x > -3C . X <= -3D . X <= 0 & x > -34.以下代码输出是()Public class Test{Static int value =19;Public static void main(String[] args)throws Exception{Test().printValue();}Private void printValue(){int value =69;System.out.println(this.value);}}二、简答1、说明MVC各层的作用,请尽量列举各层所采用的技术或者框架2、什么情况下会使用java序列化,如何实现java序列化?3、哪些框架或技术里用到了拦截器或者过滤器,其作用是什么?4、AJAX中的XMLHttpRequest对象在IE和Firefox中分别如何创建5、jquery的选择器有哪几种?请简单说明其含义6.列举JSP中的内置对象,7.JSP如何获取HTML FORM 中的数据?(15分)8.介绍在jsp中如何使用JavaBean。
Java经典面试题及答案(200题) Java经典面试题200道Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了Java 的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。
具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。
简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。
2. == 和 equals 的区别是什么?「== 解读」对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;代码示例:String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem.out.println(x==z); // falseSystem.out.println(x.equals(y)); // trueSystem.out.println(x.equals(z)); // true代码解读:因为 x 和 y 指向的是同一个引用,所以 == 也是 true,而 new String()方法则重写开辟了内存空间,所以 == 结果为 false,而 equals 比较的一直是值,所以结果都为 true。
「equals 解读」equals 本质上就是 ==,只不过 String 和 Integer 等重写了equals 方法,把它变成了值比较。
第一篇Java基础面试题1.说下面向对象四大特性封装性、继承性、多态性、抽象性。
2.Java语言有些特点简单性:Java没有像C++那样的指针,运算符重载,类的多继承。
并且实现了垃圾的自动回收,简化了程序开发者对于内存管理的工作。
面像对象:对象是指封装数据和操作方法的程序实体。
Java提供了简单的类机制以及动态接口。
表现形式是封装继承多态。
分布式:它有一套很齐全的通信及相关功能的程序库,可以处理TCP/IP协议也可以处理其他的协议。
健壮性:用Java编写的程序能在多种情况下稳定运行。
Java在运行和编译的时候都会对可能出现的错误进行检查验证。
通过集成异常处理机制,在编译时提示可能出现的但是未被处理的异常,以防止系统的崩溃。
可移植性:Java是与平台无关的,Java类库中也实现了与平台无关的接口,这样类库也是可以移植的。
多线程机制:Java具有多线程机制,使得程序能够并行执行,同步机制也保证了数据的共享,线程也有优先级别,有利于使用线程级别控制不同的任务。
3.什么是Java程序的主类?应用程序和小程序的主类有何不同?一个程序中可以有多个类,但只能有一个主类。
在Java应用程序中,这个类是指包含main ()方法的类。
而在Java小程序中,这个主类是一个继承子系统类JApplet或Applet的子类。
应用程序的主类不一定要求是public类但小程序的主类必须是public类。
主类是Java程序执行的入口点。
简单说应用程序是从主线程启动(也就是 main() 方法)。
applet 小程序没有 main() 方法,主要是嵌在浏览器页面上运行(调用init()或者run()来启动),嵌入浏览器这点跟 flash 的小游戏类似。
4.访问修饰符public,private,protected,以及不写(默认)时的区别?类的成员不写访问修饰时默认为default。
默认对于同一个包中的其他类相当于公开(publi c),对于不是同一个包中的其他类相当于私有(private)。
银⾏java开发笔试⾯试题13道(含答案)1、在多线程环境中使⽤HashMap会有什么问题?在什么情况下使⽤get()⽅法会产⽣⽆限循环?HashMap本⾝没有什么问题,有没有问题取决于你是如何使⽤它的。
⽐如,你在⼀个线程⾥初始化了⼀个HashMap然后在多个其他线程⾥对其进⾏读取,这肯定没有任何问题。
有个例⼦就是使⽤HashMap来存储系统配置项。
当有多于⼀个线程对HashMap进⾏修改操作的时候才会真正产⽣问题,⽐如增加、删除、更新键值对的时候。
因为put()操作可以造成重新分配存储⼤⼩(re-sizeing)的动作,因此有可能造成⽆限循环的发⽣,所以这时需要使⽤Hashtable或者ConcurrentHashMap,⽽后者更优。
2、不重写Bean的hashCode()⽅法是否会对性能带来影响?这个问题⾮常好,每个⼈可能都会有⾃⼰的体会。
按照我掌握的知识来说,如果⼀个计算hash的⽅法写得不好,直接的影响是,当向HashMap中添加元素的时候会更频繁地造成冲突,因此最终增加了耗时。
但是⾃从Java 8开始,这种影响不再像前⼏个版本那样显著了,因为当冲突的发⽣超出了⼀定的限度之后,链表类的实现将会被替换成⼆叉树(binary tree)实现,这时你仍可以得到O(logN)的开销,优于链表类的O(n)。
3、对于⼀个不可修改的类,它的每个对象是不是都必须声明成final的?不尽然,因为你可以通过将成员声明成⾮final且private,并且不要在除了构造函数的其他地⽅来修改它。
不要为它们提供setter⽅法,同时不会通过任何函数泄露出对此成员的引⽤。
需要记住的是,把对象声明成final仅仅保证了它不会被重新赋上另外⼀个值,你仍然可以通过此引⽤来修改引⽤对象的属性。
这⼀点是关键,⾯试官通常喜欢听到你强调这⼀点。
4、String的substring()⽅法内部是如何实现的?⼜⼀个Java⾯试的好问题,你应该答出“substring⽅法通过原字符串创建了⼀个新的对象”,否则你的回答肯定是不能令⼈满意的。
1. 【基础题】请描述访问控制符的各自作用域与区别答:√√√√√√√√√一、名词解释二、问答题1. 【中等题】请说出ArrayList和Vector的区别答:主要从二方面来说.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的二.数据增长:当需要增长时,Vector 默认增长为原来一培,而ArrayList却是原来的一半2. 【中等题】请说出HashMap和Hashtable的区别答:HashMap与HashT able主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的三.值:只有HashMap可以让你将空值作为一个表的条目的key或value3. 【基础题】Collection 和Collections的区别答:Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口第十八章输入输出笔试题一、填空题1. 【基础题】File对象的isFile()方法作用是判断是否是文件,getAbsolutePath() 方法作用是获取文件或目录的绝对路径。
2. 【基础题】BufferedReader和BufferedWriter以字符流的方式读写文本文件,且效率更高。
3. 【基础题】FileInputStream和FileOutputStream以字节流的方式读写文本文件。
二、选择题1. 【基础题】下列哪个类是实体类(BC )A. InputStreamB. PrintStreamC. SocketD. ReaderE. DataInput2. 【提高题】请选择下列程序的运行结果(A)public class TestIOapp{public static void main(String [] args) throws IOException{StringReader stingin = new StringReader("test");LineNumberReader in = new LineNumberReader(stingin);PrintWriter out = new PrintWriter(System.out);out.println(in.readLine());out.flush();}}A. testB. test:1C. 1:testD. 1 test3. 【提高题】请选择下列程序的运行结果( B )public class TestIOapp{public static void main(String [] args) throws IOException{RandomAccessFile file = new RandomAccessFile("test.txt","rw");file.writeBoolean(true);file.writeInt(123456);file.writeInt(7890);file.writeLong(1000000);file.writeInt(777);file.writeFloat(.0001f);file.seek(5);System.out.println(file.readInt());}}A. 123456B. 7890C. 1000000D. 777E. 0001三、名词解释四、问答题1. 【中等题】请说出java.io.reader和java.io.inputstream的区别答:java.io.Reader 和java.io.InputStream 组成了Java 输入类。
JAVA开发试题(卷A)本试题第一、二部分是单项选择,共50题,每小题有且只有一个正确答案,每题2分。
请将答案写在答题纸上。
一、基础知识1、堆栈和队列的相同之处是_(1)__.(1) A.元素的进出满足先进后出 B.元素的进出满足后进先出C.只允许在端点进行插入和删除操作D.无共同点2、十进制数33用十六进制数表示为__(2)__。
A.33H B.21H C.FFH D.12H3、给定一个有n个元素的线性表,若采用顺序存储结构,则在等概率的前提下,向其插入一个元素需要移动的元素个数平均为_(3)__。
A.n + 1B.C.D.n4、判断“链式队列为空”的条件是_(4)_(front为头指针,rear为尾指针)A. front == NULLB. rear == NULLC.front == rearD.front != rear5、在第一趟排序之后,一定能把数据表中最大或最小元素放在其最终位置上的排序算法是__(5)__。
A.冒泡排序B.基数排序C.快速排序D.归并排序6、计算机的总线包含地址总线、数据总线和控制总线。
某计算机CPU有16条地址总线,则该计算机最大的寻址空间为_(6)_字节。
A.32KB. 48KC.64KD.128K7、某页式存储管理系统中的地址结构如下图所示,则_(7)_。
页号页内地址页C.页的大小为4K,最多有1M页D.页的大小为8K,最多有2M页8、接收电子邮件时,通常使用的协议时_(8)_。
A.POP3B.SNMPC.FTPD.WWW9、下列元件中存取速度最快的是_(9)__。
A.CacheB.寄存器C.内存D.外存10、链表不具备的特点是_(10)__。
A.可随机访问任何一个元素B.插入、删除操作不需要移动元素C.无需先估计存储空间大小D.所需存储空间与线性表长度成正比11、在具有100个结点的树中,其边的数目为_(11)_。
A.101B.100C.99D.9812、PUSH 和 POP 命令常用于_(12)__操作。
第1篇一、Java基础知识1. 请简述Java的基本特性和优势。
解析:Java具有简单性、面向对象、分布式、平台无关性、安全性、多线程、动态性、强类型、高效率、可移植性等特性。
其优势在于跨平台、安全性高、易于开发、有丰富的类库等。
2. 请解释Java中的基本数据类型和引用数据类型。
解析:基本数据类型包括byte、short、int、long、float、double、char、boolean;引用数据类型包括类、接口、数组等。
3. 请解释Java中的封装、继承、多态三个基本概念。
解析:封装是指将类的属性和方法封装在一个单元中,隐藏内部实现细节;继承是指子类继承父类的属性和方法,实现代码复用;多态是指同一方法在不同对象上表现不同的行为。
4. 请解释Java中的构造函数和析构函数。
解析:构造函数用于创建对象时初始化对象的属性,析构函数用于销毁对象时释放对象占用的资源。
5. 请解释Java中的static关键字。
解析:static关键字用于修饰成员变量和方法,表示该成员变量或方法属于类,而不是对象。
6. 请解释Java中的final关键字。
解析:final关键字用于修饰成员变量、方法和类,表示该成员变量、方法或类不可修改。
7. 请解释Java中的异常处理机制。
解析:Java中的异常处理机制包括try-catch-finally语句,用于捕获和处理程序中的异常。
8. 请解释Java中的泛型。
解析:泛型是一种参数化类型,允许在定义类、接口和泛型方法时指定类型参数,提高代码的复用性和安全性。
二、Java集合框架1. 请解释Java中的List、Set和Map接口。
解析:List接口表示有序集合,Set接口表示无序集合且元素不可重复,Map接口表示键值对映射。
2. 请解释Java中的ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等常用集合类。
解析:ArrayList和LinkedList实现List接口,ArrayList基于数组实现,LinkedList基于链表实现;HashSet和TreeSet实现Set接口,HashSet基于哈希表实现,TreeSet基于红黑树实现;HashMap和TreeMap实现Map接口,HashMap基于哈希表实现,TreeMap基于红黑树实现。
深圳太极软件有限公司2008年招聘能力题请注意:书写过于潦草者将不予批阅。
请注意选择题包含单选题和多选题。
答案请写在答题纸上。
时间要求:一个半小时一、应征职位:□程序开发□市场推广□派遣实施二、语言、架构:□JA V A□C/C++ □JSP□Struts□hibernate□Spring1、有下面的代码片段,下面的哪些陈述为FALSE(假)?( A )public void create(){V ector myV ect;myV ect=new V ector();}A、第2行的声明不会为变量myV ect分配内存空间B、第3行语句为一个V ector类对象分配了内存空间C、第2行语句创建了一个V ector类对象D、第3行语句创建一个V ector类对象2、main()方法的返回类型是什么?(B)A、intB、voidC、booleanD、staticE、视情况而定3、关于java的垃圾收集机制,以下哪些描述是对的?( B )A、程序开发者必须自己创建一个线程进行内存释放的工作B、垃圾收集将检查并释放不再使用的内存。
C、垃圾收集允许程序开发者明确指定并立即释放该内存D、垃圾收集能够在期望的时间释放被java对象使用的内存。
4、以下有关变量和作用域的陈述哪些是不对的?(B)A、在方法里定义的局部变量在方法完成的时候被销毁B、局部变量也叫自动变量C、在方法外面定义的变量(即实例变量)在对象被构造时创建D、在方法中定义的方法的参变量只要该对象被需要就一直存在。
5、类的设计者要求它的某个成员变量不能被外部类直接访问,应该使用下面的哪些修饰符获得需要的访问控制?(D)A、publicB、无修饰符C、protectedD、private6、float price=3.4; 对不对?double price=3.4; 对不对?(C)A、前者对,后者对B、前者对,后者错C、前者错,后者对D、前者错,后者错7、Given the following code:class A {private int i = 1;public A() { int i = 2; }public void print() { System.out.println("The result is " + i); }}class B extends A {private int i = 3;public B() { int i = 4; }public void print() { System.out.println("The result is " + i); }}public class PA {public static void main(String[] args) {A a = new B();a.print();}}What is the result? ( C )A、The result is 1B、The result is 2C、The result is 3D、The result is 48、Given the following code:public class OrtegorumFunction {public int computeDiscontinuous(int x) {int r = 1;r += x;if ((x > 4) && (x < 10)) {r += 2 * x;} else if (x <= 4) {r += 3 * x;} else {r += 4 * x;}r += 5 * x;return r;}public static void main(String [] args) {OrtegorumFunction o = new OrtegorumFunction();System.out.println("OF(11) is: " + puteDiscontinuous (11));}}What is the result? (D)A、OF(11) is: 45B、OF(11) is: 56C、OF(11) is: 89D、OF(11) is: 111E、Compilation fails.F、An exception is thrown at runtime.9、Given the following code:public class test {public static void main(String[] args) {StringBuffer a = new StringBuffer("A");StringBuffer b = new StringBuffer("B");operate(a, b);System.out.println(a + "," + b);}static void operate(StringBuffer x, StringBuffer y) {x.append(y);y = x;}}What is the result? (D)A、The code compiles and prints “A,B”.B、The code compiles and prints “A,A”.C、The code compiles and prints “B,B”.D、The code compiles and prints “AB,B”.E、The code compiles and prints “AB,AB”.F、The code does not compile because “+”cannot be overloaded for StringBuffer.10、Given the following code:public class test {static boolean foo(char c) {System.out.print(c);return true;}public static void main(String[] argv) {int i = 0;for (foo('A'); foo('B') && (i < 2); foo('C')) {i++;foo('D');}}}What is the result? (A)A、ABDCBDCBB、ABCDABCDC、Compilation fails.D、An exception is thrown at runtime.11、Given the following code:1). class Loopy {2). public static void main(String[] args) {3). int[] x = {7,6,5,4,3,2,1};4). // insert code here5). System.out.print(y + " ");6). }7). }8). }Which, inserted independently at line 4, compiles? (Choose all that apply.) (AC )A、for(int y=0, z=0; z<=x.length; z++) { y = x[z];B、for(int y=0, int z=0, int z=0; z<x.length; z++) { y = x[z];C、int y = 0; for(int z=0; z<x.length; z++) { y = x[z];12、Consider the following code:String s = null;Which code fragments cause an object of type NullPointerException to be thrown? (Choose all that apply.) (AC )A. if((s!=null) & (s.length()>0))B. if((s!=null) &&(s.length()>0))C. if((s==null) | (s.length()==0))D. if((s==null) || (s.length()==0))13、Y ou have the following code. Which numbers will cause "T est2" to be printed?(Choose all that apply.) (BCD )switch (x) {case 1:System.out.println("Test1");case 2:case 3:System.out.println("Test2");break;}System.out.println("Test3");A、0B、1C、2D、3E、414、简要描述以下异常的含义和一般的解决、处理方法。
ng.NullPointerException:答:空指针异常处理方法:1).检查到异常出现,设置对象值为空字符串或一个默认值2).检测到异常出现,根本不执行某操作,直接跳转到其他处理中3).检查到异常出现,提示用户操作有错误.ng.ClassCastException:答:类匹配异常处理方法:ng.ArrayIndexOutOfBoundsException:答:数组下标越界ng.IllegalArgumentException:答:15、请列举你所知道的JSP页面间对象传递的途径,并简要描述它们的应用场合。
page 当前页面request 跳转页面session 当前会话application 整个程序16、(1)你是否了解所谓的MVC的设计模式?(2)谈谈你对Struts架构的理解,一般在哪层使用什么技术实现。
(3)如果访问某Struts架构的页面时提示“HTTP404 未找到”,你会如何分析、解决这问题?MVC是Model-View-Controller的简写。
"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),"View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。