2021
07-26
07-26
详解Java从工厂方法模式到 IOC/DI思想
目录前言工厂方法模式工厂方法的结构工厂方法模式的样例代码工厂方法模式实现文件导出工厂方法与简单工厂的区别工厂方法模式的意义工厂方法模式与IOC、DI什么是IOC/DI?工厂方法与IOC/DI思想前言简单工厂的本质是选择实现,说白了是由一个专门的类去负责生产我们所需要的对象,从而将对象的创建从代码中剥离出来,实现松耦合。我们来看一个例子:我们要创建一个文件导出工具publicinterfaceFileOper{publicBooleanexceptFile...
继续阅读 >
1.问题描述idea中使用Inputstream流导致中文乱码解决方法,当然也不一定就是输入流,可能输出流或者其他用到了流相关的字符的都可能出现乱码,这里有一个可能的解决办法。2.解决办法①idea中找到下面的路径File--Settings--Editor--FileEncodings②Transparentnative-to-asciiconversion把这个前面勾上,重新创建文件,执行就OK很多朋友遇到JavaFileInputStream读中文乱码问题,下面小编在给大家普及下这方便的知识及解决方...
目录一、前言二、关于RuntimeException三、异常的避免四、异常的捕获五、异常的抛出(异常的转移)六、自定义异常一、前言在Java中,我们在执行代码的过程中难免会遇到错误与Exception异常,可是我们一直都是锤头Coding而忽略了学习Exception这个东西!我们只是知道在发生Exception的地方让代码自动生成throwexception或者是使用try-catch括起来处理,那你了解Java的Exception吗?今天就让我们把一起来看看Java的Exception吧!在J...
目录1API2Netty的数据容器2.1工作原理内存池化非池化的堆内与堆外的ByteBuf池化的堆内与堆外的ByteBuf字节级操作派生缓冲区slice、slice(int,int)、retainedSlice、retainedSlice(int,int)duplicate、retainedDuplicatereadSlice、readRetainedSlice网络数据的基本单位永远是byte(字节)。JavaNIO提供ByteBuffer作为字节的容器,但该类过于复杂,有点难用。ByteBuf是Netty当中的最重要的工具类,它与JDK的ByteBuffer原...
目录概述语法函数式接口方法引用构造器引用变量作用域处理lambda表达式概述Lambda表达式,也可称为闭包,是JDK8的新特性。Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中),可以使代码变的更加简洁紧凑。Lambda表达式是一个可传递的代码块,可以在以后执行一次或多次。名字起源是以前还没有计算机时,逻辑学家AlonzoChurch想要形式化的表示能有效计算的数学函数,使用了希腊字母lambda(λ\lambdaλ)来标记...
一、业务场景最近遇到了一个Java文件读取的缓存问题,打远程断点出现的也是原来的老代码参数,好在晚上十点突然找到了解决方案,豁然开朗,现整理分享思路,希望对遇到同样文件读取缓存问题的你有帮助我更新几次插件包后,服务器也缓存也清理了我本地用postman调用测试,下载的文件是新文件,但是上线后发现下载下来的文件是老文件下载下来的文件还是原来的文件,文件大小28.5K,我动态写入部分数据,按道理下载下来的文件大小应该...
目录封装继承多态接口一些建议和小结写在最后的话封装所谓的封装就是把类的属性和方法使用private修饰,不允许类的调用者直接访问,我们定义如下一个类,可以看到所有的成员变量和成员方法都使用private修饰了,我们现在来使用一下这个类。当我们使用的时候编译器给出了下面这样的报错。告诉我们说是private访问控制,那么这是什么意思呢?我们来看看另外一张图,那么这张图代表这什么呢?在看这张图之前,我们先来看看四者都提到...
Java原生SPI面向接口编程+策略模式实现建立接口RobotpublicinterfaceRobot{/***测试方法1*/voidsayHello();}多个实现类实现接口RobotApublicclassRobotAimplementsRobot{publicRobotA(){System.out.println("HappyRobotAisloaded");}@OverridepublicvoidsayHello(){System.out.println("iamaveryveryhappyRobot");}publicvoidsayBye(){}}Ro...
引入依赖maven<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency>Gradleimplementationgroup:'org.apache.poi',name:'poi',version:'3.17'代码展示1、自定义注解类@Retention(value=RetentionPolicy.RUNTIME)@Target(value=ElementType.FIELD)public@interfaceExcel{Stringname();//列的名字intwidth()default6000;//列的宽度...