自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

twelve_zjg的博客

一个javaCoder的分享

  • 博客(25)
  • 收藏
  • 关注

原创 【JAVA】使用JSON Schema校验JSON数据是否合规

       相信很多小伙伴现在处理数据交互的时候都喜欢使用JSON,因为它使用方便易读,结构简单,语言无关。但是在使用JSON数据的过程中难免会遇到这样的问题,那就是我要发送/接受的JSON是否满足相应的格式要求。比如这个JSON数据中某个字段我不希望它是null的,某个字段的类型我希望它是Int而不是String。这个时候我们往往就需要对我们将要发送或是收到的JSON数据进行校验,看看这个JS...

2018-11-29 16:52:43 16711 2

原创 word转Html的实现方案

相信有些小伙伴会遇到这样的场景,那就是想要在前端网页上面预览word文件,但是直接预览word文件相对来说还是体验不是很好,再加上如果还想直接在文件上面做一些编辑改变的话,一般前端的富文本编辑器编辑的都是Html文件。所以这个时候我们可以考虑将word转成Html,之后预览和编辑都变得非常简单。之后还需要将文件转成pdf之类的文件也非常方便。话不多说,下面给大家分享个非常简单好用的方案,并且下面会给出个实际实现的案例。我们借助的是poi工具,它的功能非常强大,贴出他的github地址:https://g

2021-02-09 18:36:08 1620

原创 mysql知识思维导图

埋头做好手头的事,也要时不时地抬头对自己的知识框架进行梳理,下面将我自己总结画出的Mysql知识框架思维导图分享出来,希望能对看到的人有所帮助。

2021-02-09 18:08:22 373

原创 使用Jsoup将Html的标签由嵌入式改为内联式

首先简单的介绍一下jsoup,jsoup是一款Java的HTML解析器,Jsoup可以将HTML转换成一个org.jsoup.nodes.Document对象,然后从Document对象中取出想要的元素。在此附上jsoup的文档地址:Jsoup官方中文文档首先引入jsoup<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId>

2020-10-27 14:56:00 452

原创 寻找重复数【附java实现】

给定一个包含n + 1 个整数的数组nums,其数字都在 1 到 n之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数组中只有一个重复的数字,但它可能不止重复出现一次。来源:力扣(LeetCode)https://...

2020-05-26 09:34:31 499

原创 从前序与中序遍历序列构造二叉树【附java实现】

根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-ino...

2020-05-22 15:10:04 799

原创 Java实现 pow(x, n) ,即计算 x 的 n 次幂函数。

示例 1:输入: 2.00000, 10输出: 1024.00000示例2:输入: 2.10000, 3输出: 9.26100示例3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/powx-npublic double myPow(double x, int n) { //核心思想主要还是...

2020-05-11 10:22:43 4612 1

原创 重识JVM(六):内存分配原则

对象的内存分配,就是在堆上分配,对象主要分配在新生代的Eden 区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB 上分配。少数情况下也可能直接分配在老年代中,分配的规则不是固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数设置。下面会讲解几条最普遍的内存分配原则。对象优先在Eden 分配大多数情况下,对象在新生代Eden 区中分配。当Eden 区没有足够...

2020-03-12 22:23:39 303 1

原创 重识JVM(五):垃圾收集器

如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现了。基于HotSpot 虚拟机的所有收集器如图所示:上图中展示了7种用于不同分代的收集器,两个收集器之间存在连线的,就说明它们可以搭配使用。下面让我们来一个一个了解一下它们吧。Serial 收集器Serial 是最基本、历史最悠久的垃圾收集器,使用复制算法。Serial 是一个单线程的收集器,它不仅仅只会使用...

2020-03-12 18:39:20 109

原创 重识JVM(四):GC

垃圾收集(GC)是java的重中之重,相信大家很多人喜欢使用java语言进行开发,就是因为喜欢这一特性吧。要了解垃圾收集,那么我们肯定得弄明白三个问题:(1)哪些内存需要回收?(2)什么时候回收?(3)如何回收?1.哪些内存需要回收?堆里存放着几乎所有对象实例,垃圾收集器在堆上进行回收之前,一定要做的事就是要确认哪些对象还“存活”,而哪些对象已经“死亡”了,这些已经死亡的对...

2020-03-11 18:42:16 189

原创 重识JVM(三):OOM异常的常见处理思路

1.堆溢出Java 堆用于存储对象实例,只要不断增加对象,并且保证GC Roots 到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量达到最大堆的容量限制后就会产生OOM 异常。要解决这个区域的异常,一般的手段是通过内存映像分析工具对dump 出来的堆转储快照进行分析,重点是确认内存中的对象是否是必要的,也就是要判断是出现来内存泄露(不必要)还是内存溢出(必要)。前者的话要...

2020-03-09 23:07:35 232 1

原创 重识JVM(二):虚拟机对象相关

1.对象的创建在语言层面,创建一个对象通常是new一个关键字,那么在java虚拟机中,对象的创建过程又是怎样的呢?

2020-03-09 16:36:22 85

原创 重识JVM(一):运行时数据区域

记得上一次看jvm相关的知识还是在大四的时候,两年过去了,记忆已经逐渐模糊。现在来重识一下jvm,希望温故而知新,一些重要的知识点我会在博客上把学习的知识记录下来。想要了解jvm,就一定需要了解java虚拟机是如何使用内存的,要不在出现内存泄漏和内存溢出等问题时,我们是没法准确地排查出错误的,下面就让我一起来重新认识一下java虚拟机在执行java程序的过程中的运行时数据区。参照上图,...

2020-02-27 15:47:49 153

原创 快速排序(java实现)

快速排序作为很经典的一种排序方法,我们怎么能不掌握呢?首先让我们来理清快速排序的思路:现在有一个数组如下:int[] nums = {4,1,6,2,3,7,9,8,0,5} ;我们要使用快速排序使这个数组变的有序,从小到大或者从大到小的顺序进行排列。其思路就是每次选择数组中的一个数作为”基数“,以这个”基数“作为标准,将数组分为两个部分,例如:将小于等于这个”基数“的数放在”基...

2020-01-14 19:52:50 130

原创 堆排序实现(java实现)

首先我们要明确一下堆排序的概念,堆排序就是利用大根堆和小根堆来实现的一种排序方法。那么什么是堆呢?堆(heap)也被称为优先队列(priority queue)。队列中允许的操作是先进先出(FIFO),在队尾插入元素,在队头取出元素。而堆也是一样,在堆底插入元素,在堆顶取出元素,但是堆中元素的排列不是按照到来的先后顺序,而是按照一定的优先顺序排列的。这个优先顺序可以是元素的大小或者其他规则。如...

2020-01-13 18:55:40 111

原创 记录一个很小的问题

有些时候写判断的时候过于粗心了,今天就发现了自己的一个小问题,记下来是督促自己以后写代码切不可草率了,小问题可能引发大问题!public class TestClass { private Long testL = null; public Long getTestL() { return testL; } public void se...

2020-01-07 16:54:35 99

原创 分割回文串【JAVA实现】

给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入:"aab"输出:[ ["aa","b"], ["a","a","b"]]面对这种需要列出所有可能性的问题,很容易想到的就是使用回溯的方法来解决,分析问题,首先需要把一个复杂的问题分解成相对来说较为简单的子问题,然后将这个子问题的解进行组合就可以找到复杂问题的解...

2019-10-11 18:55:35 604

原创 如何按层遍历二叉树【附java实现代码】

说道遍历二叉树,我们很容易就会想到按照前序中序后序以及按层来遍历二叉树。这篇博客主要是记录一下按层来遍历二叉树的方法。这个二叉树按照层来遍历的结果是二叉树的遍历方法中,很多人最先想到的就是用递归的方法进行遍历。二叉树按层遍历也同样可以使用递归的方法进行遍历,这种方法有两个要点:1.要记录当前遍历的层数 2.每次递归的过程中判断该层是否已经遍历过/*** Definit...

2019-09-18 15:04:39 1107

原创 【LeetCode】合并K个排序链表

合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6分治解决法(java版本):/** * Definition for singly-linked lis...

2019-05-30 11:20:02 105

原创 什么时候使用消息队列

消息队列最常的使用场景:解耦,异步,削峰。1.解耦:比如说图中A系统需要给图中的BCDE系统发送消息,但是突然有一天有个F系统也想要A给它发消息呢?C有一天不想要A给他发了呢?A还要关心这些系统是不是正常的收到了消息.......每次都要改,急死了!有没有办法解决这个问题呢?这个时候使用如果使用MQ就可以解决这个问题,采用pub/sub发布订阅消息模型。如图:A 系统产生一条...

2019-03-12 16:51:35 4497

原创 之后工作学习的一些计划

1.整理自己现在已经掌握的技术栈2.搜集整理现在工作中需要用到的技术3.分为点-&gt;面-&gt;系统的步骤去学习和实践4.快速的学习某方面的基本知识并且完成一些基础的实践5.遇到某些困难和问题点再回过头来深入研究6.利用自己较为碎片的时间,比如地铁,休息等等时间来进行碎片化的基础巩固和学习7.利用周末的一个小时对本周碎片化时间巩固的基础知识做一个整理和技术分享(博客)...

2019-02-19 15:46:30 208

转载 虚拟内存和物理内存的联系和区别

操作系统有虚拟内存与物理内存的概念。在很久以前,还没有虚拟内存概念的时候,程序寻址用的都是物理地址。程序能寻址的范围是有限的,这取决于CPU的地址线条数。比如在32位平台下,寻址的范围是2^32也就是4G。并且这是固定的,如果没有虚拟内存,且每次开启一个进程都给4G的物理内存,就可能会出现很多问题:因为我的物理内存时有限的,当有多个进程要执行的时候,都要给4G内存,很显然你内存小一点,这很快就...

2019-01-29 15:12:19 419

转载 java Object类自带的方法及作用

protected Object clone() //创建并返回此对象的一个副本。boolean equals(Object obj) //指示某个其他对象是否与此对象“相等”。protected void finalize() //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。Class&lt;? extends Object&gt; getClass()...

2019-01-28 17:24:15 1446

原创 【读书笔记】区块链相关

       在了解区块链之前,我们不得不先了解一个组织--密码朋克(CypherPunk)。这个组织是由一群密码天才组建的松散性联盟。他们认为,在互联网这个开放的电子信息时代,不要指望通过政府,公司或者其他组织对个人隐私进行保护,他们有必要行动起来,通过自己的编程来保护个人隐私。他们通过电子邮件,匿名分享自己的技术思想。很多实事证明,区块链的灵感与构思来自密码朋克成员过往的发明或不经意知识,经验...

2018-12-14 23:18:17 568

原创 【读书笔记】初识人工智能

       说到人工智能,大家就会觉得陌生又熟悉。陌生是因为很多人不太明白现在这么火的人工智能是怎么实现的?其工作的原理是什么?似乎涉及这方面的知识是遥不可及的,或是很难去理解的。熟悉就是这些年来人工智能的概念慢慢走进了我们的视野和生活。这两年很出名的美剧《西部世界》,百度的无人驾驶汽车,阿里的无人超市......等等这些“人工智能”正在进入我们的日常生活并且改变着我们的生活方式和观念。于是抱着...

2018-12-08 20:51:41 347

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除