所有整型包装类对象之间值的比较,全部使用equals方法比较。对于 Integer var = ? 在-128至127范围内的赋值,Integer 对象是在 IntegerCache.cache产
生,会复用已有对象,这个区间内的 Integer 值可以直x接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,,推荐使用 equals 方法进行判断。1
2
3
4
5
6
7
8Integer var1 = 22;
Integer var2 = 22;
var1 == var2 //true
var1.equals(var2) //true
Integer var3 = 222;
Integer var4 = 222;
var3 == var4 //false
var3.equals(var4) //true本地打包成功,启动无报错,登录显示空白页面.发布到服务器正常
本地配置路径不对,服务器用的单独的配置文件
各种情况都已经考虑到了,都已经排查.但是没有考虑到是路径问题.不细心!!!!有的时候可能就是一个很小的问题导致的各种无厘头问题,但是自己往往会忽略掉这些不起眼的问题的存在注意mysql表字段类型为timestamp时(字段定义为not null并且没有默认值的时候)系统会自动加 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP属性
中航分支开发测试完成,大合版出现获取不到用户信息,其他页面正常获取用户信息,知道问题,不知道如何下手查找排查问题,后来发现是云信那边修改了applicationContext-security.xml文件,把url加了白名单
考虑spring以及mvc的拦截器和过滤器的配置是否有改动.多台服务器免密登录,非root账户免密登录另外一台root账户的机器,解决不同用户名之间的问题
在.ssh/目录下新建config文件,指定Host和user,例如:- Host slave01
- HostName 192.168.0.A
- User root
- Host slave02
- HostName 192.168.0.B
- User root
在povosdi账户下直接ssh 192.168.0.A 相当于ssh root@192.168.0.A,如果不加config文件,相当于ssh povosdi@192.168.0.A
- Host slave01
NameNode启动成功,两个DataNode启动不了,Active Nodes数量显示为0,两个原因:
- 两个DataNode的core-site.xml中fs.defaultFS应该为master:9000,而不应该是各自的ip:port(slave01:9000)
- master的防火墙没有开放9000端口,导致DateNode一直连不上NameNode,暴力解决方法,直接关闭防火墙(不建议)
1
2
3
4<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
程序编译打包正常,页面各种系统错误,报错找不到数据库的某些记录.
原因:有人修改数据库记录导致修复数据库相关表之后正常.数据库新建表的时候注意指定字符集和字符排序集,否则会使用数据库的默认值,如果两张表的字符排序集不一样的话写出来的sql可能会有问题。报错:
Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation ‘=’
修改数据库配置文件mysqld.cnf,在[mysqld]下增加1
2character_set_server = utf8mb4
collation_server =utf8mb4_unicode_ci建表经常使用的是以下这种:
1
2create table(
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;后端字段是string,导出格式是csv,数字字段太长会显示科学计数法。解决办法,在后端的字段后边加上制表符”\t”
开发的时候遇到枚举类型的时候,添加新的枚举类最好是在不改变原来枚举类型顺序的前提下新增。
因为你中间插入的话会影响到原来的枚举顺序,如果这些枚举有写到表的话,会造成数据缺失。项目启动报错,有生产消费端,原因是生产消费端代码不一致导致的,重新打包发布,还是报错。
忘记清空队列,清空队列后正常正常生成job,但是不请求贷后接口。
之前的job还在缓存里边,清掉缓存后正常。服务正常,nginx正常,接口请求一直404,起初怀疑nginx配置错误,后来排除,最终发现是代码是老代码,接口不存在。重新拉代码打包发布之后正常。
先检查配置,正常可以服务器或者本地curl一下走队列回调,生产者正常,消费者正常回调,往队列push消息一直push不进去,最终发现是队列配置异常。交换机配置不对。
数据库数据正常,其中有个String转BigDecimal的方法,类型转换catch异常,返回0。string类型转换最好trim一下。
1
2
3
4
5
6
7
8
9
10
11public BigDecimal parseValue(){
try{
if(StringUtils.isBlank(this.value)){
return BigDecimal.ZERO;
}
BigDecimal valueBigDecimal = new BigDecimal(this.value);
return valueBigDecimal;
}catch (Exception e) {
return BigDecimal.ZERO;
}
}考虑到线上数据库,mq等版本差异,语法会有差异
解决jar包版本问题,先查看项目jar包依赖
1
mvn dependency:tree
然后在这个jar包里排掉有问题的jar包,再重新引用一个合适版本的jar包就ok
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<dependency>
<groupId>com.zufangbao</groupId>
<artifactId>coffer</artifactId>
<version>1.0.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/xerces/xercesImpl -->
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
</dependency>
</dependencies>修改表字段名称的时候注意组合索引是否引用这个字段,否则该列会从组合索引中删除掉,引起组合索引失效或者各种各样的问题。
放款的时候正常接受请求,但是citi校验没通过,检查代码逻辑没问题,后来发现是citi连的数据库有问题。排查业务问题的思路,先检查代码逻辑,确认没问题之后检查配置项。