java的装箱、拆箱

从Integer出发,理解java的装箱、拆箱机制。 楼主遇到一个问题

1
2
3
4
5
6
Integer m = 1;
Integer n = 1;
System.out.println(m==n);
Integer p = 1000;
Integer q = 1000;
System.out.println(p==q);

答案是: true false 为什么会出现这种结果呢,就是因为 java 的装箱和拆箱机制,且听楼主慢慢道来。

log4j debug info warn error

简单谈谈 log4j 的 info warn debug error 四个日志级别的使用场景的理解

日志级别 使用场景
debug 可用于junit单元测试
info 可用于controller、manager、dao追踪程序执行流程
warn 输出具有潜在风险的信息,暂时没有使用过
error 可用于异常处理,比如全局异常的处理,使用error级别输出异常信息

浅谈junit(单元测试)

单元测试是被广大猿类使用的测试包,当你在跟团队做 java 开发时,往往面临三种选择:

  • 把整个 project 运行一下测试自己写的功能,可能会出现 project 启动慢,或者别人的代码有坑,导致 project 无法正常 run 的情况
  • 使用 junit ,可以帮你节省大量的时间,首先,运行 junit 不需要运行整个 project 节省时间,其次,junit 可以只测试某段代码,或者某几段代码的功能,因此可以减少其他代码的影响
  • 不测试就提交,呵呵…

post & get

post 和 get 的比较

get post
幂等性 幂等 不幂等
服务器 服务器资源没有被改变 服务器资源被改变
传输数据 传输的数据容易暴露 传输的数据不容易暴露

思来想去发现只能写这么多。。

OWASP Top 10

1. SQL注入

  • 楼主认为,就是数据库名、表名、字段名被恶意获取,并且被恶意替换系统安全性较低的SQL注入语句。
  • 预防措施:
    1
    2
    3
    4
    1. 使用预编译的SQL语句
    比如:使用prepareStatement(XXX=?).setXXX(),这样SQL的语义不会发生变化,攻击者也无法改变SQL结构
    2. 参数化查询
    就是SQL中的变量通过参数传入,而不是以字符串拼接的方式传入,但是不要使用“$name”的形式,要使用“:name”的形式

POSTGRESQL

1. 使用dbeaver连接postgresql

Alt text 在使用dbeaver下载postgresql(以下简称pg)的driver时,楼主遇到一个问题,就是那个驱动无法正常安装,于是楼主去pg的安装目录找了一下,发现了pg的jdbc驱动,就是下图那个东西。

|