| |
|
开发:
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面试题附答案(面试必会) |
Java面试题大全
JavaSE1.JDK和JRE区别JRE(Java Runtime Enviroment)是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。 2.八大数据类型分别是byte, short, int, long, char, float, double, boolean. 2.short 3.int 4.long 8.boolean 3.equals和==区别
4.String类的常用方法
5.String不可变原理String 被声明为 final,因此它不可被继承。(Integer 等包装类也不能被继承) 6.线程池三大方法,七大参数,四种拒绝策略具体答案参考我之前的文章https://blog.csdn.net/JiaMing11_27/article/details/119078588?spm=1001.2014.3001.5501 7.ArrayList 和LinkedList 区别以及底层原理ArrayList和LinkedList 都实现了list的接口,Al底层是数组,时间复杂度是O(1),Lk底层数据结构是双向循环链表 ,链表只有一个前驱和后继,时间复杂度O(n), 8.类的实例化顺序父类静态代变量 父类静态代码块 子类静态变量 子类静态代码块 9.synchronized 和 ReentrantLock 区别是什么?1.ReentrantLock 是 API 级别的,synchronized 是 JVM 级别的 10.HashMap底层原理hashMap是线程不安全的,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,采用哈希表来存储的,hashMap是根据键的hashCode值存储数据,又很快的访问速度,但是遍历顺序不确定 hashMap是一对一或一对多的关系 键只允许有一个空值 value可以有多个 当键相同时 会覆盖掉value值 11.HashMap的put(k,v)实现原理(1)首先将k,v封装到Node对象当中(节点)。 12.HashMap的get(k,v)实现原理(1)先调用k的hashCode()方法得出哈希值,并通过哈希算法转换成数组的下标。 13.Volatilejvm提供的轻量级同步机制 14.线程几种状态,什么时候会阻塞在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。 15.为什么阿里巴巴Java手册不建议使用Executors创建线程池?FixedThreadPool和SingleThreadExecutor => 允许的请求队列长度为Integer.MAX_VALUE,可能会堆积大量的请求,从而引起OOM异常 16.类加载过程
类从被加载到虚拟机内存中开始、到卸载出内存为止,整个生命周期包括七个阶段:
17.Java中final、finally、finalize的区别与用法final:java中的关键字,修饰符。 18.java中String、StringBuffer和StringBuilder的区别StringBuffer是线程安全,可以不需要额外的同步用于多线程中; StringBuilder是非同步,运行于多线程中就需要使用着单独同步处理,但是速度就比StringBuffer快多了; StringBuffer与StringBuilder两者共同之处:可以通过append、indert进行字符串的操作。 String实现了三个接口:Serializable、Comparable、CarSequence StringBuilder只实现了两个接口Serializable、CharSequence,相比之下String的实例可以通过compareTo方法进行比较,其他两个不可以。 19.线程安不安全指什么线程安全就是说多线程访问同一代码,不会产生不确定的结果。编写线程安全的代码是低依靠线程同步。 20.Session 与 Token 的区别session生成方式? 简单来讲,用户访问的时候说他自己是张三,他骗你怎么办? 那就在服务器端保存张三的信息,给他一个id,让他下次用id访问。 线程安不安全指什么线程安全就是说多线程访问同一代码,不会产生不确定的结果。编写线程安全的代码是低依靠线程同步。 计算机网络1.TCP三次握手,四次挥手具体答案参考之前博客https://blog.csdn.net/JiaMing11_27/article/details/119651072?spm=1001.2014.3001.5501 2.TCP和UDP区别以及长、短连接具体答案参考之前博客https://blog.csdn.net/JiaMing11_27/article/details/119651846?spm=1001.2014.3001.5501 3.OSI七层模型和TCP/IP四层协议4.HTTP常见状态码答案看我之前博客https://blog.csdn.net/JiaMing11_27/article/details/118436439?spm=1001.2014.3001.5501 5.进程三种状态进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 6.进程和线程,进程可以没有线程吗程序至少有一个进程,进程至少有一个线程 7.从输入URL到页面展示的详细过程1、输入网址 JVMg1 和 cms 区别吞吐量优先和响应优先的垃圾收集器选择。 JVM内存模型以及GC算法参考之前博客:https://blog.csdn.net/JiaMing11_27/article/details/119044707?spm=1001.2014.3001.5501 数据库(MySql、Redis)1.数据库三种删除方式及其区别1. 使用delete 语句 特点:
2. 使用truncate 语句 特点:
3.使用drop语句 特点:
2.事务的隔离级别多个事务之间隔离的,相互独立的。但是如果多个事务操作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决这些问题*存在问题: 2.不可重复读(虚读):在同一个事务中,两次读取到的数据不一样。 隔离级别:
教据库查询隔离级别: 数据结构数组和链表区别,单链表和双链表数组静态分配内存,链表动态分配内存;数组在内存中连续,链表不连续;数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n);数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。 链表的优点 单链表:
版本管理工具(git)git命令以及分区参考我之前博客:https://blog.csdn.net/JiaMing11_27/article/details/119141032?spm=1001.2014.3001.5501 框架1.SpringMVC执行原理参考博客:https://blog.csdn.net/JiaMing11_27/article/details/116609811?spm=1001.2014.3001.5501 2.SpringBoot自动装配原理参考博客:https://blog.csdn.net/JiaMing11_27/article/details/116610872?spm=1001.2014.3001.5501 3.SpringBoot常用注解1、@SpringBootApplication 包含@Configuration、@EnableAutoConfiguration、@ComponentScan 通常用在主类上。 2、@Repository 用于标注数据访问组件,即DAO组件。 3、@Service 用于标注业务层组件。 4、@RestController 用于标注控制层组件(如struts中的action),包含@Controller和@ResponseBody 5、@ResponseBody 表示该方法的返回结果直接写入HTTP response body中 一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析 为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。 6、@Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 7、@ComponentScan 组件扫描。相当于,如果扫描到有@Component @Controller @Service等这些注解的类,则把 这些类注册为bean。 8、@Configuration 指出该类是 Bean 配置的信息源,相当于XML中的,一般加在主类上。 9、@Bean 相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。 10、@EnableAutoConfiguration 让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在主类上。 11、@AutoWired byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 12、@Qualifier 当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用 13、@Resource(name=“name”,type=“type”) 没有括号内内容的话,默认byName。与@Autowired干类似的事。 14、@RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 4.GET和POST的区别
5.threadlocal原理以及内存泄漏怎么解决ThreadLocal主要为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。一个线程可以储存多个ThreadLocal的值 6.Spring中 bean生命周期Spring启动,查找并加载需要被Spring管理的bean,进行Bean的实例化 Bean实例化后对将Bean的引入和值注入到Bean的属性中 如果Bean实现了BeanNameAware接口的话,Spring将Bean的Id传递给setBeanName()方法 如果Bean实现了BeanFactoryAware接口的话,Spring将调用setBeanFactory()方法,将BeanFactory容器实例传入 如果Bean实现了ApplicationContextAware接口的话,Spring将调用Bean的setApplicationContext()方法,将bean所在应用上下文引用传入进来。 如果Bean实现了BeanPostProcessor接口,Spring就将调用他们的postProcessBeforeInitialization()方法。 如果Bean 实现了InitializingBean接口,Spring将调用他们的afterPropertiesSet()方法。类似的,如果bean使用init-method声明了初始化方法,该方法也会被调用 如果Bean 实现了BeanPostProcessor接口,Spring就将调用他们的postProcessAfterInitialization()方法。 此时,Bean已经准备就绪,可以被应用程序使用了。他们将一直驻留在应用上下文中,直到应用上下文被销毁。 如果bean实现了DisposableBean接口,Spring将调用它的destory()接口方法,同样,如果bean使用了destory-method 声明销毁方法,该方法也会被调用。 7.Mybatis中的 ${} 和 #{}区别与用法
#{}方式能够很大程度防止sql注入。 8.什么是Nginx
9. Nginx的应用场景
持续更新!!! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/23 13:01:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |