美团笔试题Java社招_美团十月社招Java面试题合集,JVM+Spring+Sprin

美团算大厂吗?为什么程序员挤破头也要进大厂?

那年十八 母校舞会

站着如喽啰

那时候 我含泪

发誓各位 必须看到我

1. 为什么说Java是一门平台无关语言?

平台无关实际的含义是“一次编写到处运行”。Java 能够做到是因为它的字节码(byte code)可以运行在任何操作系统上,与底层系统无关。

2. 为什么 Java 不是100%面向对象?

Java 不是100%面向对象,因为它包含8个原始数据类型,例如 boolean、byte、char、int、float、double、long、short。它们不是对象。

3. 什么是 singleton class,如何创建一个 singleton class?

Singleton class 在任何时间同一个 JVM 中只有一个实例。可以把构造函数加 private 修饰符创建 singleton。

4. 什么是多态?什么是运行时多态,也称动态方法分配?

多态简单地说“一个接口,多种实现”。多态的出现使得在不同的场合同一个接口能够提供不同功能,具体地说可以让变量、函数或者对象能够提供多种功能。下面是多态的两种类型:

编译时多态。

运行时多态。

编译时多态主要是对方法进行重载(overload),而运行时多态主要通过使用继承或者实现接口。

在 Java 中,运行时多态或动态方法分配是一种在运行过程中的方法重载。在这个过程中,通过调用父类的变量引用被重载的方法。下面是一个例子:

class Car {

void run()

{

System.out.println(“car is running”);

}

}

class Audi extends Car {

void run()

{

System.out.prinltn(“Audi is running safely with 100km”);

}

public static void main(String args[])

{

Car b= new Audi(); //向上转型

b.run();

}

}

5. Java类加载器包括几种?它们之间的关系是怎么样的?

Java 类加载器有:

引导类加载器(bootstrap class loader):只加载 JVM 自身需要的类,包名为 java、javax、sun 等开头。

扩展类加载器(extensions class loader):加载 JAVA_HOME/lib/ext 目录下或者由系统变量 -Djava.ext.dir 指定位路径中的类库。

应用程序类加载器(application class loader):加载系统类路径 java -classpath 或 -Djava.class.path 下的类库。

自定义类加载器(java.lang.classloder):继承 java.lang.ClassLoader 的自定义类加载器。

注意: -Djava.ext.dirs 会覆盖 Java 本身的 ext 设置,造成 JDK 内建功能无法使用。可以像下面这样指定参数:

-Djava.ext.dirs=./plugin:$JAVA_HOME/jre/lib/ext。

它们的关系如下:

启动类加载器,C++实现,没有父类。

扩展类加载器(ExtClassLoader),Java 实现,父类加载器为 null。

应用程序类加载器(AppClassLoader),Java 实现,父类加载器为 ExtClassLoader 。

自定义类加载器,父类加载器为AppClassLoader。

6. 列举Spring配置中常用的重要注解。

下面是一些重要的注解:

@Required

@Autowired

@Qualifier

@Resource

@PostConstruct

@PreDestroy

7. Spring中的Bean是什么?列举Spring Bean的不同作用域。

Bean 是 Spring 应用的骨架。它们由 Spring IoC 容器管理。换句话说,Bean 是一个由 Spring IoC 容器初始化、装配和管理的对象。

下面是 Spring Bean 的5种作用域:

Singleton:每个容器只创建一个实例,也是 Spring Bean 的默认配置。由于非线程安全,因此确保使用时不要在 Bean 中共享实例变量,一面出现数据不一致。

Prototype:每次请求时创建一个新实例。

Request:与 prototype 相同,区别在于只针对 Web 应用。每次 HTTP 请求时创建一个新实例。

Session:每次收到 HTTP 会话请求时由容器创建一个新实例。

全局 Session:为每个门户应用(Portlet App)创建一个全局 Session Bean。

8. 什么是JDBC驱动?

JDBC Driver 是一种实现 Java 应用与数据库交互的软件。JDBC 驱动有下面4种:

JDBC-ODBC bridge 驱动

Native-API 驱动(部分是 Java 驱动)

网络协议驱动(全部是 Java 驱动)

Thin driver(全部是 Java 驱动)

9. 使用 Java 连接数据库有哪几步?

注册驱动类

新建数据库连接

新建语句(statement)

查询

关闭连接

写在最后

篇幅有限,所以文中并没有给出所有的面试题,有需要的朋友下面有领取方式;其实不管面不面试,拿来试试手也挺好,就当复习复习

PDF完整版面试题领取请点击下方传送门:

部分面试题PDF文件截图

0ae8e19dc8c60a6e5e5cae53c3bd229a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值