java面试题精选

简介: java面试题精选

一、tomcat运行原理:

1. Tomcat需要main方法启动,创建实例:server。

2. Tomcat需要监听本机上的某个端口,主要有8005,8043,8080。

3. Tomcat需要抓取此端口(8080)上来自客户端的链接并获得请求调用的方法与参数。

4. Tomcat需要根据请求调用的方法,动态地加载方法所在的类,完成类的实例化并通过该实例获得需要的方法,最终将请求传入方法执行。

5. 将结果返回给客户端(jsp/html页面、json/xml字符串)。

二、描述spring是如何工作的?

(1)通过IOC控制反转模式将组件间的依赖关系从程序内部转变到外部来管理,由容器控制程序之间的依赖关系,而非传统实现中,由程序代码直接操控。


(2)通过依赖注入DI将组件的依赖通过外部以参数或者其他形式注入,即组件之间的依赖关系由容器在运行期决定,由容器动态的将某种依赖关系注入到组件之中。


(3)使用AOP面向切面编程,将一些横向的功能抽离出来形成一个独立的模块,然后在指定位置插入这些功能,将日志记录,性能统计,安全控制,事务处理,异常处理等代码从逻辑代码中分离出来,从而使业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发效率。

三、JVM运行原

image.png

(1)java源文件经编译器,编译成字节码(其中方法被编译成字节码指令)

(2)通过类加载器将字节码加载到虚拟机内存,并将字节码所代表的静态存储结构转化为方法区的运行时数据结构。

(3)通过JVM解释器将每一条字节码指令翻译成特定平台上的机器码,然后通过特定平台运行。


四、java中包装类与基本数据类型区别?


(1)包装类比基本数据类型占空间少。


(2)基本类型存放在栈,包装类型存放在堆里


(3)包装类是对象,拥有方法,基本类型没有


(4)泛型只能使用引用数据类型,所以只能使用包装类。


五、shiro权限标签及其用处?


<shiro:guest>验证当前用户是否是访客


<shiro:user> 验证是否为认证通过或者已经记住的用户


<shiro:authenticated> 已经通过的用户,不包括已经记住的用户


<shiro:principal> 输出当前用户信息


<shiro:hasRole name=""> 验证是否拥有该角色


<shiro:hasPermission name="">验证是否拥有该权限


六、servlet的生命周期?

Servlet的生命周期包含了下面四个阶段:


1、加载和实例化


当Servlet容器启动或客户发送一个请求时,Servlet容器会查找内存中是否存在servlet实例,若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。


2、初始化


实例化后,Servlet容器将调用Servlet的init()方法进行初始化


3、请求处理


初始化后,Servlet处于能响应请求的就绪状态。当接受到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求转调不同的doget()或者doPost()方法。


4、服务终止


当servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用servlet的destroy()方法去判断该Servlet是否应当被释放。


七、java的作用域有哪些?分别作用范围?有什么区别?

image.png

目录
相关文章
|
1天前
|
消息中间件 安全 前端开发
字节面试:说说Java中的锁机制?
Java 中的锁(Locking)机制主要是为了解决多线程环境下,对共享资源并发访问时的同步和互斥控制,以确保共享资源的安全访问。 锁的作用主要体现在以下几个方面: 1. **互斥访问**:确保在任何时刻,只有一个线程能够访问特定的资源或执行特定的代码段。这防止了多个线程同时修改同一资源导致的数据不一致问题。 2. **内存可见性**:通过锁的获取和释放,可以确保在锁保护的代码块中对共享变量的修改对其他线程可见。这是因为 Java 内存模型(JMM)规定,对锁的释放会把修改过的共享变量从线程的工作内存刷新到主内存中,而获取锁时会从主内存中读取最新的共享变量值。 3. **保证原子性**:锁
13 1
|
2天前
|
存储 Java
面试官:素有Java锁王称号的‘StampedLock’你知道吗?我:这什么鬼?
面试官:素有Java锁王称号的‘StampedLock’你知道吗?我:这什么鬼?
42 23
|
5天前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
18 0
|
5天前
|
安全 Java 程序员
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
11 0
|
7天前
|
Java
三个可能的Java面试题
【5月更文挑战第7天】Java垃圾回收机制自动管理内存,回收无引用对象的内存,确保内存有效利用。多态性允许父类引用操作不同子类对象,如Animal引用可调用Dog的方法。异常处理机制通过try-catch块捕获和处理程序异常,例如尝试执行可能导致ArithmeticException的代码,catch块则负责处理异常。
33 9
|
18天前
|
Java
【JAVA面试题】static的作用是什么?详细介绍
【JAVA面试题】static的作用是什么?详细介绍
|
18天前
|
Java
【JAVA面试题】final关键字的作用有哪些
【JAVA面试题】final关键字的作用有哪些
|
18天前
|
JavaScript 前端开发 Java
【JAVA面试题】什么是引用传递?什么是值传递?
【JAVA面试题】什么是引用传递?什么是值传递?
|
18天前
|
安全 Java
【JAVA面试题】什么是对象锁?什么是类锁?
【JAVA面试题】什么是对象锁?什么是类锁?
|
18天前
|
存储 自然语言处理 Java
【JAVA面试题】什么是代码单元?什么是码点?
【JAVA面试题】什么是代码单元?什么是码点?