互联网大公司面试笔试题携程JAVA研发

合集下载

一面——【携程 笔试面试精品资源】

一面——【携程 笔试面试精品资源】

1、有没有实习过啊(没有)2、那你上学期都在干嘛(自己学习呀)3、看了哪些书,说了并发编程的艺术、深入理解 java虚拟机、高性能 mysql 等等给我一些虚拟机参数指出分别代表什么意思,都指出来了,然后问虚拟机调优具体应该怎么设置这些参数,每个设成多少比较好,不知道,面试官说没有实际调优经验,看书也不仔细4、有分布式的经验吗,答没有,没有了解过分布式,用过哪些中间件,redis 和 rabbitmq,redis在分布式情况下要是挂掉了该怎么办,都说了没有分布式的经验,然后就说了下 redis的两种持久化分别解释了一下,然后面试官就说完全没有实际经验呀···5、前端熟悉嘛,不熟悉,用过哪些前端框架,只用过 jquery,前端如何调优知道吗,不知道,只知道页面静态化,那可以用 js写一个定时器吗,说只知道用 settimeout可以实现,如何让我写出来,忘记怎么写了··6、写一个算法吧,求去除数组里重复元素之后的数组元素个数,感觉不出有什么特别之处,就直接用 hashset去重了,面试官沉默了一下说也行吧···不知道他想要我写什么7、数据库索引说下,就问他要说有那么多那种,聚簇索引,非聚簇索引,唯一索引这些还是 mysql的 b树索引,hash索引,全文索引,然后面试官突然就不问了,突然转到数据库调优,然后就说了下索引优化和慢查询,说完之后就说我们来写一个 sql语句吧,一个嵌套查询,写的有点问题,题目没太看明白什么查询一个用户在某个日期满房退房之后后又下单的用户,然后又说基础不行啊8、最后我来问你一个智力题吧,80个球里面有一个球有问题,如何用天平最少的次数称出来,还是没做出来,想到了分成 3组,但是没分好然后就不好意思,看起来你的基础并不好,也没有实际企业项目的开发经验,我们的要求还是比较高的,你还有有些差距,今天就到这里吧。

Java开发工程师招聘笔试题及解答(某大型国企)

Java开发工程师招聘笔试题及解答(某大型国企)

招聘Java开发工程师笔试题及解答(某大型国企)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1.在Java 中,以下哪个关键字用于定义一个接口?A. classB. interfaceC. extendsD. implements2.下列关于Java 类和对象的说法,正确的是?A. 只有类可以创建对象,方法不能创建对象B. 对象是类的实例,类是对象的模板C. 方法不能访问类的成员变量,只能访问局部变量D. 类的成员变量只能在方法内部访问3、关于Java中的异常处理,以下哪种说法是正确的?A. 只有运行时异常才可以通过try-catch块捕获处理。

B. 自定义异常类时必须继承自Throwable类。

C. 异常处理中的finally块主要用于处理异常情况。

D. 使用try-catch块处理异常时,必须同时有finally块。

4、关于Java集合框架(Java Collections Framework),以下说法不正确的是?A. Java集合框架主要包括两种类型的集合:List和Set。

B. List中的元素可以重复且有序。

C. Set中的元素是唯一的且无序的。

D. Java集合框架不提供对集合元素的排序功能。

5.在Java中,以下哪个关键字用于定义一个接口?A. interfaceB. extendsC. implementsD. abstract6.下列哪个关键字用于实现多态?A. instanceofB. newC. thisD. super7、关于Java中的异常处理,以下哪个说法是正确的?(A)try块中一定要包含可能抛出异常的代码。

(B)catch块中只能捕获异常,不能包含其他逻辑处理代码。

(C)finally块中的代码一定会被执行,无论是否发生异常。

(D)throw关键字只能用于方法内部抛出异常,不能用于方法间传递异常信息。

8、关于Java中的集合框架,以下哪个说法是不正确的?(A)Java集合框架提供了多种类型的集合类,如List、Set、Map等。

Java开发工程师招聘笔试题及解答2024年

Java开发工程师招聘笔试题及解答2024年

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程序必须捕获并处理所有抛出的异常。

携程java面试题目(3篇)

携程java面试题目(3篇)

第1篇一、自我介绍1. 请做一个简短的自我介绍,包括你的姓名、毕业院校、专业、工作经历等。

2. 请简要介绍一下你的技术栈和熟悉的项目。

3. 你在求职过程中,最看重的是公司的哪些方面?二、Java基础1. 请解释Java中的final、static、synchronized关键字的作用和区别。

2. 请简述Java中的异常处理机制。

3. 请说明Java中的四种访问控制符的作用和区别。

4. 请描述Java中的集合框架,包括List、Set、Map等常用集合类的特点和应用场景。

5. 请解释Java中的反射机制及其应用场景。

6. 请简述Java中的多线程编程,包括线程创建、同步、通信等。

7. 请说明Java中的四种垃圾回收算法及其特点。

8. 请描述Java中的四种JVM内存区域及其作用。

9. 请解释Java中的类加载器及其作用。

10. 请说明Java中的四种设计模式及其应用场景。

三、项目经验1. 请简要介绍你参与过的项目,包括项目背景、目标、技术栈等。

2. 请描述你在项目中遇到的问题及解决方案。

3. 请举例说明你在项目中如何进行性能优化。

4. 请说明你在项目中如何进行代码优化。

5. 请描述你在项目中如何进行团队协作。

6. 请说明你在项目中如何进行需求分析。

7. 请描述你在项目中如何进行风险管理。

8. 请说明你在项目中如何进行项目进度管理。

9. 请描述你在项目中如何进行项目文档管理。

10. 请说明你在项目中如何进行项目测试。

四、数据库1. 请简述MySQL的存储引擎及其特点。

2. 请说明MySQL的索引类型及其作用。

3. 请描述MySQL的锁机制及其应用场景。

4. 请说明MySQL的视图、存储过程、触发器的应用场景。

5. 请描述MySQL的SQL优化方法。

6. 请说明MySQL的事务处理及其特点。

7. 请描述MySQL的备份与恢复方法。

8. 请说明MySQL的分区表及其应用场景。

9. 请描述MySQL的读写分离及其实现方法。

各大IT公司最容易考的java面试、笔试题目及答案(必看)

各大IT公司最容易考的java面试、笔试题目及答案(必看)

1、面向对象的特征有哪些方面1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。

抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。

抽象包括两个方面,一是过程抽象,二是数据抽象。

2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。

对象的一个新类可以从现有的类中派生,这个过程称为类继承。

新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。

派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。

面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。

多态性包括参数化多态性和包含多态性。

多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

2、String是最基本的数据类型吗?基本数据类型包括byte、int、char、long、float、double、boolean和short。

ng.String类是final类型的,因此不可以继承这个类、不能修改这个类。

为了提高效率节省空间,我们应该用StringBuffer类3、int 和Integer 有什么区别Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。

Int是java 的原始数据类型,Integer是java为int提供的封装类。

Java为每个原始类型提供了封装类。

原始类型封装类booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble引用类型和原始类型的行为完全不同,并且它们具有不同的语义。

携程开发笔试编程题

携程开发笔试编程题

携程开发笔试编程题
引言概述:
携程开发笔试编程题是携程公司用于选拔开发人员的一种考核方式。

通过编程题,携程公司能够评估应聘者的编程能力、解决问题的能力以及对算法和数据结构的理解。

本文将从五个大点来详细阐述携程开发笔试编程题的相关内容。

正文内容:
1. 题目难度分析
1.1 难度分级
1.2 题目类型
1.3 题目限制条件
2. 解题思路与方法
2.1 算法和数据结构
2.2 优化策略
2.3 边界条件处理
2.4 特殊情况考虑
3. 编程技巧与优化
3.1 代码风格与规范
3.2 代码复用与模块化
3.3 错误处理与异常处理
3.4 时间与空间复杂度优化
4. 测试与调试
4.1 单元测试
4.2 边界测试
4.3 性能测试
4.4 调试技巧
5. 总结与建议
5.1 总结经验教训
5.2 提出改进方案
5.3 给出应试者的建议
总结:
携程开发笔试编程题作为一种选拔开发人员的考核方式,对应聘者的编程能力、解决问题的能力以及对算法和数据结构的理解进行评估。

在解题过程中,需要分析题目难度,选择合适的解题思路和方法,并注意编程技巧与优化。

同时,测试与调试也是重要的环节。

总结经验教训并提出改进方案,给出应试者的建议,有助于提高解题能力和应对携程开发笔试编程题的能力。

携程专业笔试题目

携程专业笔试题目

携程专业笔试题目携程专业笔试题目是一个提供旅行服务的公司,下面是一些可能涉及到的题目以及相关参考内容:1. 酒店预订系统:- 介绍酒店预订系统的原理和流程,包括用户搜索酒店、选择房间、下单支付等环节。

- 解释如何实现酒店价格实时变动功能,比如根据季节、供求关系等调整房价。

- 讨论如何确保酒店房间库存的准确性,以避免因房间被重复预订导致用户不满。

2. 机票查询和预订:- 解释机票查询的原理和流程,以及搜索引擎如何根据用户需求和航班规则返回相关的机票信息。

- 讨论如何解决航班延误和取消的情况下的机票退改签问题,包括退款流程和补偿规定。

- 探讨如何应对航班高峰期的流量高峰,比如设计航班查询和预订系统的架构和优化方案。

3. 旅行包裹追踪系统:- 介绍旅行包裹追踪系统的原理和功能,包括如何通过订单信息和物流跟踪信息实现包裹追踪。

- 讨论如何应对包裹丢失或物流延误的情况,包括如何与物流公司合作解决问题并提供客户补偿。

- 探讨如何设计一个高效可靠的旅行包裹追踪系统,以便用户可以实时了解包裹的运输状态。

4. 旅行评价和用户反馈系统:- 介绍旅行评价和用户反馈系统的重要性和价值,以及如何收集和分析用户的评价和反馈。

- 解释如何处理用户投诉和问题解决,以及如何提高用户满意度和信任度。

- 探讨如何使用用户评价和反馈来改进产品和服务,以满足不同用户的需求和期望。

5. 旅行数据分析和个性化推荐:- 讨论如何分析旅行数据,比如用户的搜索和购买行为数据,以及如何利用这些数据进行个性化推荐。

- 解释如何使用机器学习和数据挖掘技术来识别用户的旅行偏好和兴趣,并根据这些偏好进行定制推荐。

- 探讨如何提高个性化推荐的精度和效果,以提供更好的用户体验和推动业务增长。

以上是一些携程专业笔试题目可能涉及到的内容以及相关参考内容,可以帮助应聘者在准备笔试时更好地理解和回答相关问题。

当然,针对具体的笔试题目,可能还需要根据具体情况进行深入研究和准备。

Java开发工程师招聘笔试题与参考答案(某大型央企)

Java开发工程师招聘笔试题与参考答案(某大型央企)

招聘Java开发工程师笔试题与参考答案(某大型央企)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、在Java中,以下哪个关键字用于声明一个类的静态变量?A、publicB、privateC、staticD、final2、在Java中,以下哪个关键字用于声明一个方法为抽象方法?A、abstractB、nativeC、synchronizedD、transient3、在Java中,下列哪个关键字用于声明一个抽象类?A、finalB、staticC、abstractD、native4、以下哪个方法可以用来检查一个字符串是否以指定的后缀结束?A、String.endsWith(String suffix)B、String.startsWith(String prefix)C、String.indexOf(String str)D、stIndexOf(String str)5、以下哪个Java关键字是用来定义类的?A. newB. classC. objectD. this6、在Java中,以下哪个方法可以在子类中被重写(Override)?A. 静态方法B. 私有方法C. 构造方法D. 抽象方法7、以下哪个不是Java中的基本数据类型?A、intB、StringC、floatD、boolean8、关于Java中的异常处理,以下说法正确的是:A、try块中可以没有catch或finally块B、finally块中可以抛出新的异常C、try块中可以抛出异常,但finally块中不能抛出异常D、try块中抛出的异常必须在catch块中处理,或者在finally块中处理9、在Java中,以下哪个类是用于处理日期和时间的?A. CalendarB. DateC. TimeD. DateTime 10、以下哪个关键字用于声明一个无参构造函数?A. newB. thisC. constructorD. super二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些是Java中的基本数据类型?A、intB、StringC、floatD、booleanE、char2、以下哪些操作是Java中的异常处理机制?A、try-catchB、finallyD、throwsE、instanceof3、以下哪些是Java中用于异常处理的机制?()A. try-catchB. finallyC. throwsD. throwE. extends4、下列关于Java集合框架的说法,正确的是?()A. List接口是集合框架中的一部分,它允许存储重复的元素。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

投的java 研发岗
有20 道选择和3 道编程
选择题涉及知识点:
瀑布模型开发流程()
静态结构、非静态结构、构造方法调用顺序()
一次趟能确定的一个元素位置的排序算法有哪些(简单选择排序、快排、堆排序)DNS 解析错误
垃圾回收机制
编程题
1.求一个长整型数的二进制形式包含1 的个数
public class Main1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
int count=0;
while(number!=0){
number=number&(number-1);
count++;
}
System.out.println(count);
}
}
2.求给定时间落在哪个区间内输出该区间的序号要求按序输出
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
/*
* 输出在时间区间范围内的序号
*/
public class Main2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int curtime = sc.nextInt();
String line ="";
String[] nums=new String[n];
int[] starttimes = new int[n];
int[] endtimes = new int[n];
ArrayList<String> res = new ArrayList<String>();
for(int i=0;i<n;i++){
nums[i]=sc.next();
starttimes[i]=sc.nextInt();
endtimes[i]=sc.nextInt();
}
sc.close();
for(int i=0;i<n;i++){
if(curtime<=endtimes[i]&&curtime>=starttimes[i]){
res.add(nums[i]);
}
}
if(res.size()==0){
System.out.println("null");
}
else{
Collections.sort(res);
for(String t : res){
System.out.println(t);
}
}
}
}
3.实现简易的LRU 算法get put 方法当超出指定容量时采用LRU 最近最久未使用方法
这题没有给输入行数因此不好控制何时结束,LRU 主要实现思想借助队列先进先出原则
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;
import java.util.Scanner;
/*
* 实现简单的LRU 算法
* 要求输入命令p 表示put g 表示get 如果超出指定容量则采用LRU 算法移除元素* 这里采用队列存放最近使用的元素队首时间最久队尾最新
*/
public class Main3 {
static Map<Integer, Integer> maps= new HashMap<Integer, Integer>();
static Queue<Integer> queue=new LinkedList<>();
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int cap = sc.nextInt();//缓存容量
int m=sc.nextInt();
ArrayList<String> cmds = new ArrayList<String>();//存放所有行命令
while(m>=0){//获取输入
String line = sc.nextLine();
cmds.add(line);
m--;
}
//System.out.println(cmds.size());
sc.close();
//遍历每一行命令
for(String s:cmds){
String[] ss = s.split(" ");
String s1=ss[0];
//System.out.println(s);
//如果为put
if(s1.equals("p")){
//System.out.println("mvp");
int t1=Integer.parseInt(ss[1]);
int t2=Integer.parseInt(ss[2]);
put(t1, t2,cap);
}
if(s1.equals("g")){//如果为get
//System.out.println("mmp");
int t3 = Integer.parseInt(ss[1]);
get(t3,cap);
}
}
}
//get 函数
public static void get(int key,int num){
if(maps.containsKey(key)){
queue.remove(key);
queue.add(key);
//System.out.println("ji");
System.out.println(maps.get(key));
}
else{
System.out.println("-1");
}
}
//put 函数
public static void put(int key,int val,int num){
if(maps.containsKey(key)){
maps.put(key, val);//是否已包含元素
queue.remove(key);
queue.add(key);
}
else{
if(maps.size()<=num){//判断是否超过容量否
queue.remove(key);
queue.add(key);
}
else{//超出缓存容量
//选择最近最久未使用的
Integer k = queue.poll();
maps.remove(k);
maps.put(key, val);
}
}
}
}。

相关文档
最新文档