Java面试知识点
文章平均质量分 71
一蓑烟雨渡平生
故事还没有结束。
展开
-
Java项目SpringMVC拦截器+Redis优化登录功能
1)登录注册功能的验证码之前是存放在Session中,会增加服务端的内存压力,现在通过Cookie获取信息存储到Redis中,Redis的key存随机字符串,Value存生成的字符串;Session 是保存在服务器的⽂件中,如果是集群服务,同⼀个⽤户过来可能落在不同机器上,这就会导致⽤户频繁登陆;preHandle:此方法在进入controller之前执行,如果该方法返回ture,则程序继续向下执行处理器中的方法,否则程序将不再往下继续执行;a.处理每次请求时,都需要查询用户的登录凭证,访问的频率非常高。原创 2022-09-13 10:42:42 · 449 阅读 · 0 评论 -
说说Spring和SpringBoot之间的区别和联系?
AOP(Aspect-Oriented Programming)是一种设计思想,将那些与业务无关,但是又被业务模块所共同调用的逻辑封装起来(例如事务处理、日志管理、权限控制等等),便于减少系统的重复代码,降低模块间的耦合度,有利于未来的可扩展性和可维护性。Spring AOP是基于动态代理实现的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用JDK Proxy,这时候Spring。原创 2022-09-04 21:48:15 · 1057 阅读 · 0 评论 -
Java:动态代理和静态代理的区别,通过代码来展示
首先需要理解代理模式目的是通过代理类来调用被代理类中的方法,其实也就是各执其职。打个比方:被代理类是用来生产产品的,而代理类是用来拉赞助和销售的;当你需要产品时,是通过代理类来间接获取产品。有两种实现方式,分别是静态代理和动态代理。1、在静态代理方法中,需要在编译期间就确定代理类和被代理类关系,不利于扩展。同时,每个代理类只能为一个接口服务,产生代码冗余。2、在动态代理方法中,想要解决两个问题:1)根据加载到内存中的被代理类,动态的创建一个代理类及其对象。2)当通过代理类的对象调用方法时,原创 2022-04-22 17:49:30 · 511 阅读 · 2 评论 -
一文看懂Java集合
背景:由于Java数组存储数据时存在一些缺点,1、数组创建后长度不可变;2、数组中存储的元素类型必须保持一致;当需要存储的数据不满足这两种情况时,就不能使用数组存储,因此出现一种新的存储方式(集合)来解决这两个问题。【注:数组创建的两种方式,】含义:在Java编程语言下,对于数据存储方式的一种统称。它的优势表现在:1、集合可以动态改变容量的大小;2、集合存放的类型可以不止一种(在不使用泛型时,添加的类型是Object)。注意:数组和集合都可以存储引用数据类型和基本数据类型,集合在存储基本数据类型时会自动装箱原创 2022-06-08 20:29:48 · 348 阅读 · 0 评论 -
Linux常用命令【非常管用】
1、tmux【搞科研必备命令】tmux //保持终端一直可以在后台运行,超级好用【搞科研必备命令】tmux ls //查看当前会话> 0: 1 windows (created Tue Jun 21 18:36:52 2022) [162x62] (attached) > 1: 1 windows (created Tue Jun 21 18:40:46 2022) [162x62] (attached)tmux attach -t 0 //接入当前窗口0Ctrl + D原创 2022-06-21 20:48:09 · 182 阅读 · 0 评论 -
MySQL中对于索引的理解
按照物理实现方式,可分为聚簇索引和非聚簇索引,其中非聚簇索引又称为二级索引或者辅助索引。按照底层数据结构角度可以分为树索引(时间复杂度O(log(n)))和Hash索引(时间复杂度O(log(1))).聚簇索引是一种数据存储方式(所有的用户记录都存储在叶子结点),也就是所谓的索引即数据,数据即索引。“聚簇”表示数据行和相邻的键值聚簇在一起。如下图聚簇的优点和缺点由于聚簇索引只能在搜索条件是主键值时才能发挥作用,因为B+树中的数据都是按照主键进行排序的。那如果我们想以别的列作为搜索条件该怎么办呢?肯定不原创 2022-06-23 21:09:03 · 1129 阅读 · 1 评论 -
一文看懂Java多线程和并发
背景单线程只使用一个CPU完成多个任务(调用多个方法),肯定比用多个线程完成的总时间更短,为什么要使用多线程呢?答:1.提高应用程序的响应,增强用户体验;2.提高计算机系统CPU的利用率。进程,线程;并发,并行的概念:方式一:继承Thread类方式二:实现Runnable接口方式三:JDK1.5新增:实现Callable接口结合代码分析三种线程创建的优缺点:3. 线程同步线程同步是为了解决什么问题?在多线程操作中,多个线程可能同时处理同一个资源,特别是对统一资源进行修改的时候,就容易出现线程安原创 2022-06-09 22:08:33 · 452 阅读 · 0 评论 -
MySQL中对于事务的理解
事务:一组逻辑单元,使数据从一种状态变换成另一种状态。所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久保存下来;要么数据库管理系统将放弃所做的所有修改,整个事务回滚(rollback)到最初状态。比如:用户AA给用户BB转账100,这就是一个事务,不可分割。也就是AA会减少100,然后BB会增加100,这个操作要么都执行(commit),要么就都不执行(rollback)。事务是数据库区别于文件原创 2022-06-25 21:30:21 · 1135 阅读 · 0 评论