随笔--oo--
在开发中遇到的一些坑或者学习点,记录下来方便日后查看
极客叔
千里之行始于俺脚下
展开
-
sonarQube/sonarLint扫描代码发现问题用注解消除提示
使用idea插件sonarLint扫描出来的,如下图,sonarLint和sonarQube是一个东西,所以通用。在日常的开发中,因为需要,要用sonarQube质量检测并优化代码,但是涉及到一些以前的陈旧代码,原创 2024-04-19 09:52:13 · 174 阅读 · 0 评论 -
mysql和oracle的不同
1、大小的区别mysql是一个轻量级数据库,开源免费,无提供服务oracle是一个重量级数据库,使用免费,服务收费(数据恢复、数据迁移)2、事务的提交mysql默认一条sql语句是一个事务可以关闭自动提交,手动提交oracle没有自动提交需要手动提交3、事务的隔离级别mysql读已提交,当前事务进行操作时其他事务等待之后进行操作(排他锁)oracle读未提交,当前事务进行操作时其他事务可以进行读取操作(共享锁)4、存储方式mysql数据以库形式进行存储,连接指定库读取指定库中数据ora原创 2020-11-11 15:08:06 · 101 阅读 · 0 评论 -
release和snapshots
文章目录前言一、Snapshot和Release版本的区别?二、什么时候用Snapshot版本?三、稳定版使用Snapshot版本行不行?前言repository标签里面的release和snapshots一、Snapshot和Release版本的区别?Snapshot版本代表不稳定、尚处于开发中的版本,快照版本。Release版本则代表稳定的版本,发行版本。二、什么时候用Snapshot版本?依赖库中的jar正处于开发的阶段,会被经常被更新,这种情况下,如果使用Release,会频繁增加原创 2021-08-23 10:16:12 · 867 阅读 · 0 评论 -
HTTP报文使用说明
最近在项目上因为总接触到http报文的一些知识点,所以搜索资料总结如下:HTTP有两种报文:请求报文和响应报文,具体介绍如下一、HTTP请求报文先上个图,细细分析HTTP请求报文主要包括请求行、请求头部以及请求的数据(实体)三部分请求行(HTTP请求报文的第一行)请求行由方法字段、URL字段和HTTP协议版本字段。其中,方法字段严格区分大小写,当前HTTP协议中的方法都是大写,方法字段如下介绍如下:方法字段①GET:请求获取Request-URI(URI:通用资源标识符,URL是其子集,U原创 2021-11-26 20:14:09 · 360 阅读 · 0 评论 -
Docker以及dockerfile
最近在公司用docker部署服务器,所以专门补了一下docker的知识,下面是详细总结一、Docker以及dockerfile的使用说明1.Docker介绍1.1什么是DockerDocker是基于Go语言实现的云开源项目。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,即通过对应用组件的封装(Packageing)、分发(Distribution)、部署(Depoloment)、运行(Runtime)等生命周期的管理,达到应用组件级别的“一.原创 2021-10-25 10:09:28 · 1915 阅读 · 0 评论 -
JDBC的statement和preparedStatement
statementjava.sql.Statement 接口,是专门用来执行sql语句的,该接口还有俩个子接口:java.sql.PreparedStatementjava.sql.CallableStatement它们的关系如下:CallableStatement 接口继承了 PreparedStatement 接口PreparedStatement 接口又继承了 Statement 接口PreparedStatementPreparedStatement 接口,简称PS,它除原创 2020-10-22 20:24:18 · 136 阅读 · 0 评论 -
BeanUtils.copyProperties()字段类型不一致
去查看BeanUtils.copyProperties的源码发现,spring在利用反射复制对象时,是以javaBean的规范来使用get/set方法进行设置值的。同时set方法的参与类型,在classLoader中,也会被计为函数名的一部分,所以类型必须一致,否则spring就不会对该属性进行复制相应的值。今天在写接口实体类转换的时候,使用了**BeanUtils.copyProperties()**方法,但是在后面校验的时候却为空,所以去日志发现两个类里面的字段名相同,属性不同导致。原创 2023-08-10 11:14:18 · 943 阅读 · 0 评论 -
@Qualifier怎么使用?详解
@Qualifier的主要作用就是用来限制注入的bean,或者你要使用使用哪个,在bean上和需要注入的地方都用@Qualifier这个注解就可以了;原创 2022-01-05 16:53:28 · 1390 阅读 · 0 评论 -
e.printStackTrace()会不会抛出异常,终止程序
e.printStackTrace()不会抛异常原创 2023-08-15 18:11:07 · 1130 阅读 · 0 评论 -
垃圾回收机制
垃圾回收: (Garbage Collection,GC),就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。垃圾判断算法:引用计数法给每个对象添加一个计数器,当有地方引用该对象时计数器就会加1,当引用失效时计数器减1。用对象计数器是否为0来判断对象是否可被回收。缺点:无法解决循环引用的问题。可达性分析算法:通过GC ROOT的对象作为搜索起始点,通过引用向下搜索,所走过的路径称为引用链。通过对象是否有到达引用链的路径来判原创 2020-11-16 19:21:53 · 89 阅读 · 0 评论 -
PrintWriter和BufferedWriter的区别
BufferedWriter:将文本写入字符输出流,缓冲各个字符从而提供单个字符,数组和字符串的高效写入。通过write()方法可以将获取到的字符输出,然后通过newLine()进行换行操作。BufferedWriter中的字符流必须通过调用flush方法才能将其刷出去。并且BufferedWriter只能对字符流进行操作。如果要对字节流操作,则使用BufferedInputStream。PrintWriter:向文本输出流打印对象的格式化表示形式(Prints formatted representat原创 2020-10-31 10:28:40 · 527 阅读 · 0 评论 -
restful风格API
一、什么是API?API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 ——百度百科简单来说就是:别人写好代码,编译号程序,可以让其他人调用使用,就称作API。你使用了别人代码(或者程序)中的某个函数、类、对象,就叫做使用了某个API。二、restful是什么?restful是一种软件架构风格、设计风格,而不是标准,只是提供了原创 2020-11-24 19:24:26 · 383 阅读 · 0 评论 -
Maven私服配置
下载安装nexus并启动在maven的setting.xml文件里面继续进行私服的相关配置下面是上传jar到私服的配置在idea进行deploy操作,并在私服上可以查找到再配置从私服上下载jar包的相关配置从私服下载成功...原创 2021-09-02 12:38:42 · 236 阅读 · 0 评论 -
发布本地项目到git远程分支以及更新git远程代码
git问题总结1.将本地项目发布到远程分支git init #初始化git add . #提交全部文件git commit -m '代码提交' #执行commit提交git remote add origin https://XXXX(远程的url) #将远程项目和本地项目绑定到一起git branch dev #创建本地分支git checkout dev #切换到本地分支git pull --rebase origin dev #拉取远程分支和本地合并git p原创 2021-09-29 15:25:17 · 247 阅读 · 0 评论 -
阿里云的这群疯子
致敬前辈们文章转自 浅黑科技点击阅读《阿里云的这群疯子》转载 2021-09-08 15:01:38 · 489 阅读 · 0 评论 -
开发中对敏感字段进行脱敏方法
开发中对敏感字段进行脱敏方法(注解实现数据脱敏操作)原创 2022-07-12 17:17:06 · 1401 阅读 · 0 评论 -
String uuid = UUID.randomUUID().toString()详解
我想要一个有效的实用程序来生成唯一的字节序列。 UUID是一个很好的候选者。UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法。UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的 形式。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第.原创 2021-12-27 09:58:55 · 2112 阅读 · 0 评论 -
AtomicInteger类用法实用详解
**1、**java.util.concurrent.atomic 的包里有AtomicBoolean, AtomicInteger,AtomicLong,AtomicLongArray,AtomicReference等原子类的类,主要用于在高并发环境下的高效程序处理,来帮助我们简化同步处理.在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。**2、**AtomicInteg原创 2022-03-01 18:01:24 · 2655 阅读 · 1 评论 -
mysql NOW()和SYSDATE()的小差别
一分钟了解NOW()和SYSDATE()的区别原创 2022-09-06 15:20:54 · 253 阅读 · 1 评论 -
java数据类型和变量
day04java 中的数据类型是我们写代码的时候经常会用到的,接下来说一下数据类型的具体分类和作用基本数据类型布尔类型boolean,表示真假浮点型 float 32位,单精度,声明变量时,得加后缀f; double 64位,双精度。浮点型默认位为double类型字符型 char 16位,但因为它的最高位不是符号,所以比short大,但是short->char也需要强制转换才能成功。整型 byte 一个字节,8位short 两个字节,16位int 三个字节,32位long 四个原创 2020-08-04 09:31:02 · 84 阅读 · 0 评论 -
java中/的详解
先来看代码double d1 = 5/2;double d2 = 5/2.0;其中d1的结果等于2,d2的结果等于2.5主要的原因就是右边两个数字在进行运算后,第一个为int类型,我们都知道int类型是整数,所以只能保存整数部分,再进行自动类型转换。而第二个右边的运算结果为double类型浮点数,所以结果就为整数和小数的结合。总结我们在进行操作运算符进行计算时,/ 就是我们数学中的除法,可以先计算出正确的结果,至于要不要取证就看两边的数据类型。...原创 2020-09-01 17:24:33 · 6445 阅读 · 0 评论 -
高内聚低耦合思想
高内聚、低耦合是面向对象的一个原则【高内聚、低耦合】内聚:每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码。耦合:模块与模块之间接口的复杂程度,模块之间联系越复杂耦合度越高,牵一发而动全身。目的:使得模块的“可重用性”、“移植性”大大增强通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低模块粒度:『函数』高内聚:尽可能类的每个成员方法只完成一件事(最大限度的聚合)低耦合:减少类内部,一个成员方法调用另一个成员方法『类』高内聚低耦合:减少类内部,对其他类的调用『功能块』原创 2020-11-11 21:44:51 · 384 阅读 · 0 评论 -
子类重写父类方法后调用时需要记住什么
子类继承父类,重写了父类方法,那么调用时就会调用子类重写后的方法例子public class TestParent { protected static String name = "parent"; TestParent(){ say(); } public void say(){ System.out.println("Hello"+name); } }public class TestChild extends T原创 2020-09-02 21:34:54 · 1049 阅读 · 0 评论 -
Map中的entrySet()详解
由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系。Map中采用Entry内部类来表示一个映射项,映射包括Key和ValueMap.Entry里面包含getKey()和getValue()Set<Entry<T,V>>entrySet()还方法返回值就是这个map中各个键值对映射关系的集合可使用它对map进行遍历...原创 2020-08-25 20:08:19 · 2547 阅读 · 0 评论 -
java子父类构造方法执行顺序
子类的构造方法总是先调用父类的构造方法子类的构造方法没有明显地指明使用父类的哪个构造方法(没有super关键词),子类默认调用父类不带参数的构造方法。如果父类没有不带参数的构造方法(父类只定义了带参数的构造方法),并且子类构造方法中没有明显地指明使用父类的哪个构造方法(没有super关键词),则Java编译器报错。子类的构造方法明确的指明使用父类的哪个构造方法(使用super关键词),子类调用父类super指定的构造方法...原创 2020-09-02 19:05:01 · 512 阅读 · 0 评论 -
谈谈package和import的由来及作用
day02List item原创 2020-08-03 01:16:55 · 485 阅读 · 0 评论 -
== 和 equals 的区别?
==如果比较的对象是基本数据类型,则比较的是数值是否一致;如果比较的是引用数据类型,则比较的是对象的地址值是否一致。equals():equals()方法不能用于比较基本数据类型的对象,如果对象和自身进行比较,则equals()方法与是一样的。对于String类 Date类 File类等 可重写equals() 方法用于比较对象的属性内容是否一致。举例如果a,b 是基本类型,那么 运算符比较的是什么呢? public class Demo { private static int原创 2020-08-26 22:22:52 · 83 阅读 · 0 评论 -
java中在创建对象时继承的执行顺序
创建和初始化对象的过程:Student s = new Student();以这句代码为例进行说明:对Student类进行类加载,同时初始化类中静态的属性赋默认值,给静态方法分配内存空间执行类中的静态代码块堆区中分配对象的内存空间,同时初始化对象中的非静态的属性赋默认值调用Student的父类构造器对Student中的属性进行显示赋值,例如 public int age = 20;执行匿名代码块执行构造器代码=号赋值操作,把对象的内存地址赋给变量s在继承中代码的执行顺序父类静态原创 2020-09-03 20:13:37 · 272 阅读 · 1 评论