| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java常见面试题 -> 正文阅读 |
|
[Java知识库]Java常见面试题 |
目录 String和StringBuilder、StringBuffer的区别?? Thread 调用 start() 方法和调用 run() 方法的区别 BeanFactory和ApplicationContext有什么区别? 介绍一下 @SpringBootApplication 注解? Java基础谈谈对面向对象的理解?面向对象是一种编程思想,它注重的是结果而非过程,不需要所有事情都亲力亲为。面向对象是对一类事物共有的特点和行为的概括,是抽象的、不存在的。 面向对象有三大特征:封装、继承和多态 封装:将属性私有化,对外提供getter、setter方法,隐藏对象的属性和实现细节,对内部数据提供不同级别的保护。 继承:所有类都默认继承顶级父类Object,使用extends实现继承关系,子类拥有父类的所有非私有方法及属性,在Java中都是单继承,如果父类中的方法不能满足子类的需求,子类可以重写父类方法进行功能扩展。 多态:多态的前提是要有继承关系,并重写了父类中的方法,父类型指向子类型对象。遵循编译时看左运行时看右原则。 访问修饰符的作用范围
String和StringBuilder、StringBuffer的区别??String的值是常量,一旦被创建就无法修改,当对多个字符串拼接时,每次拼接得到的字符串都是一个新的对象,会占用大量内存。 StringBuilder是非线程安全的,它的append()方法对字符串进行操作时不会浪费内存。在单线程情况下推荐使用,效率较高。 StringBuffer是线程安全的,但是效率较低。 重载(Overload)和重写(Override)的区别?重载:
重写:
throw和throws的区别?
接口与抽象类的区别?接口:
抽象类:
Java中final关键字?被final修饰的类不能被继承 被final修饰的方法不能被重写 被final修饰的属性不能被修改,是常量 wait() 和 sleep() 方法的区别?
Thread 调用 start() 方法和调用 run() 方法的区别run():普通的方法调用,在主线程中执行,不会新建一个线程来执行 start():新启动一个线程,这时此线程处于就绪状态,并没有运行,一旦到的CPU时间片就开始执行run()方法。 synchronized 和 Lock 的区别
JVM常见问题谈谈对JVM的理解??JVM是可运行Java代码的假想计算机,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆和一个存储方法域、JVM是运行在操作系统之上的,它与硬件没有直接的交互。 什么情况下回发生栈内存溢出?
JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代?
你知道哪几种垃圾收集器,各自的优缺点?
CMS收集器和G1收集器的区别?
谈谈双亲委派机制?如果一个类加载器收到类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器完成。每个类加载器都是如此,只有当父加载器在自己的搜索范围内找不到指定的类时(即ClassNotFoundException),子加载器才会尝试自己去加载。
这种设计有个好处是,如果有人想替换系统级别的类:String.java。篡改它的实现,在这种机制下这些系统的类已经被Bootstrap classLoader加载过了(为什么?因为当一个类需要加载的时候,最先去尝试加载的就是BootstrapClassLoader),所以其他类加载器并没有机会再去加载,从一定程度上防止了危险代码的植入。 强引用、软引用、弱引用、虚引用的区别?
spring常见问题谈谈你对Spring的理解?Spring框架是一个轻量级的开源框架,是核心容器、数据访问与集成、AOP、Web、消息、测试六个模块的集成,主要是为了简化企业级应用的后台开发,降低耦合性。平时接触到最多的还是IoC和AOP两个特性。IoC指的是控制反转,把对象的创建和依赖关系的维护交给Spring容器去管理。Spring通过工厂模式、反射机制等技术管理对象的作用域和生命周期。AOP一般称为面向切面编程,是面向对象的一种补充,将程序中独立于其他功能的方法抽取出来,使Java开发模块化,仅需专注于主业务即可 BeanFactory和ApplicationContext有什么区别?
谈谈spring中bean的生命周期?大致分为五个阶段:
SpringMVC常见问题谈谈你对springmvc的理解?springmvc是一款基于MVC设计模式实现的轻量级web框架,可以帮助我们进行更简洁的web层开发,并且它天生与 Spring 框架集成,通过把Model,View,Controller分离,将web层进行职责解耦。Spring MVC 下我们一般把后端项目分为 Service层(处理业务)、Dao层(数据库操作)、Entity层(实体类)、Controller层(控制层,返回数据给前台页面)。 SpringBoot常见问题谈谈你对SpringBoot的理解?SpringBoot主要用来简化使用Spring的难度和繁重的XML配置,它是Spring组件的一站式解决方案,采取了约定大于配置的方法。通过.properties或.yml文件替代了Spring繁杂的XML配置文件,同时支持@ImportResource注解加载XML配置。提供了各种启动器,使开发者能快速上手。 说说SpringBoot的优点?
介绍一下 @SpringBootApplication 注解?Spring Boot 的核心注解是@SpringBootApplication,它也是启动类使用的注解,主要包含了 3 个注解: Spring Boot 的四大核心?
Spring Boot 自动配置原理是什么?@EnableAutoConfiguration注解、 @Configuration注解和 @ConditionalOnClass注解组成了Spring Boot自动配置的核心,首先它得是一个配置文件,其次根据类路径下是否有这个类去自动配置。具体是通过maven读取每个starter中的spring.factories文件,该文件配置了所有需要被创建在spring容器中的bean。 Spring Boot起步依赖?在Spring Boot项目中,必须继承依赖spring-boot-starter-parent,其pom文件又继承了一个依赖spring-boot-dependencies,该文件管理了所有依赖的版本号;解决了我们原有项目中可能存在依赖版本冲突的问题,它来真正管理spring boot应用里面的所有依赖版本。spring boot帮我们打包了各个依赖让我们不用再像之前那样自己导入一大堆的依赖,只要引入起步依赖的坐标就可以进行web开发了,同样体现了依赖传递的作用。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:57:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |