Java基础知识系列
LQ-刘强
从事......
展开
-
Excel读取工具类PoiExcelUtil
poi读取excel万能工具类原创 2023-02-01 10:24:40 · 459 阅读 · 0 评论 -
字典表数据转换(树结构与扁平化结构)
什么是字典表与字典表设计:字典表设计与什么是字典表https://blog.csdn.net/qq_33429583/article/details/81530089(一)字典表数据转换树结构数据1.字典表模拟数据如下:import lombok.Data;import java.util.List;@Datapublic class Location { protected Integer id; private String locationName; private原创 2022-05-06 09:10:54 · 618 阅读 · 0 评论 -
Excel解析不规范数据报错解决方案
1.如图中excel(不规范excel数据)2.使用ExcelParseUtil工具类解析Excel且校验并修正数据,最终读取数据File file = new File("D:\\xx.xls");ExcelParseUtil<QualifiedRateResult> excelParseUtil = new ExcelParseUtil<>();List<QualifiedRateResult> qualifiedRateResults = exce原创 2022-04-15 17:41:29 · 1642 阅读 · 0 评论 -
Thread线程系列之线程池介绍API的简介
线程池是线程中的重点操作,因为在很多第三方框架中或这项目优化方面有牵扯到使用多个线程去操作的都必然使用线程池去做。那么为啥咧? 因为,执行一个异步任务,那么就需要开启一个线程去执行,那么执行完此异步任务之后,这个线程就会被关闭掉。那么在项目中,一定会有多个异步任务的执行,这样每个异步任务对应着一个线程,而每个线程的开启与关闭都有一定的资源(性能)的消耗与cpu的开销,所以呢,线程池真是解决此问题而...原创 2018-03-27 18:58:53 · 832 阅读 · 0 评论 -
Thread线程系列之线程池详解(补充volatile关键字)
(一).线程池的详解与使用 @1) 核心:ThreadPoolExecutor类 public ThreadPoolExecutor(int corePoolSize, //核心线程数 int maximumPoolSize, //线程允许创建的最大线程数 ...原创 2018-03-28 18:22:07 · 714 阅读 · 0 评论 -
反射之动态代理
此篇幅是反射的最后一章节,动态代理,如果熟悉Android开发且使用过Retrofit框架,应该就知道Retrofit框架实现的核心便是动态代理。import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;//接口:核心主题interfa...原创 2018-04-04 15:23:41 · 268 阅读 · 0 评论 -
设计模式之建造者(构造器)模式
构造器模式也可以称之为建造者模式,构造器模式其实在android中使用的比较多,当然在写一些框架或封装一些模块的时候也经常会用到构造器模式。那么构造器模式适用的场景总结:适用于给定一个基础模板,可以配置多个参数,从而得到不同的结果。也就是说能够在此基础模板的基础上配置自己想要显示的模板样式。看代码示例:/** * builder模式 */public class User { pri...原创 2018-07-04 19:16:24 · 1725 阅读 · 0 评论 -
log日志类的实现
本篇log日志类的实现,简单采用了单例模式+IO流技术实现。package cn.activemq.validate;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.text....原创 2018-09-07 18:15:06 · 1896 阅读 · 0 评论 -
CompletionService与ExecutorService的区别与使用
如果对线程池不太了解请看《Thread线程系列之线程池介绍API的简介》与《Thread线程系列之线程池详解》 CompletionService与ExecutorService都是属于线程池,都具备执行多线程的能力。但CompletionService执行多线程多任务时,那个任务优先执行完成,就会优先返回得到这个优先执行完任务的结果,以此类推。而ExecutorService执行多线程多...原创 2018-11-21 18:42:56 · 342 阅读 · 0 评论 -
java多线程之内存可见性问题详解
本篇直接以图来解释java多线程共享变量情况下的问题原创 2018-11-30 16:09:03 · 337 阅读 · 0 评论 -
仿Retrofit框架的实现--LQHttpRetrofit(一)
写这篇文章,纯粹只是分享Retrofit框架是如何实现的,同时此系列文章旨在分析Retrofit的一个实现思路。 Retrofit框架是什么呢?对于java后端开发而言:就好像类似于操作数据库的Mapper接口这类操作。而对于做android开发而言,就不用多说了。本质上就是:接口+注解 = 实现http请求接口 的一个方式。 LQHttpRetrofit的实现效...原创 2018-12-05 17:57:20 · 374 阅读 · 0 评论 -
仿Retrofit框架的实现--LQHttpRetrofit(二)
本篇就开始对LQHttpRetrofit是如何实现的解析---更多的是去看代码注释解析本篇只是带着过一下,具体工程已上传到gitlib,gitlab地址在本篇末尾有链接先看项目的基本目录接口(旨在解析Retrofit的实现思路,所以只实现了一个基本的)首先看LqRetrofit类的实现解析: 看代码public class LQRetrofit { //...原创 2018-12-05 18:48:02 · 216 阅读 · 0 评论 -
Thread线程系列之多线程下载
了解了这么多与线程相关的知识,那么我们也要实战一下了(在学习本篇知识之前,如果对java中的网络基础链接不太熟悉的,建议先去学一下java网络编程,再来看本文章。)因为本篇是多线程下载的demo,所以就直接附上代码,里面都写好了注释,不影响对本篇的学习。package com.liuqiang.Thread;import java.io.InputStream;import java.io....原创 2018-03-27 18:24:55 · 2457 阅读 · 0 评论 -
Thread线程系列之Callable接口
本篇将介绍与Runable接口类似的另一个接口Callable接口,如果有使用并了解过Callable接口的,可以直接跳过。废话不多说,直接上代码/** * Callable接口是增强版的Runnable接口 * * call()方法比run()方法更加强大 * 1.call()方法可以有返回值 * 2.call()方法可以声明抛出异常 * */public class MyCa...原创 2018-03-27 17:54:39 · 244 阅读 · 0 评论 -
反射+自定义注解 实现(数据库语句的生成)
由于在前面写自定义注解的时候,实在不好写demo演示,当然也说了学完一些反射之后,再来写一个demo,那就趁着今天周末有空,写一个 传入Class,自动生成数据库语句的demo吧1.首先看使用吧 String userSql = SqlSentence.create(User.class); //数据库语句创建的调用实例结果:create table UserTable(id integer pr...原创 2018-03-31 15:43:32 · 370 阅读 · 0 评论 -
Java内存管理
1.Java(Android)内存泄露:指程序分配出去的内存不再使用,无法进行回收。即:该被释放的对象没有被释放,一直被某个实例所持有,导致不能垃圾回收。2.Java内存分配策略: 1)栈区[引用的链接地址]:方法体内的局部变量以及对象的引用变量;在方法执行完后,变量所占的内存或自动释放。 2)堆区[引用的实例]:动态内存分配,new对象的内存;由Java的回收期管理。 3) 静态存储...原创 2018-04-14 19:06:25 · 235 阅读 · 0 评论 -
IO流系列之将流转化为字符串与文件内容复制and-File类
(一)将流转化为字符串--ByteArrayOutputStream的使用/** * 将流转化为字符串 */public static String readInputStream(InputStream is){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] b = new byte[1024...原创 2018-03-27 14:55:49 · 1725 阅读 · 0 评论 -
Thread线程系列之基础简介与使用
本篇讲解的是线程的一些基本使用与讲解,如果你是经常使用线程操作的话,可以对下面内容快速扫一遍即可,因为本篇是线程系列的第一篇,可能后面几篇对某些人来说有所帮助(一)前介1)前言:操作系统支持多个任务,一个任务通常就是一个程序,一个运行的程序就是一个进程(在系统中是独立存在的实体)。 进程与线程的关系就如操作系统与进程的关系一样。一个进程可以拥有多个线程。 2)建议实现C...原创 2018-03-27 17:25:48 · 212 阅读 · 0 评论 -
反射系列之Method方法反射
import java.lang.reflect.Method;class Preson { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; ...原创 2018-03-30 17:23:04 · 3743 阅读 · 0 评论