自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

心猿意碼

Talk is cheap. Show me the code.

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

原创 使用函数接口和枚举实现配置式编程

使用函数接口和枚举实现配置式编程

2022-06-22 14:10:03 304 1

原创 注意连接池的配置

druid连接池配置未生效,使用了默认连接池配置,导致mysql连接不够用,进而sql超时注意连接池的使用和参数配置优化

2022-04-22 10:27:32 581

原创 IDEA快捷键大全 + 动图演示,提升效率

大佬的总结,引用,备忘IntelliJ IDEA 快捷键大全 + 动图演示_水滴技术的博客-CSDN博客

2022-04-22 10:10:56 762

原创 mysql插入特殊汉字、字符报错

这里写自定义目录标题报错信息报错信息java.sql.BatchUpdateException: Incorrect string value: '\xF0\xA7\x9D\x81\xE6\xB5...' for column 'completion_content' at row 1 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAcc

2022-04-21 11:52:09 1466

转载 StringTable 字符串常量池

https://www.freesion.com/article/6130451957/

2021-06-21 11:23:34 303

原创 Lambda底层实现原理

大树底下好乘凉:https://segmentfault.com/a/1190000023747150https://www.cnblogs.com/fanguangdexiaoyuer/p/7729235.html

2021-04-09 11:23:58 356

原创 python 读取excel和CSV 并保存到mysql数据库

from files import ScanFileimport pandas as pdfrom sqlalchemy import create_enginedef do_csv(): engine = create_engine('mysql+pymysql://root:root@localhost:3306/test') dir = r"D:\ext.yucaixiang\Desktop\202005-202012购酒险数据" scan = ScanFile(dir

2021-03-31 15:12:48 204

原创 python 压缩文件解压到指定文件夹

import zipfileimport osdef unzip_file(path): filenames = os.listdir(path)#获取目录下所有文件名 filepath1 = os.path.join(path, "normal") filepath2 = os.path.join(path, "jdsc") os.mkdir(filepath1) os.mkdir(filepath2) for filename in filename

2021-03-31 15:10:25 643

原创 python 读取文件目录下所有文件

import osclass ScanFile(object): def __init__(self,directory,prefix=None,postfix=None): self.directory=directory self.prefix=prefix self.postfix=postfix def scan_files(self): files_list=[] for dirpath,d..

2021-03-31 15:09:02 422 2

原创 java8 Optional

JDK 提供三个静态方法来构造一个Optional:1.Optional.of(T value),该方法通过一个非null的value来构造一个Optional,返回的Optional包含了value这个值。对于该方法,传入的参数一定不能为null,否则便会抛出NullPointerException。2.Optional.ofNullable(T value),该方法和of方法的区别在于,传入的参数可以为null—— 但是前面 javadoc 不是说Optional...

2021-01-28 16:53:13 245

原创 Java中对象方法的调用过程&动态绑定(Dynamic Binding)

Java面向对象的最重要的一个特点就是多态, 而多态当中涉及到了一个重要的机制是动态绑定(Dynamic binding)。之前只有一个大概的概念, 没有深入去了解动态绑定的机理, 直到很多公司都问到了动态绑定的实现, 然后。。。就真的没有然后了。痛定思痛, 在<Core Java>找到了相关的章节,也算是对动态绑定的实现有了一个大概的了解。对象是Java中最重要的概念, 弄清楚对象方法的调用执行过程会对Java对象有更深层了理解。下面是<Core Java>中对调用过程

2021-01-14 11:51:52 669

原创 on java8 第六章 初始化和清理

第六章 初始化和清理初始化的顺序静态数据的初始化显式的静态初始化非静态实例初始化动态数组创建可变参数列表枚举类型初始化的顺序在类中变量定义的顺序决定了它们初始化的顺序。即使变量定义散布在方法定义之间,它们仍会在任何方法(包括构造器)被调用之前得到初始化。静态数据的初始化无论创建多少个对象,静态数据都只占用一份存储区域。static 关键字不能应用于局部变量,所以只能作用于属性(字段、域)。如果一个字段是静态的基本类型,你没有初始化它,那么它就会获得基本类型的标准初值。如果它是对象引用,那么它的默认

2020-12-29 09:17:15 146

原创 Objects.requireNonNull(T obj, String message)定制你的NPE(空指针)异常

IDEA中习惯跟踪源码实现逻辑,多次碰到Objects.requireNonNull(T obj)这个方法,改方法主要用于提早判断对象是否为空,以便更早的抛出NPE平时小组开发中强调程序健壮性,不允许组员的代码中出现明显的NPE,这样多数时候都要写判空逻辑,抛出自定义的异常我们看下具体的源码:/** * Checks that the specified object reference is not {@code null}. * This method is designed prim

2020-12-28 15:48:34 335

原创 python 转exe -pyinstaller参数介绍

pyinstaller相关参数-F, –onefile 打包一个单个文件,如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用 -D, –onedir 打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,我个人比较推荐这样,代码易于维护 -K, –tk 在部署时包含 TCL/TK -a, –ascii 不包含编码.在支持Unicode的python版本上默认包含所有的编码. -d, –debug 产生debug版本的可执行文件 -w,–windowe

2020-11-26 09:56:14 119

原创 Python enumerate() 函数

主要用简化for循环用到循环变量的写法。(i=0, i++)Pythonenumerate() 函数描述语法参数返回值实例普通的 for 循环for 循环使用 enumeratePythonenumerate() 函数描述enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。Python 2.3. 以上版本可用,2.6 添加 start 参数。语法以下是..

2020-10-20 10:18:56 123

原创 moviepy学习笔记--python视频剪辑

中文文档http://doc.moviepy.com.cn/index.html#id3堆叠和连接剪辑顺序播放 concatenate_videoclipsfrom moviepy.editor import VideoFileClip, concatenate_videoclipsclip1 = VideoFileClip("myvideo.mp4")clip2 = VideoFileClip("myvideo2.mp4").subclip(50,60)clip3 = VideoFil

2020-10-18 20:56:46 1202

转载 python 使用 MoviePy 安装ImageMagick

python 使用 MoviePy时 安装ImageMagickhttps://www.cnblogs.com/KdeS/p/13204260.html

2020-10-17 14:13:47 1325

转载 Java8特性详解 lambda表达式 Stream

Java8特性详解 lambda表达式 Stream https://www.cnblogs.com/aoeiuv/p/5911692.html

2020-10-12 16:22:42 111

原创 操作系统基础篇

文章目录操作系统的演进多道程序设计操作系统五大功能操作系统相关概念并发性共享性虚拟性进程管理之进程实体为什么需要进程进程的实体进程控制块(PCB)进程与线程进程的五状态模型进程间的同步临界资源进程同步的原则进程同步的方法线程同步Linux的进程管理进程的类型进程的标记操作Linux进程的相关命令作业管理之进程调度进程调度概述进程调度算法作业管理之死锁死锁的产生死锁的四个必要条件预防死锁的方法存储管理之内存分配与回收内存分配的过程动态分区分配内存回收的过程操作系统的演进多道程序设计多道程序设计是指在

2020-10-09 23:55:12 185

原创 复用(on java8 第八章)

文章目录组合语法继承语法委托组合与继承的选择protected向上转型final关键字类初始化和加载继承和初始化本章小结代码复用是面向对象编程(OOP)最具魅力的原因之一。代码复用的两种实现方式:组合和继承组合语法把对象的引用(object references)放置在一个新的类里,这就使用了组合编译器不会为每个引用创建一个默认对象,这是有意义的,因为在许多情况下,这会导致不必要的开销。初始化引用有四种方法:当对象被定义时。这意味着它们总是在调用构造函数之前初始化。比如:生声明类的属性时:

2020-10-09 19:20:43 144

原创 python爬虫学习笔记

文章目录Requestsrequests 的底层实现其实就是 urllib安装方式基本GET请求(headers参数 和 parmas参数)基本POST请求(data参数)代理(proxies参数)Cookies 和 Sission寻找登录的post地址处理HTTPS请求 SSL证书验证请求重试数据提取Python 的 re 模块(正则提取)XPATH和LXML类库提取数据XPathlxml库实现爬虫的套路多线程爬虫Queue(队列对象)代码案例Selenium和PhantomJS基本使用定位UI元素方法

2020-10-06 02:07:01 408

原创 计算机组成原理实践

计算机组成原理实践文章目录先进先出算法(FIFO)最近最少使用算法 (LRU)最不经常使用算法(LFU)先进先出算法(FIFO)把高速缓存看做是一个先进先出的队列优先替换最先进入队列的字块最近最少使用算法 (LRU)优先淘汰一段时间内没有使用的字块有多种实现方法,一般使用双向链表把当前访问节点置于链表前面(保证链表头部节点是最近使用的)最不经常使用算法(LFU)优先淘汰最不经常使用的字块需要额外的空间记录字块的使用频率...

2020-10-03 14:34:15 247

原创 计算机概论之计算

计算机概论计算篇这里写自定义目录标题进制运算的基础进制概述二进制运算的基础二进制转换十进制:按权展开法十进制转换二进制有符号数与无符号数原码表示法二进制的补码表示法二进制的反码表示法定点数与浮点数定点数的表示方法浮点数的表示方法科学计数法![在这里插入图片描述](https://img-blog.csdnimg.cn/20201002202737179.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR

2020-10-02 20:58:34 170

原创 计算机概论之组成

这里写自定义目录标题计算机的总线总线的概述总线的分类片内总线系统总线数据总线地址总线控制总线总线的仲裁总线的仲裁方法链式查询计时器定时查询独立请求计算机的输入输出设备常见的输入输出设备输入输出接口的通用设计数据线状态线命令线CPU与IO设备的通信程序中断DMA(直接存储器访问)计算机的总线总线的概述提供了对外连接的接口不同设备可以通过USB接口进行连接连接的标准,促使外围设备接口的统一作用:解决不同设备之间的通信问题总线的分类片内总线高集成度芯片内部的信息传输线芯片内部的总线寄

2020-09-29 00:57:15 262

原创 计算机组成概述

计算机发展简史计算机发展的四个阶段第一个阶段:电子管计算机 第二次世界大战是电子管计算机产生的催化剂,英国为了解密德国海军的密文‘ 集成度小,空间占用大 功耗高,运行速度慢 操作复杂,更换程序需要接线。第二个阶段:晶体管计算机 集成度相对较高,空间占用相对小,功耗相对较低,运行速度较快,操作相对简单,交互更加方便第三个阶段:集成电路计算机...

2020-09-22 00:39:02 113

转载 Java中堆和栈创建对象的区别

栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,因此,用堆保存数据时会得到更大的灵活性。变量所需的存储空间只有在运行时创建了对象之后才能确定。

2020-09-14 11:32:41 201

原创 详解为什么32位系统只能用4G内存

详解为什么32位系统只能用4G内存, https://blog.csdn.net/jack271/article/details/78875412?utm_source=app

2020-09-02 22:28:23 171

原创 EasyCode(代码生成器)

4、开始生成代码5、pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> ...

2020-05-11 09:57:04 4459 1

原创 线索化二叉树

概念对于n个结点的二叉树,在二叉链存储结构中有n+1个空链域,利用这些空链域存放在某种遍历次序下该结点的前驱结点和后继结点的指针,这些指针称为线索,加上线索的二叉树称为线索二叉树。这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种。注意:线索链...

2020-05-08 12:05:48 6207

原创 二叉树遍历查找

1)前序遍历:先输出父节点,再遍历左子树和右子树2)中序遍历:先遍历左子树,再输出父节点,再遍历右子树3)后序遍历:先遍历左子树,再遍历右子树,最后输出父节点4)小结:看输出父节点的顺序,就确定是前序,中序还是后序package com.atguigu.tree;public class BinaryTreeDemo { public static void mai...

2020-05-08 10:45:31 332 1

原创 二叉树

为什么需要树这种数据结构1)数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低画出操作示意图:2)链式存储方式的分析优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可,删除效率也很好)。缺...

2020-05-08 10:39:08 5990

原创 哈希表

一、什么是Hash表哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。记录的存储位置=f(关键字)这里的对应关系f称为散列函数,又称为哈希(Hash函数),采用散列技术将记录存储在一块连续的存储空间中,这...

2020-05-07 20:14:27 7519

原创 斐波那契查找

斐波那契查找就是在二分查找的基础上根据斐波那契数列进行分割的。在斐波那契数列找一个等于略大于查找表中元素个数的数F[n],将原查找表扩展为长度为F[n](如果要补充元素,则补充重复最后一个元素,直到满足F[n]个元素),完成后进行斐波那契分割,即F[n]个元素分割为前半部分F[n-1]个元素,后半部分F[n-2]个元素,找出要查找的元素在那一部分并递归,直到找到。斐波那契查找原理与二分查找相似...

2020-04-30 11:52:18 208

原创 插值查找

插值查找,有序表的一种查找方式。插值查找是根据查找关键字与查找表中最大最小记录关键字比较后的查找方法。插值查找基于二分查找,将查找点的选择改进为自适应选择,提高查找效率。1)插值查找原理介绍:插值查找算法类似于二分查找,不同的是插值查找每次从自适应 mid处开始查找。2)将折半查找中的求 mid索引的公式 , low表示左边索引 left, high表示右边索引 righ...

2020-04-29 18:10:31 6158

原创 二分查找

二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列查找过程首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。...

2020-04-29 17:49:24 5965

原创 基数排序

基数排序介绍1)基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或 bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用2)基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法3)基数排序(Radix Sort)是桶排序的扩展...

2020-04-29 14:25:32 6041

原创 归并排序

归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之(divide - conquer);每个递归过程涉及三个步骤第一, 分解: 把待排序的 n 个元素的序列分解...

2020-04-28 15:05:24 5988

原创 快速排序

转一篇详细的介绍。https://blog.csdn.net/leoma2012/article/details/88711016问题: 快速排序为什么要从基准数的对面开始移动?如果选取最左边的数arr[left]作为基准数,那么先从右边开始可保证i,j在相遇时,相遇数是小于基准数的,交换之后temp所在位置的左边都小于temp。但先从左边开始,相遇数是大于基准数的,无法满足te...

2020-04-27 17:38:20 5956

原创 希尔排序法

希尔排序法基本思想:希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序法的示意图:...

2020-04-27 15:11:42 9079

原创 插入排序

插入排序(Insertion Sorting)的基本思想:把 n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有 n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。插入排序思路图: 括号内为有序表代码实现:packa...

2020-04-27 13:18:25 8623

空空如也

空空如也

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

TA关注的人

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