Core Java
文章平均质量分 67
Debug-ya
一起debug呀
展开
-
poi导出excel,Batik处理svg图片导致 Excel无法打开文件,因为文件格式或文件扩展名无效,请确定文件未损坏,并且文件扩展名与文件格式匹配。
Batik处理svg图片导致poi导出Excel无法打开文件简介最近一周生产环境上导出电子表格文件出现了异常,并不确定是什么原因导致的排查也没有结果。问题现象问题排查及解决1、期间poi的jar包升级了一次版本。怀疑是poi版本问题导致下载后无法打开2、怀疑poi文件流被修改,改用easyExcel。3、怀疑poi和easyExcel同时存在导致文件流出现什么异常4、只能怀疑近期其他功能干扰近期上线儿 Word文档的导入和导出、word里面视频导入导出、 Svg图片转换为编辑图片。5、开始还原svg图片转P原创 2021-06-20 16:19:36 · 1630 阅读 · 0 评论 -
Java基础-io体系总结
io知识体系总结简介io的分类字节流、字符流抽象基类字节流的继承图节流的继承图字节流的输入与输出的对应InputStreamReaderOutputStream & WriterOutputStreamWriter节点流(或文件流)读取文件节点流(或文件流)写入文件缓冲流转换流InputStreamReaderOutputStreamWriter打印流数据流对象流随机存取文件流Random...原创 2020-04-27 17:34:34 · 199 阅读 · 0 评论 -
Java-JUC-彻底搞懂JUC
JUC知识总结简介volatile 关键字问题代码示例解决方法,加锁原子性CAS 算法模拟CAS算法原子变量锁分段机制ConcurrentHashMapCopyOnWrite写入并复制CountDownLatch 闭锁简介在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类,用于定义类似于线程的自定义子系统,包括线程池...原创 2020-04-27 08:30:15 · 5606 阅读 · 2 评论 -
JavaCore-彻底搞懂集合-collection接口集合体系详解四-Map接口-HashMap原理-TreeMap-Hashtable
Map接口概述继承结构理解常用方法HashMap特点HashMap的存储结构HashMap源码中的重要常量JDK7存储结构添加元素的过程:HashMap的扩容扩容时机JDK8存储结构添加元素过程扩容扩容时机key总结:JDK1.8相较于之前的变化:负载因子LinkedHashMapTreeMapHashtableProperties:概述Map与Collection并列存在。用于保存具有映射关...原创 2020-04-20 16:32:15 · 766 阅读 · 0 评论 -
JavaCore-彻底搞懂集合-collection接口集合体系详解三-Set接口-HashSet-LinkedHashSet-TreeSet
set接口结构|----Set接口:存储无序的、不可重复的数据 -->高中讲的“集合”|----HashSet:作为Set接口的主要实现类;线程不安全的;可以存储null值|----LinkedHashSet:作为HashSet的子类;遍历其内部数据时,可以按照添加的顺序遍历对于频繁的遍历操作,LinkedHashSet效率高于HashSet.|----TreeSet:可以按照...原创 2020-04-19 20:00:37 · 254 阅读 · 0 评论 -
JavaCore-彻底搞懂集合-collection接口集合体系详解二-List接口-ArrayList-LinkedList-Vector-ArrayList的实现原理
List接口及实现概述ArrayList源码分析jdk7初始化扩容jdk8初始化扩容Arraylist 最大值Arraylist小结LinkedList源码分析jdk8LinkedList小结VectorArrayList与VectorArraylist与LinkedList总结参考这篇文章,写的很好Java集合容器面试题(2020最新版)概述List存储有序的、可重复的数据。 存储元素和...原创 2020-04-19 16:03:43 · 208 阅读 · 0 评论 -
JavaCore-彻底搞懂集合-collection接口集合体系详解一
JavaCore-彻底搞懂集合-collection接口-实现集合与数组接口的继承collection体系Collection接口的常用方法颜色不一样,没什么区别。集合与数组数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义, 这样太麻烦了! 所以, Java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少.区别1:数...原创 2020-04-19 08:16:49 · 304 阅读 · 0 评论 -
JavaCore-深入理解注解-Annotation
目录原创 2020-04-15 11:00:49 · 249 阅读 · 0 评论 -
JavaCore-String-StringBuffer与StringBuilder-扩容
目录String 不可变性String慢的原因StringBufferStringBuffer类线程安全StringBuffer扩容String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)String 不可变性String是一个final类,代表不可变的字符序列。字符串是常量,用双引号引起来表示。 它们的值在创建之后不...原创 2020-04-14 17:34:24 · 134 阅读 · 0 评论 -
Java-设计模式-单例模式-懒汉式-volatile-synchronized
介绍意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当您想控制实例数目,节省系统资源的时候。如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创。关键代码:构造函数是私有的。应用实例:1、一个班级只有一个班主任。2、Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时...原创 2020-04-10 23:07:37 · 159 阅读 · 0 评论 -
JavaCore-进程-线程-并行并发-多线程--优先级-创建线程-锁-线程通信
文章目录Java创建一个线程的方法方法一方法二线程的常用方法Java创建一个线程的方法1)继承Thread类创建线程2)实现Runnable接口创建线程3)使用Callable和Future创建线程1和2 都是实现runable接口的方法。方法1中的继承thread类,其实thread类也是实现了runable接口。在不谈第三种的情况下还是推荐实现runable的方法,他不影响业务正常的...原创 2020-04-08 17:20:28 · 181 阅读 · 0 评论 -
Java-设计模式-代理模式-静态代理-动态代理-interface
文章目录静态代理参考例一例二小结例三静态代理总结动态代理JDK中InvocationHandler接口与Proxy类Spring AOP 与 动态代理静态代理参考https://blog.csdn.net/justloveyou_/article/details/74203025https://blog.csdn.net/briblue/article/details/73928350根...原创 2020-04-02 23:09:06 · 250 阅读 · 0 评论 -
JavaCore-static-代码块-静态代码块-无参构造-有参构造-执行顺序
//总结:由父及子,静态先行class Root{ static{ System.out.println("Root的静态初始化块"); } { System.out.println("Root的普通初始化块"); } public Root(){ super(); System.out.println("Root的无参数的构造器"); }}class Mid e...原创 2020-04-02 14:33:35 · 245 阅读 · 0 评论 -
JavaCore-理解多态-运行时行为
package com.atguigu.java5;import java.util.Random;//面试题:多态是编译时行为还是运行时行为?//证明如下:class Animal { protected void eat() { System.out.println("animal eat food"); }}class Cat extends Animal...原创 2020-04-02 09:32:22 · 246 阅读 · 0 评论 -
JavaCore-数组-常用算法-回型数
数组看成一个回字形,然后回字里面再包裹一个回字。。。。把每个数字的数组索引写在一旁做参考,能够帮助自己很快的找到想要位置。先给上面最外边第一条数组赋值,方向是从左到右→给第二条数组赋值,方向是从上到下↓第三条,从右到左←第四条,从下到上↑package com.atguigu.exer;/** * 数组看成一个回字形,然后回字里面再包裹一个回字。。。。把每个数字的数组索引写在一...原创 2020-04-02 09:29:10 · 253 阅读 · 0 评论 -
JavaCore-理解java的三大特性
理解java的三大特性之多态https://blog.csdn.net/chenssy/article/details/12786385理解java的三大特性之封装https://blog.csdn.net/chenssy/article/details/12757911理解java的三大特性之继承https://blog.csdn.net/chenssy/article/details...原创 2020-04-02 09:01:33 · 246 阅读 · 0 评论 -
JavaCore-随机数-1-100-闭区间-公式
Java的Math.random() 方法产生的随机数是[0,1)找个公式把他弄成两边都是闭区间的那种。[1,6](int)(Math.random() * (6 - 1 + 1) + 1);[1,50](int)(Math.random() * (50 - 1 + 1) + 1);[0,100](int)(Math.random() * (100 - 0 + 1));Math.r...原创 2020-04-01 22:08:00 · 725 阅读 · 0 评论 -
JavaCore-数组-常用算法-快速排序-彻底搞懂快排
排序思想:还是尚硅谷康师傅讲的清楚从数列中挑出一个元素,称为"基准"(pivot),重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。递归的最底部情形,是数列...原创 2020-04-01 21:52:48 · 215 阅读 · 0 评论 -
JavaCore-数组-杨辉三角
杨辉三角每个数等于它上方两数之和。有两种显示情况直角三角形显示等腰三角形显示直角三角形的展示出来了// 1.声明并初始化二维数组 直接声明了长度为10 int[][] yangHui = new int[10][]; // 2.给数组的元素赋值 // 第0行 数组长1 // 第1行 数组长2 // 第2行 数组长3 // 第3行 数组长4 第i个数组...原创 2020-04-01 20:42:42 · 105 阅读 · 0 评论 -
JavaCore-数组-常用算法-冒泡排序-两次优化-彻底懂了冒泡
冒泡就是交换位置,相邻的元素比较后交换。小的往上冒大的往下沉,或者改成小的往下沉大的往上冒。 走一趟之后最大的数就沉底了。这篇文章不错,引用以下,不明白为啥发头条上去https://www.toutiao.com/a6593273307280179715/?iid=6593273307280179715比较相邻的元素,如果前一个比后一个大,交换之。第一趟排序第1个和第2个一对,比较与交...原创 2020-04-01 17:39:39 · 179 阅读 · 0 评论 -
JavaCore-数组-常用算法-二分查找
数组的二分查找前提必须为顺序存储结构;必须按关键字大小有序排列。理解将有序数组分为三个部分,分别为中间值前(中间值数之前的一组数据),中间值和中间值后(中间值之后的一组数据);将要查找的数与中间值的数相比较,等于则退出查找,小于则在中间值前进行比较,大于在在中间值后进行比较,依次递归,直至查找到对应的值为止;当要查找数据结构为偶数时,中间值mid应向下取整处理;上述arrays数...原创 2020-04-01 16:00:05 · 178 阅读 · 0 评论 -
JavaCore数组-常用算法-数组反转
一维数组代码/* * 一、数组的概述 * 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名, * 并通过编号的方式对这些数据进行统一管理。 * * 2.数组相关的概念: * >数组名 * >元素 * >角标、下标、索引 * >数组的长度:元素的个数 * * 3.数组的特点: * 1)数组是有序排列的...原创 2020-04-01 15:10:56 · 119 阅读 · 1 评论 -
JavaCore数组
一维数组1.一维数组的声明与初始化正确的方式:int num;//声明num = 10;//初始化int id = 1001;//声明 + 初始化 int[] ids;//声明 //1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行 ids = new int[]{1001,1002,1003,1004}; //1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行...原创 2020-04-01 11:13:43 · 200 阅读 · 0 评论 -
JavaCore流程控制
分支结构1.if-else条件判断结构1.1.结构一:if(条件表达式){执行表达式}结构二:二选一if(条件表达式){执行表达式1}else{执行表达式2}结构三:n选一if(条件表达式){执行表达式1}else if(条件表达式){执行表达式2}else if(条件表达式){执行表达式3}…else{执行表达式n}1.2.说明:else 结...原创 2020-04-01 10:41:24 · 106 阅读 · 0 评论 -
JavaCore运算符
1.算术运算符: + - + - * / % (前)++ (后)++ (前)-- (后)-- +【典型代码】//除号:/int num1 = 12;int num2 = 5;int result1 = num1 / num2;System.out.println(result1);//2// %:取余运算//结果的符号与被模数的符号相同//开发中,经常使用%来判断能否被除尽的情况...原创 2020-04-01 10:38:20 · 226 阅读 · 0 评论 -
JavaCore基本数据类型
最近发现看源码看不动,看的云里雾里的,很多的模式啊什么的看了头晕,重拾起尚硅谷的java,走一遍,顺便梳理一下这次回顾的收货反正原来不懂的静态啊,抽象啊,继承多态都有一个全新的理解1.1 按数据类型分类详细说明://1. 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)//① byte范围:-128 ~ 127// ② 声明l...原创 2020-04-01 10:30:14 · 178 阅读 · 0 评论 -
JavaCore环境变量 jdk13没有jre
问题安装java13的时候发现没有jre的文件夹,那我按以前的思路怎么配置环境变量呢解决11以后就不需要配置这个jre了,人家不给,就是已经没有必要了。看人家的stackoverflowhttps://stackoverflow.com/questions/52584888/how-to-use-jdk-without-jre-in-java-11这是以前配置的环境变量,写出来顺便做个...原创 2020-04-01 10:21:12 · 194 阅读 · 0 评论 -
Java静态代码块、非静态代码块、构造方法的执行顺序
静态代码块、非静态代码块、构造方法的执行顺序package com.atguigu.java3;//总结:由父及子,静态先行class Root{ static{ System.out.println("Root的静态初始化块"); } { System.out.println("Root的普通初始化块"); } public Root(){ super(); Sy...原创 2020-03-30 11:29:34 · 213 阅读 · 0 评论 -
Java-设计模式-单例模式-饿汉式-static
/** * 采取一定的方法保证在整个的软件系统中,对 某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。 * 如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构 造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生 * 类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无 法得到类的对象,只能调用该类的某个静态方法以返...原创 2020-03-30 11:08:13 · 175 阅读 · 0 评论 -
Object o1 = true ? new Integer(1) : new Double(2.0);发生了什么
@Test public void test1() { Object o1 = true ? new Integer(1) : new Double(2.0); System.out.println(o1);// 1.0 }这句话到底发生了什么?1、三目运算符要求 表达式2 和 表达式3 类型一致,中间的自动类型提升了,int转doub2、int转double了,返回值是ob...原创 2020-03-28 21:12:57 · 3161 阅读 · 7 评论 -
form提交下载文件获取返回值
场景:form表单提交post请求到controller,后台设置返回的头信息,浏览器执行下载操作。现状:导出按钮点击后开始定时10秒之内不让点击,到时间再放开。结果用户反应点了之后浏览器没反应。他妈的快1w数据了,你让我下载能反应多快,我后台不计算啊。要求:下载的时候加遮罩层,等待gif,下载完之后取消遮罩实现思路:下载完之后获取返回值,根据结果执行方法去掉遮罩最终结果:失败,换其他方...原创 2020-03-25 15:30:12 · 3384 阅读 · 5 评论 -
Java中权限修饰符
允许所有外部类访问使用public允许子类和同包类访问使用protected只能自己访问使用private访问权限修饰符权限从高到低排列是public ,protected ,friendly, private。一个Java应用有很多类,但是有些类,并不希望被其他类使用。每个类中都有数据成员和方法成员,但是并不是每个数据和方法,都允许在其他类中调用。如何能做到访问控制呢?就需要使用访问权限原创 2015-04-30 15:40:29 · 376 阅读 · 0 评论 -
Java中this的用法小结
我知道很多朋友都和我一样:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它,但是到底“this”该怎么用,却心中无数!很多人一提起它,就说“当前对象”,可到底什么是当前对象,是什么当前对象,他自己也不清楚。现在让大家看一个小例子,给你分享一下JAVA中“this”的用法!/** * 本示例为了说明this的三种用法! */package test;public class ThisTest原创 2015-04-30 13:53:02 · 435 阅读 · 0 评论 -
Java中递归
递归调用 就是自己调用自己 @Test public void test2() { //用递归 自己调用自己 int last = add(9); System.out.println(last); } /* * 递归调用 */ public int add(int times) {//传进去的int原创 2015-04-30 15:25:52 · 256 阅读 · 0 评论 -
控制语句
变量原创 2015-04-30 09:17:03 · 277 阅读 · 0 评论 -
JAVA中final、finally、finalize
虽然把这三个词的用法放在一起汇总,但是他们之间在技术上实际上是没有任何关系的。只是由于样子长的比较像,所以放在一起以便区分!下面就细说“final”、“finally”、“finalize”的用法吧!我们学习JAVA中最先遇到的,且最常用的应当是“final”。它的用法分为很多种,但是总的来说表示“不可修改的!”。首先是“final”数据。当“final”用于JAVA基本数据类型变量时表示该变量是原创 2015-04-30 13:54:43 · 367 阅读 · 0 评论 -
局部变量成员变量
各种类型的变量的初始值package cn.inspur;public class Demo12 { static int age; static boolean boo; static char c; //-------------------------------- static String name; static int[] ages;原创 2015-04-29 21:48:57 · 312 阅读 · 0 评论 -
Java起步
Java 最早是由C语言变化来而来,去掉了里面的指针。oka - Java JavaJavaSE - 标准开发 - coreJavaJavaEE -企业开发 -javaweb /servlet/jsp/struts/spring/hibernate/...javaME - 手机和移动项目 android不是javaME.只是用的java语言。Java的最大的优点:跨平台 (Windows原创 2015-04-29 22:20:28 · 270 阅读 · 0 评论 -
Java_IO_1_File类
java.io.File类 * 1.凡是与输入、输出相关的类、接口等都定义在java.io包下 * 2.File是一个类,可以有构造器创建其对象。此对象对应着一个文件(.txt .avi .doc .ppt .mp3 .jpg)或文件目录 * 3.File类对象是与平台无关的。 * 4.File中的方法,仅涉及到如何创建、删除、重命名等等。只要涉及文件内容的,File是无能为力的,必原创 2017-09-04 23:09:00 · 256 阅读 · 0 评论 -
Java_IO_2_Java IO原理
教程来自尚硅谷 宋红康 一、IO简介 1、IO流用来处理设备之间的数据传输。 2、Java程序中,对于数据的输入/输出操作以”流(stream)” 的方式进行。 3、java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。 二、输入输出等分类 所有的流的分类是以站在程序的角度出发的输入input:读取外部数据(磁盘、光盘等存储设备的数据)到程序原创 2017-09-04 23:42:41 · 314 阅读 · 0 评论