java
dzbxq89
这个作者很懒,什么都没留下…
展开
-
Java-调用String的replaceAll方法替换结果错误
场景: 整理sql,历史遗留的sql中,表的别名都是用al1之类的格式写的,整理column字段时需要转化为表名字段模式。这里将al1 表标识为 temp ,al18标识为table 方便理解。简化sql如下 select al18.column from temp al1,table al18业务实际经历了两个阶段,第一个阶段直接进行了替换,此阶段碰到的问题是,因为关联的表过多,replace的后出现了将al18 替换成了 al1 +“8”的情况(al18.column -&...原创 2021-12-15 10:31:38 · 931 阅读 · 0 评论 -
记一次后台批量值转化
·业务场景 前端动态报表头,给出的方案的动态组成报表头,说是不能在前端做值转化。 数据从数据库中查出,列中字段较多,需要转化的字段也较多,不想太多的改造原代码逻辑。 想到JSON的拼接实际是调用了类中的get方法获取值,决定使用父子类的方式,在子类中重写get方法,想要获取原值时使用super调用父类中方法即可。使用中面临了PageInfo分页组件中声明类型为父类,set子类对象类型检查异常等问题。伪代码PageInfo<fatherDto> pageIn...原创 2021-05-19 20:56:01 · 86 阅读 · 0 评论 -
使用lombok@Data标签遇到的问题
关键词:hash hashCode toString equals data标签包含了get,set,hash等一系列代码,如果是单纯的bean并不会碰到问题,当bean是继承来的时候,equals等方法就会出现一个问题,在计算hash值,调用equals时不会调用父类属性进行对比,当子类属性一致,父类属性变更时,计算值无变更。 此问题同样会导致hashSet,hashMap等使用hash值进行对比的结果,会导致已修改的数据判断为属性一致导致去重。类上加上@Equals...原创 2021-05-15 11:04:14 · 265 阅读 · 0 评论 -
Java流的重复读取
Java中普遍应用流来与外部交换数据。比较典型的操作是操作文件与HttpServletRequest/Response流。 而Java中流处理中有个小型知识点在于流是不能重复读取的。伪代码如下 File file = new File( fileName); FileInputStream fi = new FileInputStream(file); HSSFWorkbook book =...原创 2021-04-03 11:36:59 · 2093 阅读 · 0 评论 -
Java泛型
java的泛型机制是种伪概念,因为编译后的class文件中并不含有泛型,泛型创立的机制是为了将错误预先进行检查,将错误暴漏在写代码的过程中而不在编译运行期间报错。比较典型的一种用法是将返回值声明为T,同时可以通过 extends 与 super 在创建T类型时声明类型的上下限,与之相等的是不声明上下限时,将规定值声明为Object,并在调用处,将类型通过(类型)形式强转类型。声明上下限就是一个返回父类的问题,类似与工厂类返回不同子类的方法。...原创 2021-03-21 20:42:46 · 55 阅读 · 0 评论 -
java方法参数传递
某天听过了向天老师的课程之后抱着一点疑问,自己写了一点代码验证下。很小的一个知识点,却牵扯了java方法的传值方法,克隆,序列化一系列内容。我们为调用一个方法,在方法内改变入参的值。此时分为两种情况。情况1:传入值为基本类型,改变的值并未返回;情况2:传入值为一个对象bean时,修改其中属性内容。属性发生改变。结论:java入参时为值传递,为何bean的属性发生了变化了。个人理解为原创 2017-07-22 16:29:20 · 230 阅读 · 0 评论 -
java对象赋值
java对象bean的赋值方法有很多种,这里说4种。1.最基本的等号赋值。优点是节省内存,因为这种方法实际是将一个内存地址给了两个容器共用。缺点嘛,因为容器中地址共用,修改一个时,另一个也会同时发生改变2.在声明bean时实现克隆接口。克隆方法会产生一个新的内存地址装一份重复的内容在其中;3.使用json的序列化与反序列化,此种方法也会产生一个全新的对象引用;4.使用BeanUti...原创 2017-07-22 16:45:42 · 677 阅读 · 0 评论 -
Java学习笔记(一)
Java学习笔记(一) 整理的学习内容,想要将学习的东西整理成体系。而不是继续使用知识点记录知识。所学有限,水平有限,如有错误希望给与指正。 Java是一种编译型语言。编写Java代码需要根据系统下载JDK(JDK是java开发工具包)。使用JDK中的javac将.java文件编译为.class文件即字节码文件。 JDK中包含JRE目录。程序运行时使用JRE中的ja原创 2016-12-04 10:14:15 · 161 阅读 · 0 评论 -
后端导出PDF
项目环境:前端:VUE+html2canvas后端:SpringBoot+ITEXT之前导出pdf的功能都是在前端导出,或者在后端另外画一套模版,项目组不允许前端导出,担心兼容性问题,并且要求所见及所得,页面本身比较复杂,导致后端使用模版的话工作量会比较大。经同事推荐使用了html2canvas,这个前台插件可以将前台页面截图,转为base64编码,将值传递到后端。后端代码为:...原创 2019-08-20 20:32:37 · 1192 阅读 · 0 评论