Java知识整理

这篇博客详细探讨了Java序列化、Equals与==的区别、前后端分离的日志记录策略、多种持久化技术共存时的事务处理、接口幂等性保证、Spring事务管理、源码阅读体会以及扫码登录的实现原理。此外,还介绍了Git分支管理和实体类排序的方法。
摘要由CSDN通过智能技术生成


一、Java Serializable的作用

1.什么是序列化

序列化:把对象转换为字节序列的过程称为对象的序列化。
反序列化:把字节序列恢复为对象的过程称为对象的反序列化。

2.什么情况需要序列化

当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
当你想用套接字在网络上传送对象的时候;

3.怎么实现序列化

如果我们想把一个类实现序列化,只需要实现实现Serializable接口即可。

4.疑问

我为什么不序列化也可以把对象写入文件中?
如果一个类实现了Serializable接口,在序列化的时候静态属性是不随序列化修改的,如果有个静态属性,一开始是static int = 100,写入到一个文件属性是100,此后修改了代码改为200,再反序列化,从文件读取这个对象,此时的序列化是200.
实现序列化的时候一定要给serialVersionUID赋值,如果不赋值,在反序列化之前给这个类添加了新的属性,就会报InvalidClassException异常

二、Equals和==的区别

1、== 操作符既可以用于比较基本的数据类型,也可以用于比较对象,而equals只可以用于对象之间的比较
2、在比较String类型的对象时,== 操作符的原理只有两个变量是同一对象的引用时才会返回true,而equals方法只要两个变量的内容相同则返回true
3、其他类型的对象进行比较时,equals方法默认的原理是判断两者的内存地址是否相同,所以默认情况下与== 操作符返回的结果相同,但是这里应该发现差别,也就是equals方法可以被重写—用户可以定制自己的equals方法,而== 操作符不能被重写.

三、前后端分离开发,日志应该如何进行记录,在出现问题的时候,方便定位问题?

日志有哪些级别:等级由低到高:DEBUG < INFO < WARN < ERROR < FATAL
常用的日志框架 log4j可以配置生成日志文件到指定文件。同时可以配置日志按天为周期,或者按照日志文件大小拆分为单个文件。
前后端分离的项目需要记录好各种必要参数,尽量简单明了如编号,来源,当前ip,接口名,参数,回参等出现问题时能判断当前问题大致范围。

四、数据库访问的时候,在一个项目中是否可以同时使用Mybatis,JPA,JDBC等多种持久化技术?如可以,事务如何处理?

jpa和mybatis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值