问题1 Slf4j和Log4j的区别
日常的开发中,写日志的功能,通常会使用到Log4j,但是有时候用的就是Slf4j,这两者到底有什么区别和联系?
Log4j全称为Log for java,Slf4j全称是simple log facade for java。两者最本质的区别可以简单描述为,
(1) Log4j可以看成是一个完整的日志库,可以通过Log4j的配置文件灵活配置日志的记录格式、记录级别、输出格式等,而不需要修改已有的日志记录代码。
(2) Slf4j则是日志库的一个统一规范接口。
使用Slf4j接口的好处,
1. 解耦
使用接口最大的作用就是解耦,当我们使用Log4j这个日志库处理日志信息时,就与其特定的类库发生了耦合,而日志库还有java.util.logging、logback等等,想象一下,若你的项目使用的是Log4j,当哪天你的项目需要引入别人编写的一个组件,而这个组件却是使用logback处理日志的,那我们就不得不导入两个实现同样功能的jar包并且维护两套日志配置了。
这时候就体现出Slf4j统一规范接口的价值了,因为Slf4j只是一个接口,我们只是通过调用slf4j接口的日志方法统一打印日志,可以忽略日志的具体实现方法,这样,即使我们的系统换了一个日志源,不需要我们去更改代码。这样我们就达到了降低日志和项目之间的耦合度的目的。
2. 占位符
Slf4j打印日志的时候可以使用占位符" {} ",而Log4j这些传统的日志系统里面并没有占位符的概念,只能使用拼接字符串的方式,甚至往往需要创建没有用的String对象。
准确地说,Slf4j并不是一种具体的日志系统,而是一个用户日志系统的facade,允许用户在部署最终应用时方便的变更其日志系统。在系统开发中,统一按照Slf4j的API进行开发,在部署时,选择不同的日志系统包,即可自动转换到不同的日志系统上。例如选择JDK自带的日志系统,则只需要将slf4j-api-1.5.10.jar和slf4j-jdk14-1.5.10.jar放置到classpath中即可,如果中途无法忍受JDK自带的日志系统了,想换成Log4j的日志系统,仅需要用slf4j-log4j12-1.5.10.jar替换slf4j-jdk14-1.5.10.jar即可,当然也需要log4j的jar及配置文件。
问题2 PDF的表格转成Excel
PDF文档中的表格,有时候我们需要能转成Excel格式的,可以借助一些第三方的工具来实现,例如金山PDF,菜单栏选择"PDF转Office",继续选择"转为Excel",选中要转的PDF文件,可以做些设置,有些格式是可以选择将所有表格内容转换成一个工作表,有些格式就只能将每页转成一个工作表,点击"开始转换",就可以生成一个新的Excel,内容就来自于PDF,操作非常简洁,

问题3 MySQL/GreatDB客户端连接报错
通过客户端dbeaver连接MySQL/GreatDB,提示了这个错误,
Public Key Retrieval is not allowed(不允许公钥检索)下图所示,

解决方案是,dbeaver客户端中打开"连接设置 - 驱动属性",选择其中的
allowPublicKeyRetrieval=false,这个公钥检索默认是关闭的,需要将他开启,改为allowPublicKeyRetrieval=true即可。
问题4 比对两个Excel的表格内容
表格1,

表格2,

比对这两个表格的区别,首先复制表格1,表格2中右键,点击"选择性粘贴","运算"部分选择"减",点击"确定",

得到的就是表格1和表格2的差集,值是0的就是相同的记录,否则就是不同的,

问题5 大驼峰命名法和小驼峰命名法
骆峰式命名法(Camel-Case)是编程时的一套命名规则,就是当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始,第二个单词的首字母大写或每一个单词的首字母都采用大写字母,他又可以细分为小驼峰和大驼峰两种,

(1) 小驼峰法
变量一般用小驼峰法标识,即除了第一个单词之外,其他单词首字母大写,例如int studentCount=0,变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。
(2) 大驼峰法
相比小驼峰法,大驼峰法把第一个单词的首字母也大写了,常用于类名,函数名,属性,命名空间,例如public class StudentInfomation;。
P.S. 在JAVA中:类名的标识符一般用大驼峰式书写格式,方法和变量的标识符则多用小驼峰式书写格式。
问题1 cp的-i参数
问题2 PPT插入Visio
问题3 Word中插了分节符的空白页如何删除?
问题4 Word限制只读和编辑
问题5 Word增加水印
问题1 Word插入分节符
问题2 字体仿宋gb2312与仿宋区别是什么?
问题3 批量删除空格空行
问题4 "包括但不限于"的含义
问题5 技术标准的"标准"
问题1 Word删除页眉横线
问题2 Word中文和超链接混合一行时,出现格式乱的问题解决
问题3 和平精英中的人物视角不能左右转向
问题4 Word中竖向删除内容
问题5 内容打印到一页
问题1 Excel中工作簿和工作表的区别
问题2 Word的表格增加底纹
问题3 Word自定义编号、
问题4 设置Word自动保存时间
问题5 Word拆分表格
问题3 修改远程桌面的登录用户密码
问题4 visio常用快捷键
问题5 visio使用小技巧
《最近碰到的问题》
问题1 Excel根据单元格内容进行模糊统计
问题2 腾讯会议的演讲者视图
问题3 Excel设置单元格的统一行高
问题4 Windows 10开启休眠
问题5 在线视频会议软件改个人名的形式
《最近碰到的问题》
问题1 配置maven时Local Repository不让改动
问题2 maven更新jar包失败,快速删除.lastUpdated文件
问题3 创建maven maven-archetype-quickstart项目报错
问题4 SQL Server动态性能视图在线文档
问题5 Oracle动态性能视图
《最近碰到的问题》
问题1 Excel递增数列
问题2 Excel同时冻结行和列
问题3 Word文档页脚怎么取消与上一节相同?
问题4 Word目录行间距不同怎么设置?
问题5 统计excle某列值数量
《最近碰到的问题》
问题1 显示屏的纵向扩展
问题2 Excel中插入单选框
问题3 PPT调成16:9
问题4 PPT增加编号
问题5 PPT的编号位置
《最近碰到的问题》
问题1 SVG文件
问题2 许可协议
问题3 x86和x64的区别
问题4 党支部选举报告中各支委的顺序
问题5 confluence脑图插件
《最近碰到的问题》
问题1 SpringBoot提示错误
问题2 MyBatis提示错误
问题3 我的文档标题显示[兼容模式]
问题4 confluence插入静态网站
问题5 MobaXterm退出全屏
《最近碰到的问题》
问题1 逐行读字符
问题2 BufferedWriter和FileWriter
问题3 log4j和控制台乱码
问题4 String、InputStream和Reader之间的转换
问题5 Java写文件
《最近碰到的问题》
问题1 lombok引入了但不可用
问题2 Eclipse打开yaml文件
问题3 maven工程的ArtifactID和GroupID
问题4 Java通过连接SQL Server提示错误
问题5 Java删除空格
问题2 Notepad改界面的背景色
问题3 Switch电量为0,充电不能开机?
问题4 SQL Server生成随机数
问题5 Oracle正则
问题1 kb和KB
问题2 Java List元素显示的格式
问题3 wget下载https提示认证的错误
问题4 云主机rpm安装Oracle 19c提示IP不识别的错误
问题5 云主机安装Oracle 19c
问题1 顿号、分号、逗号的区别
问题2 多层书名号
问题3 Word编号文档回车换行时上下两行对不齐
问题4 excel数据去重
问题5 登录Docker MySQL
问题1 /usr是不是系统路径?
问题2 SQL Server删除索引
问题3 解决导出的EXP-00091: Exporting questionable statistics.
问题4 删除Word中出现的大量莫名空白
问题5 Word设置只读打开
问题1 Excel中单元格内容的条件判断
问题2 Java中InputStream和BufferedReader的转换
问题3 excel设置只读
问题4 log4j写入日志的中文乱码
问题5 Java读取文件的中文乱码
问题1 Word背景色为绿色,如何改为无色?
问题2 Word换行后空出一段
问题3 Word表格的文字居中
问题4 禁止编辑crontab
问题5 MySQL的全局变量生效
问题1 Eclipse格式化代码的快捷键无效
问题2 Win10的虚拟桌面
问题3 DBeaver中表的数据不可编辑
问题4 PLSQL Developer按钮恢复
问题5 Chrome性能统计
问题1 MySQL报错MySQL“ERROR 1046(3D000):未选择数据库”更新查询
问题2 mysqld启动数据库
问题3 Microsoft Office 2016中的回车符怎么删除?
问题4 Visio的形状窗口如何打开?
问题5 Microsoft Office 2016的文档结构图如何打开?
问题1 删除MySQL空用户
问题2 云文档多人编辑筛选乱的解决
问题3 MySQL数据库宕机的一种可能
问题4 配置磁盘自动挂载
问题5 MySQL异常:ERROR 1045 (28000): Unknown error 1045
问题1 VMWare异常中断,不能启动
问题2 Word文字加框
问题3 Excel可选项加默认值
问题4 如何关闭VMWare中Linux屏幕保护
问题5 Oracle中十进制、十六进制等转换
问题1 jxl导出excel异常
问题2 MySQL登录缓慢
问题3 脚本中kill进程的逻辑
问题4 word目录提示“错误!未定义书签”
问题5 Oracle中invalid的package调整
问题1 DBeaver执行窗口的显示问题
问题2 MySQL的text字段不够用
问题3 MySQL中"The table 'xxxxx' is full"错误
问题4 SpringBoot中的@Controller和@RestController
问题5 MySQL检索全局变量和会话变量
问题1 switch提示错误
问题2 MySQL中的日期操作
问题3 dba_synonyms的table_owner
问题4 Linux定时任务
问题5 SpringBoot提示包错误
问题1 Linux密码策略
问题2 sudo授权
问题3 springboot运行时指定配置文件
问题4 程序引用application.yml参数值
问题5 jxl操作文件兼容性
问题1 Shell中的判断
问题2 一个正则需求
问题3 xml文件过滤标签
问题4 JSON解析
问题5 JSON字符串和JSON对象
问题1 在程序中和MySQL做交互的时候,提示这个错误,Column count doesn't match value count at row 1
问题2 从MySQL集群环境用mysqldump导出导入数据的时候,提示这个错误,@@GLOBAL.GTID_PURGED can only be set when
@@GLOBAL.GTID_EXECUTED is empty
问题3 MySQL导出的时候,一般用什么参数?
问题1 按照空格分割字符串的需求
问题2 MyBatis错误,Invalid bound statement (not found)
问题3 JDBC错误,java.sql.SQLException: ORA-03115
问题4 JDBC连接串中使用SID和SERVICE NAME的不同
问题5 SQL Server的CTAS
问题1 PLSQL Developer中文显示问题
问题2 Windows 10安装PLSQL Developer
问题3 PLSQL Developer登录报错ORA-12504
问题4 Windows 10的PLSQL Developer字体显示很小
问题5 包含特殊字符的Oracle用户名创建
问题6 执行10053未生成trace
如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,

近期更新的文章:
近期的热文:
文章分类和索引:
原文作者:bisal的个人杂货铺;如有侵权,请联系管理员删除。