- 博客(29)
- 收藏
- 关注
原创 对象列表,JSON转成excel表工具类
最近做一个功能需要将数据库的数据转换成excel,突发奇想,做一个工具类,以后遇到对象列表转换成exce以及json转换成excel都可以直接使用。
2023-01-19 17:06:36 1880
原创 java二进制操作工具类
目前完成的功能有:支持整型,长整型的二进制输出显示支持两个整形;长整型拼接成一个长整型(可用于两个id生成另外一个唯一的id)
2022-08-17 15:20:24 872
原创 建造模式详解
当创建一个复杂对象时,这个对象由各个部分的子对象构成,这个复杂对象的各个部分经常面临着剧烈的变化。我理解的主要有两种建造模式,一些基本部件不会变,而其组合经常变化的时候,例如餐厅点餐;另外一种是,组合不会改变,或是部件的装配的顺序一定时,例如电脑的构建。......
2022-07-16 16:16:57 271
原创 动态代理Demo
动态代理demo,提供了三种方式实现代理:使用cglibproxy实现动态代理;使用jdk的实现动态代理(使用了反射);静态代理实例。
2022-07-06 15:34:17 187
原创 抽象工厂模式详解
抽象工厂模式是围绕一个超级工厂创建其他工厂,该超级工厂又称为其他工厂的工厂,这些由超级工厂创建的工厂可以创造一系列的产品。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类,每个生成的工厂都能按照工厂模式提供对象。......
2022-06-28 16:37:22 526
原创 设计模式的原则
设计模式的六大原则是为了需要进行拓展的时候,为了使程序的扩展性好,易于维护和升级。但是这样做也会有不好的地方,会让代码结构更加复杂(不易读懂),建设初期比较耗时,所以要识别出一个业务哪里是需要扩展的,哪里可以复用,选择合适的设计模式,这样才能事半功倍。............
2022-06-17 16:05:54 88
原创 列表与树的处理
最近做一个功能需要将数据库的数据转换成树结构,可以转换成树的数据往往数据库里的表字段含有parent_id这种代表关系,突发奇想,做一个泛型的树工具类,以后遇到这种结构都可以直接转换成树使用。
2022-04-25 16:39:22 759
原创 Kafka理解
Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统。 它最初由LinkedIn公司开发,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。
2022-03-22 15:35:05 2371
原创 Vector源码
Vector与ArrayList的底层都是由数组实现,必要时可扩容。都可以类比成一个大小可变的数组,因此可以根据下标查找值,非常高的效率。但是删除或者从中删除节点,需要对很多元素进行修改,效率不是很高。Vector与ArrayList不一样的地方就是Vector大多数的方法加有synchronized关键字,是线程安全的。
2021-12-27 19:11:14 703
原创 LinkedList源码阅读
LinkedList的底层是由链表实现,不需要扩容。根据下标查找值,要从头节点或尾节点迭代查找,效率较低。但是插入或者从中删除节点,不会像ArrayList有空间上的扩容和移动元素,效率较高。LinkedList线程不安全。
2021-12-21 19:20:03 261
原创 ArrayList源码解读
ArrayList的底层是由数组实现,必要时可通过扩容。可以类比ArrayList是一个大小可变的数组,因此可以根据下标查找值,非常高的效率。但是删除或者从中删除节点,需要对很多元素进行修改,效率不是很高。ArrayList线程不安全。
2021-12-17 18:27:49 130
原创 HashMap源码解读
HashMap源码解读HashMap属性://哈希表:可见HashMap底层是由链表数组实现的,实际上超过threshold,会转变成它的子类TreeNode(红黑树)transient Node<K,V>[] table;//<k,v>元素集合transient Set<Map.Entry<K,V>> entrySet;//hashMap元素个数transient int size;//修改数,遍历的时候作为判断是否在遍历时发生改变t
2021-12-14 19:10:42 197
原创 SpringBoot统一响应模板
目录一、主要功能二、前置条件三、代码示例1. ApiResult 类2. ApiException 类3. ApiExceptionHandler类一、主要功能响应消息统一异常信息统一处理和自定义异常二、前置条件无三、代码示例1. ApiResult 类响应模板类,作为前后端数据响应的模板,包括成功状态,响应码,响应消息,响应数据构成。public class ApiResult<T> { private static final String SUCCESS_CO
2021-05-15 17:20:05 412
原创 相同或相似类的对象之间的深拷贝和浅拷贝
相同或相似类的对象之间的深拷贝和浅拷贝重写clone()Person person = new Person("jack", new Address("chengdu"));Person clone = person.clone();@Data@AllArgsConstructor@NoArgsConstructorpublic class Person implements Cloneable { private String name; private Address a
2021-04-14 11:12:13 386 3
转载 Java如何对一个对象进行深拷贝?
Java如何对一个对象进行深拷贝?https://www.cnblogs.com/xinruyi/p/11537963.html出处 https://www.cnblogs.com/xinruyi
2021-04-08 17:05:51 86
原创 java数组三种初始化方式和list的六种赋值方式
java数组三种初始化方式 public static void main(String[] args) { //第一种数组初始化 Integer[] ints1 = {1,2,3}; //第二种数组初始化 Integer[] ints2 = new Integer[]{4,5,6}; //第三种数组初始化 Integer[] ints3 = new Integer[3]; for (int i
2021-01-24 22:08:18 3384
原创 java种switch语句使用枚举变量
java种switch语句使用枚举变量枚举类:public enum TestEnum { MAP_ONE("one","第一个map"), MAP_TWO("two","第一个map"), MAP_THREE("three","第一个map"), DEFAULT_MAP("","默认map"); public String key; public String value; TestEnum(String key, String value
2021-01-09 22:26:57 293
原创 Java操作符易错和易忽视的知识点
Java操作符易忽视的知识点1.赋值操作符“=”赋值时,其实对其赋值的时对象的引用,而不是对象本身。在修改对象后,所有引用该对象的值都将改变。方法的传参理同于赋值,下面用一个方法调用来展示: public static void main(String[] args) { test1(); } private static void test1() { Person zhangsan = new Person(); zhangs
2021-01-07 23:13:16 92
原创 对象的使用易忽略的知识点
对象的使用基本成员默认值若某类的某个成员时基本数据类型,即使没有初始化,也会给其默认值,上一篇以写出:https://editor.csdn.net/md/?articleId=111939116默认导包默认导入java.lang到所有的文件中,所以他的所有类都可以直接使用,文档链接:jdk官方文档、中文文档注释文档//todo P32文档注解标签//todo P34...
2021-01-02 23:09:36 83
原创 命令行和idea构建javadoc文档
javadoc构建文档源文件/** * 一切都是对象程序入口 * @author heixs * @version jdk1.8 * <h1>嵌入式标签测试</h1> */public class MainTest { /** * 程序入口 * @param args 命令行参数 */ public static void main(String[] args) { test1(args); }
2021-01-02 22:19:15 167
原创 Java运行命令行参数及常见问题
Java运行命令行参数及常见问题问题: 编写一个程序,打印出从命令行获得的第三个参数Java源码:public class MainTest { public static void main(String[] args) { test1(args); } /** * 编写一个程序,打印出从命令行获得的第三个参数 */ private static void test1(String[] args) { if(a
2021-01-02 00:32:00 380
原创 对象的储存位置
对象的储存位置对象的储存到什么地方1)寄存器。 最快的储存区,不能直接控制,也不能在程序中感觉到寄存器存在的迹象2)堆栈。 位于通用RAM(随机访问存储器中),速度次之。创建程序时,Java系统必须知道对象的生命周期,以便移动指针,一般储存对象的引用,不储存对象。3)堆。 一种通用的内存池(也位于RAM区中),用于存放所有的Java对象。用堆进行储存分配和清理比在堆栈上储存更费时间(c++可以在堆栈直接创建对象)4)常量储存。 常量值通常直接存放在程序内部。5)非RAM储存。 储存持久化对象。诸
2020-12-29 23:17:49 1312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人