![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
Java
seven瓜
这个作者很懒,什么都没留下…
展开
-
Java的设计模式:
优点简单工厂模式,封装了创建对象的逻辑,完成了创建对象逻辑与业务代码逻辑的解耦。试想客户端是多个service层的文件,对比不使用简单工厂模式,当我们要改变产生对象的逻辑时,需要在多个service文件中找到这部分代码进行修改。在使用简单工厂模式后,只需要修改简单工厂中生成对象的逻辑即可,不需要修改业务代码。完成了解耦。缺点每当具体产品类的抽象产品类增多时,会需要在简单工厂类中新增关于新增产品类对象生成的方法。当抽象产品类很多时,抽象工厂会很臃肿。...原创 2022-07-21 14:52:36 · 310 阅读 · 0 评论 -
Java的代理:静态代理、JDK/CGLIB的动态代理
这就是代理的作用了。在上面的示例中,一个静态代理只能代理一种类型,而且是在编译器就已经确定被代理的对象。JDK动态代理有一个最致命的问题是其只能代理实现了接口的类,JDK动态代理只能代理实现了接口的类或者直接代理接口,而CGLIB可以代理未实现任何接口的类。CGLIB则使用的继承机制,针对类实现代理,被代理类和代理类是继承关系,所以代理类是可以赋值给被代理类的,因为是继承机制,不能代理final修饰的类。纵观静态代理与动态代理,它们都能实现相同的功能,而我们看从静态代理到动态代理的这个过程,...原创 2022-07-20 16:07:49 · 283 阅读 · 0 评论 -
Spring的注解总结
如果各个@Bean注解的方法之间有相互调用,那么两种模式就会有很大的区别-与full模式下的@Configuration不同,lite模式下@Bean方法互相调用无法声明Bean之间的依赖关系。如果只是把@Bean注解用在方法上,并且各个@Bean注解的方法之间没有调用,上述两种模式达到的效果基本相同,都可以把@Bean注解方法返回的对象作为bean注册到容器中。当@Bean注解和@Component注解组合使用时,称之为“lite”模式;lite模式下的@Bean方法可以是private和final。..原创 2022-07-20 10:45:46 · 272 阅读 · 0 评论 -
JVM的概念性理解
JVM的概念性理解原创 2022-07-12 16:56:40 · 81 阅读 · 0 评论 -
Java不需要递归的树结构算法
写了这么多年代码!!!每次牵扯到树结构,总是递归,而且明明都有id和parentId了,我还每次都是递归去查数据库,今天发现了一个不需要递归的算法,感觉,这么多年每次写递归,绕的头大!import java.util.ArrayList;import java.util.List; /** * Created by Ace on 2017/6/12. */public class TreeUtil{ /** * 两层循环实现建树 * * @param treeN原创 2021-09-14 11:44:08 · 1280 阅读 · 0 评论 -
Linux:Centos下docker的安装/简单springboot服务的部署
一:docker的安装1、查看系统版本: uname -r 【检查内核版本,必须是3.10及以上】2、更新源: yum update3、安装需要的软件包: yum install -y yum-utils device-mapper-persistent-data lvm24、设置yum源(选择其中一个):# 中央仓库:我运行报错 yum-config-manager --add-repo http://download.docker.co...原创 2021-06-15 15:55:38 · 167 阅读 · 0 评论 -
java访问linux服务器上的图片流
今天试着把后台服务部署在linux上,但是访问图片流的时候,后台不报错,前台也没任何反应:第一步:FilemyFile=newFile("C:"+File.separator+"tmp"+File.separator,"test.txt"); ////////////////切记使用 File.separator,而不是"/"第二步:InputStream inputStream = new BufferedInputStream(new FileInpu...原创 2021-06-09 14:26:36 · 1011 阅读 · 0 评论 -
File之生成文件临时目录
最近在做一个shp文件的解析,然后需要制定一个目录,然后要把获取到的file[]都放进去,然后返回.shp格式的文件进行一些操作。然后发现了一个好用的工具 guava:依赖包如下:compile 'com.google.guava:guava:26.0-jre'代码如下: public static File searchShpFile(MultipartFile[] mpFile) { File shpFile = null; try {原创 2021-04-22 09:12:23 · 629 阅读 · 0 评论 -
java:一些常量的final
今天在用java8的stream.froEach()循环的时候报错:Variable used in lambda expression should be final or effectively finalCannot assign a value to final variable 'columnsMap'同样的我定义StringBuffer就没事,但是Map就要加final,但是String又会报错,值也返不回来:String不可变是说String中用一个final 的原创 2021-04-14 17:04:38 · 202 阅读 · 0 评论 -
GIS:shp文件解析相关
今天解析shp文件的时候,如果是点或者线就没问题,但是面就会解析报一下错误:java.lang.NoSuchMethodError: org.locationtech.jts.geom.Polygon.getExteriorRing()Lorg/locationtech/jts/geom/LineString;然后一通好找,发现是依赖包的版本问题,用这两个版本,就好了:geotools:21.0 JTS: compile group: 'org.locationtech.jts...原创 2021-04-14 08:59:27 · 2426 阅读 · 2 评论 -
基于SpringBoot的文件监听器
记得很久之前做过一个项目,需求是:有一个放数据的文件夹,然后监听其数据文件,有生成的就解析入库,成功的删除,不成功的将其移动到备份库。然后最近上网查资料,发现common-iosgradle添加依赖:compile('commons-io:commons-io:2.6')可参考:https://www.jianshu.com/p/cf74c9c522dchttps://blog.csdn.net/cj1561435010/article/details/109103097..原创 2021-03-22 15:49:53 · 307 阅读 · 0 评论 -
JVM:垃圾回收算法
如何找到垃圾对象 该对象没有其它对象对其进行引用,就可引申为垃圾。算法:1.引用计数法:假设有一个对象A,任何一个对象对A的引用,那么对象A的引用计数器+1,当引用失败时,对象A的引用计数器就-1,如果对象A的计数器的值为0,那说明对象A没有引用了,可以被回收。优点: 实时性较高,无需等到内存不够的时候才开始回收,运行是根据对象的计数器是否为0,就可以直接回收。 在垃圾回收过程中,应用无需挂起,如果申请内存时,内存不足,立刻报outofmemory错误 ...原创 2021-03-18 15:10:07 · 207 阅读 · 1 评论 -
JVM初识:堆内存、栈内存
Java中,内存分为两种,一种是栈内存,另一种就是堆内存堆内存:是Java内存中的一种,它的作用是用于存储Java中的对象和数组,当我们new一个对象或者创建一个数组的时候,就会在堆内存中开辟一段空间给它,用于存放【对于堆内存一般开发人员会自动回收它】。栈内存:是Java的另一种内存,主要是用来执行程序用的,比如:基本类型的变量和对象的引用变量【栈内存可以称为一级缓存,由垃圾回收器自动回收】。堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理.原创 2021-03-18 09:25:13 · 2193 阅读 · 3 评论 -
Windows下添加开机自启动:nginx、jar、redis、tomcat
因为是离线部署,懒得添加自定义插件。查资料说用任务计划程序,但是开机还是不自启动,显示:任务尚未运行(0x41303)。然后又说得去添加安全策略,奈何是win10的家庭版,没有这个安全策略.还得一系列配置,麻烦。无奈,只好添加开机自启动了:Win+R:输入 ,会打开自启动目录shell:startupnginx: 创建nginx.exe的快捷方式,放到自启动目录下。jar包:1.新建一个start.bat文件,将以下命令写入: java -jar D:\project原创 2021-03-12 17:00:34 · 870 阅读 · 0 评论 -
Java:项目启动初始化@PostConstruct
@PostConstruct的使用有时候,在项目启动的时候需要一些准备工作,我们就可以用到@PostConstruct这个注解:@Componentpublic class DataDictionaryMap { @Autowired private DataDictionaryService dataDictionaryService; @Autowired private RedisTemplate<String, Object> redisTem原创 2021-02-23 11:54:52 · 736 阅读 · 1 评论 -
Knife4j:接口框架
Knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍!Knife4j的前身是swagger-bootstrap-ui,为了契合微服务的架构发展,由于原来swagger-bootstrap-ui采用的是后端Java代码+前端Ui混合打包的方式,在微服务架构下显的很臃肿,因此项目正式更名为knife4j更名后主要专注的方面:前后端Java代码以及前端Ui模块原创 2021-02-20 16:59:46 · 1298 阅读 · 1 评论 -
Java时间格式保存出错处理:java.util.Date,typeMismatch
Field error in object 'role' on field 'createDatetime': rejected value [2021-02-19 11:38:38]; codes [typeMismatch.role.createDatetime,typeMismatch.createDatetime,typeMismatch.java.util.Date,typeMismatch];第一种解决方案:添加注解@DateTimeFormat(pattern = "yyyy-MM-dd原创 2021-02-19 11:47:45 · 4242 阅读 · 3 评论 -
IDEA快捷键自动生成序列化id:serialVersionUID
File->setting->iEditors->Inspections:然后光标放到实体类的名字上, Alt+Enter:原创 2021-02-19 11:37:01 · 101 阅读 · 0 评论 -
Java处理Excel文件工具包-easyexcel使用详解
参考来源:https://msd.misuland.com/pd/2884250103256716896原创 2021-02-07 14:37:22 · 249 阅读 · 0 评论 -
Java多级目录导出文件压缩包
//创建临时文件 File zipFile = File.createTempFile("test", ".zip"); Path temp = Files.createTempDirectory(null); String srcImgPath = temp.toString(); for( 循环 ){ ...原创 2020-08-13 15:36:40 · 732 阅读 · 0 评论 -
POI整的让我头大
行尸走肉般改了一下午的poi解析word的table增加行 赋值 增加行 赋值 增加行 赋值 增加行 赋值 增加行 赋值。。。。。。。。。怎么都不行每次都挤到最后一行死磕了半天 不敢怀疑 可到底还是poi的坑addNewRowBetween 竟然没实现,没实现,你放这里是干嘛!!!!!!!!!!!!!!!!!!addRow是插入了,但是我赋值的时候,全部挤到最后一行,呵呵,...原创 2019-06-12 10:56:56 · 1199 阅读 · 0 评论 -
File之读取文件内容
如果是单个文件: public static void fileToData() { BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader (new FileInputStream(new File ("E:\\test\\aaa.txt")原创 2020-11-26 17:53:05 · 4026 阅读 · 0 评论 -
File之写入文件内容
如果是单个文件: public void dataToFile(){ try { File file = new File("E:\\\\test\\\\aaa.txt"); if (!file.exists()) { file.createNewFile(); } FileWriter fw = new FileWriter(file.getAbsol原创 2020-11-26 18:07:22 · 4195 阅读 · 0 评论 -
File之图片添加水印文字
1111 public void IoReadImage(HttpServletRequest request, HttpServletResponse response) throws IOException { BufferedImage bufImg = ImgDealUtil.waterPress(inStream, project.getWatermark()); ImageIO.write(bufImg,"jpg原创 2020-11-27 11:33:04 · 293 阅读 · 0 评论 -
工作中遇到java相关关键字用法
compareTo:如果指定的数与参数相等返回0。如果指定的数小于参数返回 -1。如果指定的数大于参数返回 1。内存数据量过大,用ConcurrentHashMap数组初始化:int[] a = {1,2,3};int[] a = new int[2]; /************************************反射机制开始******************...原创 2018-09-26 09:51:02 · 139 阅读 · 0 评论