自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 G1垃圾收集器

G1垃圾收集器在讲G1垃圾收集器前可以先了解下G1垃圾收集器的背景知识,它在JDK 7 时确立项目目标,Oracle公司指定了该计划。直到JDK 7 Update 4时才被认为达到了商用程度。也被Oracle官方称为“全功能垃圾收集器”。G1的区域划分G1是一款主要面向服务端应用的垃圾收集器,开创了收集器面向局部收集的设计思路和基于Region的内存布局形式。它垃圾收集范围不再是整个新生代或老年代,而是可以面向堆内存任何部分来组成回收集,是哪块内存中存放的垃圾数量最多,回收收益最大就回收那块,这就是G

2021-08-20 22:00:39 183

原创 JVM运行时数据区

JVM运行时数据区今天工作上午就完成了,下午不能让经理看见我没事做啊,所以就翻着深入理解JAVA虚拟机看看。JAVA虚拟机在执行JAVA程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域各有自己的用户,创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则依赖用户线程的启动和结束而建立和销毁。为什么要学习java虚拟机呢?从解决问题的角度:JAVA因为有了自动内存管理机制不需要再写配对的delete/free代码,不容易出现内存泄漏和内存溢出的问题,也正是因为把控制

2021-08-06 22:16:21 123

原创 2021-07-25

策略模式详解最近公司培训聊到策略模式,打算记录下自己对策略模式的理解。先说下策略模式的概念:策略模式是一种定义一系列算法的方法,把使用算法的责任与算法本身分隔开,委派给不同的对象管理。一般一个新概念出现都是为解决某个问题而诞生的,那策略模式是解决什么问题呢?最常见的就是平常我们在实际开发中需要做一些逻辑判断,而如果写的代码有很多if-else会让代码显得很臃肿,策略模式解决了这个问题。下面通过一个例子来详细理解策略模式:场景:一个商场收银软件,营业员根据客户所购买商品的单价和数量,向客户收费。

2021-07-25 18:55:50 130

原创 Python使用Pillow和Tesseract识别图片文字

概述图像识别与文字处理是在生活中非常常见的一种场景,Python对于处理该问题有很多相关库来使用,这次用到两个非常重要的库:Pillow和Tesseract。这两个库互为补充,对互联网上的图片进行处理。Pillow执行第一步:清洗和过滤图像,Tesseract尝试将图像中的形状与库里面存储的文字相匹配。Tesseract安装需要配置环境变量,接下来演示下Tesseract安装过程:Tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/接

2021-06-19 23:02:41 857

原创 Scrapy爬虫框架结构及实例

Scrapy框架Scrapy介绍爬虫相关框架有很多,scrapy是目前python中使用最广泛的框架,主要是它的相关扩展组件很多,可配置和可扩展性非常高。Scrapy是一个基于Twisted的异步处理框架,是纯python实现的爬虫框架,使用它我们只需定制开发几个模块就可以轻松实现一个爬虫。Scrapy框架组件,数据流及项目结构介绍1.组件Engine: 引擎,处理整个系统的数据流处理,触发事务,是整个框架的核心。item: 项目,它定义了爬取结果的数据结构,爬取的数据会被赋值成该item

2021-06-06 21:57:59 696

原创 从想法到完成项目的历程

datasupporter数据分析及展示为什么做该项目从三月开始一直在筹备该项目,想法源自于去年一次Android课老师展示天气预报的一次实例,发现日常生活中的场景原来是这么实现的,勾起了我的好奇心。但由于当时即将毕业,面临着各种各样的问题,想法也就不了了之了。几个月之后要做毕业设计了,我想着正好借这个机会来完成这次想法。感谢在选择课题时导师的引导,因为当时我并不知道要做的是什么方向的,只知道要做个天气预报和路况信息相关的。老师是非常耐心的讲解了相关知识,我记得好像有三四个小时,有幸解了数据分析相关知识

2021-06-02 23:10:15 175

原创 求岛屿的最大面积java

求岛屿的最大面积给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,

2021-02-04 23:58:43 371

原创 剑指offer 面试题20: 表示数值的字符串

表示数值的字符串请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。重要的是掌握判断指向的字符是否为正确的判断条件。1.指针是否越界。 2.编写判断条件。本题主要考察对字符串的编程能力,主要对指针指向的数是否符合条件做判断。思路:1.定义一个指针,三个boolean变量 表示三个条件是否满足(A为整数,B为小

2021-01-28 23:26:57 76

原创 两个链表生成相加链表--牛客网算法题

两个链表生成相加链表题目:假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。给定两个这种链表,请生成代表两个整数相加值的结果链表。例如:链表 1 为 9->3->7,链表 2 为 6->3,最后生成新的结果链表为 1->0->0->0。示例1输入复制[9,3,7],[6,3]返回值复制{1,0,0,0}说下我的思路:1.相加因为有可能进位,所以是从后向前加,但是链表是单向链表,这时我们会想起栈这个数据结构。2.把两

2020-11-20 23:26:50 265

原创 CopyOnWriteArrayList详细描述

CopyOnWriteArrayList详细描述先把我们目的说下,首先我们自己做一个写时复制的线程安全List会怎么做,我们需要考虑以下几个问题:何时初始化list,初始化list元素个数为多少,list是有大小限制的吗?如何保证线程安全如何保证使用迭代器遍历list时的数据一致性?在java并发包JUC中的List只有CopyOnWriteArrayList,它是一个线程安全的ArrayList,对其进行的修改操作都是在底层的一个复制数组(快照)上进行的,也就是写时复制策略,下面是大致的类图

2020-11-19 22:46:55 539

原创 JUC并发包下原子操作类Atomic和LongAdder详解

Atomic和LongAdder详解Atomic顾名思义原子类,肯定是不可分割的,那JDK为什么要设计这样的类呢。这我们要讲到多线程问题了。当有多个线程时,访问同一个共享变量,如不经做一些安全措施将会发生一些不可描述的事。所以我们必须要对这个共享变量加锁,之前加锁都是Synchronized,但Synchronized有一些问题,它要经过用户态到内核态的调用,开销很大,这里不说Synchronized升级。开销很大怎么办呢,下面就出来我们要讲的重点了:CAS。全程:Compare and Swap,它是

2020-11-17 23:33:54 150

原创 加起来和为目标值的组合--去重剪枝

加起来和为目标值的组合–去重剪枝这道算法需要理解DFS深度优先遍历。深度优先搜素:采用递归方法,先沿着一条路搜到底,再递归会上一个节点,沿另一个方向搜索,依次类推。思想:一直往深处走,直到找到解或者走不下去为止。结合这道题,加起来和为目标值的组合。首先我们想到肯定要遍历,结合遍历到的数加起来是否等去目标值,但问题是一个数组中可能有多个组合等于目标值,结果中还不能包含重复组合,所以这道题非常适合用DFS思想来做。我们判断点在遍历到的数是否<=target,如果大于肯定错误,小于则加入到一个l

2020-11-16 16:18:10 409 2

原创 SSL作用及原理详解

SSL的作用及原理SSL是工作在运输层的协议,提供运输层安全的协议,目前有SSL和TLS协议在运输层提供安全,SSL在客户端和服务器双方连接阶段协商将使用的加密算法和密钥,以及客户端和服务器之间的鉴别,连接完成后,双方都使用协商好的会话密钥。那SSL是怎么保证安全的呢:1)密钥交换算法:为了交换经过鉴别和保密后的报文,客户端和服务器各需要一组加密用的密钥。2)加密/解密:客户端和服务器各需要协商的一组加秘密和解密算法。3)散列算法:SSL使用散列算法保证报文完整性(报文的鉴别)。4)压缩算法

2020-11-15 13:00:46 1397

原创 ThreadLocal原理及详解

ThreadLocal原理首先多线程访问同一个共享变量特别容易出现数据出错,为了保证线程安全,需要做一些同步的措施,同步的措施一般是加锁,有没有一种方式当访问这个变量时,会变成线程内部自己的变量,ThreadLocal就可以做这件事。其实ThreadLocal可以理解为一个工具,线程真正调用ThreadLocal存数据其实数据是存储在ThreadLocal类中:threadLocals和inheritableThreadLocals中的。这两个变量时一个map类型的,其中key存的是当前调用这个Thre

2020-11-15 00:09:37 148

原创 寻找第K大的数,快速排序的思路

题目:有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。输入[1,3,5,2,2],5,3返回值2首先快速排序要找到一个点,通过和这个点比较把小于这个点的数放到左边,反之 放到右边。最后返回left指针指向的索引。拿这个索引和K相比较,相等则返回该值,索引大于K,则在左边找,小于则在右边找。下面放代码。public class Finder {public int findKth

2020-11-13 20:46:11 921

空空如也

空空如也

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

TA关注的人

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