java面试复试一般问什么,三(1),【绝对干货】

ops.set(user.getNickname(),user);

log.info(“{}”,user.toString());

return true;

}

public User getUser(String name){

ValueOperations ops=redisTemplate.opsForValue();

return (User) ops.get(name);

}

}

这里面的代码也非常的清晰,使用到的RedisTemplate ,类似于JdbcTemplate .

ValueOperations ops=redisTemplate.opsForValue();就是连接了redis数据库。之后就可以从redis 中获取和添加值啦。

Controller层

=========================================================================

创建一个controller 包,创建一个RedisController类代码如下:

@RestController

public class RedisController {

@Autowired

private RedisService redisService;

@RequestMapping(“/getUser”)

public User getUser(){

String name=“quellan”;

return redisService.getUser(name);

}

@RequestMapping(“/setUser”)

public String setUser(){

User user=new User(“aa@qq.com”,“quellan”,“123456”,“朱”,new Date().getTime()+“”);

redisService.setUser(user);

return “添加成功”;

}

}

测试

================================================================

到此为止基础的就已经完全搭建好了,可以测试运行下。启动spring boot项目

在这里插入图片描述

在这里插入图片描述

在redis查一下,发现redis中的key 值并不是我们设置的quellan ,而是一串。这就很难受啦。

在这里插入图片描述

查了一下,原来是使用的RedisTemplate ,spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化.这个具体的放在下一章讲吧,感觉一会讲不完,先跳过哈哈。

上面的测试说明项目中已经可以正常使用redis啦。

Session共享

=======================================================================

按理说到上面就已经差不多,接下来来点骚操作。

分布式怎么共享session。简单来说就是一个项目部署了多个,怎么确保一个用户访问不同的项目(用户实际是无感知的,通过Nginx转发,实现负载均衡)时确保session一致。盗一张图来展示一下吧。

在这里插入图片描述

这张图就是多个Tomcat,那怎么实现session共享呢,就是把session存到redis中,每次去就从redis中取,这样就保证了session共享啦。

那这样是不是每次存session都需要手动存到redis中呢,常理来说当然是的,但是既然是SpringBoot 当然需要不一样啦,只需要增加一个依赖,人家就能帮你自动的加载到redis中。下面来看

增加依赖


org.springframework.session

spring-session-data-redis

配置上面已经配置好了

增加SpringSession 类


在controller 包中加一个SpringSession 类,命名可能不太规范,见谅哈

@RestController

public class SpringSession {

@Value(“${server.port}”)

Integer port;

@RequestMapping(“/setSession”)

public String setSession(HttpSession session){

session.setAttribute(“key”,“quellanAn”);

return String.valueOf(port);

}

@RequestMapping(“/getSession”)

public String getSession(HttpSession session){

return session.getAttribute(“key”)+“:”+port;

}

}

代码很简单,就是session存一个值,get获取。这里可以看到没有任何操作redis数据库的对吧。

测试场景1


先运行项目,查看一下

在这里插入图片描述

在这里插入图片描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

总结

面试建议是,一定要自信,敢于表达,面试的时候我们对知识的掌握有时候很难面面俱到,把自己的思路说出来,而不是直接告诉面试官自己不懂,这也是可以加分的。

以上就是蚂蚁技术四面和HR面试题目,以下最新总结的最全,范围包含最全MySQL、Spring、Redis、JVM等最全面试题和答案,仅用于参考

一份还热乎的蚂蚁金服面经(已拿Offer)面试流程4轮技术面+1轮HR

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

//bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

Java考研复试面试题主要涉及Java语言的基础知识、面向对象编程、数据结构与算法、数据库等方面。以下是一些常见的Java考研复试面试题及其答案: 1. 什么是Java的基本数据类型? Java的基本数据类型包括byte、short、int、long、float、double、char和boolean。 2. 什么是面向对象编程? 面向对象编程是一种编程范式,它将程序中的数据和操作数据的方法组织在一起,形成对象。对象可以通过定义类来创建,类是对象的模板。 3. Java中的访修饰符有哪些?它们的作用是什么? Java中的访修饰符有public、protected、private和默认(即不写修饰符)。它们用于控制类、方法和变量的访权限。 4. 什么是Java中的多态性? 多态性是指同一个方法可以根据调用对象的不同而表现出不同的行为。它通过继承和接口实现,可以提高代码的灵活性和可扩展性。 5. 什么是Java中的异常处理机制? Java中的异常处理机制用于处理程序运行过程中可能出现的异常情况。它通过try-catch-finally语句块来捕获和处理异常,保证程序的稳定性和可靠性。 6. 什么是Java中的线程?如何创建和启动线程? 线程是程序执行的最小单位,它可以独立运行并与其他线程并发执行。在Java中,可以通过继承Thread类或实现Runnable接口来创建线程,并通过调用start()方法来启动线程。 7. 什么是Java中的集合框架?它有哪些常用的接口和类? Java中的集合框架是一组用于存储和操作对象的类和接口。常用的接口有List、Set和Map,常用的类有ArrayList、LinkedList、HashSet和HashMap等。 8. 什么是Java中的数据库连接池?为什么要使用数据库连接池? 数据库连接池是一种管理数据库连接的技术,它可以提前创建一定数量的数据库连接并保存在连接池中,当需要连接数据库时,直接从连接池中获取连接,使用完毕后归还给连接池。使用数据库连接池可以提高数据库访的效率和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值