java基础
Muroidea
但是我要前行
展开
-
postgresql jdbc getGeneratedKeys 方法返回主键
最近在做java agent 将xxl-job 迁移到postgresql时发现在 pg 的jdbc 驱动中 getGeneratedKeys 的方法和mysql中返回主键的实现有所区别pg的主键是bigserial mysql主键autoincrment例如: pg与 mybatis中 如果没有keyColumn="id" 这一行, 是不能返回id的. 但是mysql是可以的查看mybatis源码得知org.apache.ibatis.executor.statement.PreparedStat原创 2022-05-06 11:11:44 · 1361 阅读 · 1 评论 -
Rabbitmq 的两种消费模式
拉模式入口com.rabbitmq.client.Channel#basicGet推模式入口com.rabbitmq.client.Consumer#handleDelivery参考https://www.caosh.me/be-tech/rabbitmq-pull-multiple/https://emacsist.github.io/2018/02/08/rabb...原创 2019-12-29 09:57:59 · 934 阅读 · 0 评论 -
使用java把 byte 或 byte 数组转换成无符号数字
byte/ byte 数组转换成16进制字符串 (需要Netty)ByteBufUtil.hexDump(new byte[]{0x11, 0x11, 0x11, 0x11})ByteBufUtil.hexDump(new byte[]{(byte)0xff})byte 转换成无符号Long / Int表示byte i = (byte) 0xff;Long i1 = Byte.toU...原创 2019-12-02 10:08:02 · 5670 阅读 · 2 评论 -
java命令执行打好的jar包,maven的jar包形式
java命令执行jar包的方式 idea,或eclipse最终都是用命令来运行的jar包,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口。具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件。 比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:tes原创 2016-11-29 19:18:17 · 1280 阅读 · 0 评论 -
java 使用文件锁控制并发写入的问题
在多线程写文件的时候,未保证写入的数据不会乱掉,有时需要控制多线程写入的顺序@Override public void write(List<? extends MyFileWriteDTO> items) { /** * 文件写入以追加的方式写入数据,注意线程安全问题 */ logger.info("curr...原创 2018-02-07 22:19:36 · 2776 阅读 · 0 评论 -
java 日期工具类
java日期工具类,包含季度,月份等操作public class DateUtils { /** * 得到某年某周的第一天 * * @param year * @param week * @return */ public static Date getFirstDayOfWeek(int year, int week) {原创 2018-02-18 17:52:44 · 254 阅读 · 0 评论 -
使用 java 构建一个 cli 工具 (1) jcommander
jcommander 是一个命令行参数解析的库. example1. pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema...原创 2018-09-08 16:28:37 · 3101 阅读 · 1 评论 -
使用 java 构建一个 cli 工具 (2) airline
java 编写可执cli 工具像 presto 这样的框架提供了 presto-cli 这样的工具,使用java编写的.那么它是如何构建的呢. 1. pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xml...原创 2018-09-08 18:35:40 · 1428 阅读 · 0 评论 -
堆外内存泄漏分析
https://juejin.im/post/5c8de9f5e51d453651442c6a转载 2019-03-17 16:48:56 · 774 阅读 · 0 评论 -
druid 密码加密配置
使用druid 的spring boot starter 配置application.ymlspring: datasource: druid: url: jdbc:postgresql://127.0.0.1:5432/test username: test password: l7LrIhkDLct9BTd6eVVS3tsAwDYkwX4...原创 2019-07-17 11:33:09 · 1346 阅读 · 0 评论 -
通过反射获取类和父类的属性和属性值
通过反射我们可以获取到一个类的属性和方法,但获取父类的private的属性却不可以直接获取,需要递归调用superclass来获取属性SuperClass.javapublic class SuperClass { private String name; private String age; private Date birthday; public Strin原创 2016-08-20 14:01:30 · 13636 阅读 · 1 评论 -
java读取文件内容转成字符串
字节读取方式一InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("storage.txt"); byte[] buff=new byte[inputStream.available()]; String string = null ; int l原创 2016-05-27 08:49:20 · 1247 阅读 · 0 评论 -
enum枚举类型的使用
当返回的结果有很多的时候,这时候根据返回的不同的信息,要有不同的处理public enum Result { SUCCESS("成功","1"),FAILED("失败","2"),WARNING("警告","3"),ERROR("错误","4"); private String text; private String index; Result(String text原创 2016-04-11 21:54:02 · 804 阅读 · 0 评论 -
java一个简单的内存泄漏的例子
想要内存泄漏 内存还存在着对于程序来说没有用的对象 ! 这些对象是可达的(存在引用),即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对象。如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存例: public class Person原创 2015-10-16 07:29:40 · 897 阅读 · 0 评论 -
数据库事务的隔离级别
数据库事务的隔离级(从低到高)1. Read UnCommitted (读未提交) 2. Read Committed (读已提交) 解决脏读3. Repeatable Read (可重复读) 解决重复读4. Serializable (串行化) 解决幻读四种事务的作用原创 2016-01-20 16:28:25 · 315 阅读 · 0 评论 -
构造格式数据的时候的问题,和总结
需要构造成类似这样的串1,2,3,4,5,6但只有123456这样的数据我们知道要遍历然后依次加一个",",这种会生成 ,1,2,3,4,5,6或 1,2,3,4,5,6,解决遍历的时候如果第一次 值添加一个数str+=1;str+=,s[i];最后加if(last){str+=s[i];}原创 2016-02-01 16:37:12 · 276 阅读 · 0 评论 -
spring aop代理不了父类,会忽略从父类继承的方法。
简单的来说spring aop有两种方式,全接口方式使用的是jdk的动态代理,针对接口;而非接口方式使用的是cglib,这种方式类似jdk动态代理,在运行期间生成的代理对象是针对目标类扩展的子类。下面使用jdk的动态代理做的一个例子,这个能代理到父类,我觉的如果你的项目中有baseDaoimpl的构造方法有 ParameterizedType pt = (Parameteriz原创 2016-02-05 10:22:57 · 7963 阅读 · 0 评论