百度2019面试题集:Java基础与框架知识点
需积分: 10 181 浏览量
更新于2024-07-17
收藏 58KB DOCX 举报
在百度2019年的面试题库中,涵盖了多种技术领域的考察内容,旨在测试应聘者的综合能力和对IT行业的深入理解。以下是部分题目及其知识点的详细解析:
1. **操作系统中的堆和栈**:
- 堆(Heap):内存中动态分配的区域,主要用于存储对象实例,大小不固定,由垃圾回收器管理。
- 栈(Stack):用于存储局部变量和函数调用时的信息,具有先进后出(LIFO)特性,执行完函数后自动释放。
2. **基于注解的切面编程**:
- 注解(Annotation):在Java中用于元数据标记,可自定义附加在代码上的信息,用于实现切面编程如Spring AOP中的声明式事务管理。
3. **对象/关系映射(ORM)**:
- ORM是将对象模型和关系数据库之间的映射技术,如Hibernate等,简化了数据持久化的处理,使得代码更易于理解和维护。
4. **Java反射机制**:
- 反射API允许程序在运行时检查类的信息、创建实例、获取成员变量和方法,增强了程序的灵活性和动态性。
5. **ACID属性**:
- ACID是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)的缩写,是数据库事务处理的基本特性,确保数据操作的一致性和完整性。
6. **BS与CS的区别**:
- BS(Browser Server)结构,客户端浏览器处理大部分交互,服务器负责数据处理和传输。
- CS(Client-Server)结构,客户端和服务器紧密耦合,所有处理都在服务器端完成。
7. **Cookie和Session的区别**:
- Cookie通常用于持久存储少量用户信息,客户端浏览器发送;Session在服务器端存储,通过session ID关联,安全性更高但需要服务器支持。
8. **fail-fast与fail-safe机制**:
- fail-fast强调尽早发现错误,一旦检测到问题就停止操作;fail-safe则继续执行直到遇到问题才终止,保证尽可能多的操作完成。
9. **HTTP方法的区别(GET vs POST)**:
- GET:用于请求数据,参数显示在URL中,幂等性,不适合大量数据传递。
- POST:用于提交数据,数据隐藏在请求体中,可用于更新或创建资源,非幂等。
10. **接口(Interface)与抽象类(Abstract Class)**:
- 接口定义行为规范,多继承,无实现;抽象类可以提供默认实现,仅单继承。
11. **IoC(依赖注入)与DI(依赖注入)的优点**:
- IoC/DI简化了组件之间的依赖关系管理,提高代码的可测试性和可扩展性。
12. **IO与NIO的区别以及NIO的优点**:
- IO是阻塞的,进程间通信;NIO是非阻塞的,引入Channel和Buffer,提高性能和并发处理能力。
13. **Java 8/Java 7新功能**:
- Java 8新增Stream API、Lambda表达式、日期/时间API等;Java 7主要是性能优化和JVM改进。
14. **竞态条件(Race Condition)**:
- 并发编程中,两个或多个线程访问共享资源,因执行顺序不确定可能导致的结果不一致。
15. **JRE、JDK、JVM及JIT的区别**:
- JRE(Java Runtime Environment)包括JVM和核心库;
- JDK(Java Development Kit)包含JRE及开发工具;
- JVM(Java Virtual Machine)负责执行字节码;
- JIT(Just-In-Time Compiler)是JVM的一部分,动态编译代码提高性能。
16. **MVC架构实现技术**:
- MVC(Model-View-Controller):模型处理业务逻辑,视图负责展示,控制器协调两者。
17. **RPC通信与RMI的区别**:
- RPC(Remote Procedure Call)是一种远程调用技术,如Hessian、Thrift等;RMI是Java的RPC实现,基于Java对象序列化。
18. **WebService与Web服务标准(SOAP、UDDI、WSDL)**:
- WebService是网络服务的一种,通过标准协议(SOAP)进行交互;
- SOAP(Simple Object Access Protocol)用于消息交换;
- UDDI(Universal Description Discovery and Integration)用于注册和查找Web服务;
- WSDL(Web Services Description Language)描述服务接口和操作。
19. **WEB容器功能及常见容器**:
- 容器负责处理HTTP请求,管理应用上下文,如Tomcat、Jetty、WebLogic等。
20. **Java源文件的类定义**:
- 可以包含一个或多个公共类,但每个类必须独立,不能相互嵌套定义。
21. **AOP(面向切面编程)**:
- 在不修改原有代码的基础上,通过预编译方式和运行期动态代理实现程序的增强功能。
22. **Servlet生命周期及方法**:
- Servlet有初始化、服务请求、销毁等阶段,涉及的方法如init()、service()、destroy()等。
23. **Ajax原理与实现步骤**:
- Ajax异步加载数据,无需刷新页面;涉及的技术包括JavaScript、XMLHttpRequest等。
24. **Struts框架功能**:
- Struts是一个基于MVC的Web应用开发框架,简化了Web开发流程,提供Action、Servlet等组件。
25. **N层架构**:
- N层架构(如MVC、DAO、BLL、WEB层)将应用程序划分为多个逻辑层,提高代码组织和可维护性。
26. **CORBA(Common Object Request Broker Architecture)**:
- 面向对象的分布式计算中间件,提供远程过程调用和对象定位服务。
27. **Java虚拟机(JVM)**:
- Java的运行环境,负责执行字节码,提供了垃圾回收机制和跨平台兼容性。
28. **正则表达式**:
- 用于文本字符串匹配和搜索的强大工具,Pattern和Matcher类实现。
29. **懒加载(LazyLoading)**:
- 避免在加载对象时立即占用过多资源,只有在实际使用时才加载对象的部分属性。
30. **尾递归与控制反转(IoC)和依赖注入(DI)**:
- 尾递归是函数调用自身且没有剩余操作,可以优化为循环,避免栈溢出;
- 控制反转和依赖注入是设计模式,前者是程序依赖于外部的配置,后者则是通过依赖注入框架动态注入依赖。
关键词解析:
- `finalize`:Java对象的析构函数,在垃圾回收前执行,清理资源。
- `final`:修饰符,常量、类、方法或变量,表示不可变或终结状态。
- `finalize()`:Java对象的清理方法,不一定被执行,主要用于资源清理。
- `构造函数(initialization)`:对象创建时自动执行,初始化成员变量。
- `final、finally、finalize`:三个词在Java中各有特定用途,final用于对象属性,finally用于异常处理,finalize用于对象销毁。
144 浏览量
2023-12-18 上传
2024-04-06 上传
2023-05-13 上传
2023-08-03 上传
2023-09-08 上传
2023-07-13 上传
kong20161008
- 粉丝: 8
- 资源: 12
最新资源
- 多模态联合稀疏表示在视频目标跟踪中的应用
- Kubernetes资源管控与Gardener开源软件实践解析
- MPI集群监控与负载平衡策略
- 自动化PHP安全漏洞检测:静态代码分析与数据流方法
- 青苔数据CEO程永:技术生态与阿里云开放创新
- 制造业转型: HyperX引领企业上云策略
- 赵维五分享:航空工业电子采购上云实战与运维策略
- 单片机控制的LED点阵显示屏设计及其实现
- 驻云科技李俊涛:AI驱动的云上服务新趋势与挑战
- 6LoWPAN物联网边界路由器:设计与实现
- 猩便利工程师仲小玉:Terraform云资源管理最佳实践与团队协作
- 类差分度改进的互信息特征选择提升文本分类性能
- VERITAS与阿里云合作的混合云转型与数据保护方案
- 云制造中的生产线仿真模型设计与虚拟化研究
- 汪洋在PostgresChina2018分享:高可用 PostgreSQL 工具与架构设计
- 2018 PostgresChina大会:阿里云时空引擎Ganos在PostgreSQL中的创新应用与多模型存储