- 博客(143)
- 收藏
- 关注
原创 IDEA快捷键大全 + 动图演示,提升效率
大佬的总结,引用,备忘IntelliJ IDEA 快捷键大全 + 动图演示_水滴技术的博客-CSDN博客
2022-04-22 10:10:56
811
原创 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
1501
原创 Lambda底层实现原理
大树底下好乘凉:https://segmentfault.com/a/1190000023747150https://www.cnblogs.com/fanguangdexiaoyuer/p/7729235.html
2021-04-09 11:23:58
373
原创 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
219
原创 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
658
原创 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
436
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
255
原创 Java中对象方法的调用过程&动态绑定(Dynamic Binding)
Java面向对象的最重要的一个特点就是多态, 而多态当中涉及到了一个重要的机制是动态绑定(Dynamic binding)。之前只有一个大概的概念, 没有深入去了解动态绑定的机理, 直到很多公司都问到了动态绑定的实现, 然后。。。就真的没有然后了。痛定思痛, 在<Core Java>找到了相关的章节,也算是对动态绑定的实现有了一个大概的了解。对象是Java中最重要的概念, 弄清楚对象方法的调用执行过程会对Java对象有更深层了理解。下面是<Core Java>中对调用过程
2021-01-14 11:51:52
699
原创 on java8 第六章 初始化和清理
第六章 初始化和清理初始化的顺序静态数据的初始化显式的静态初始化非静态实例初始化动态数组创建可变参数列表枚举类型初始化的顺序在类中变量定义的顺序决定了它们初始化的顺序。即使变量定义散布在方法定义之间,它们仍会在任何方法(包括构造器)被调用之前得到初始化。静态数据的初始化无论创建多少个对象,静态数据都只占用一份存储区域。static 关键字不能应用于局部变量,所以只能作用于属性(字段、域)。如果一个字段是静态的基本类型,你没有初始化它,那么它就会获得基本类型的标准初值。如果它是对象引用,那么它的默认
2020-12-29 09:17:15
152
原创 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
349
原创 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
133
原创 Python enumerate() 函数
主要用简化for循环用到循环变量的写法。(i=0, i++)Pythonenumerate() 函数描述语法参数返回值实例普通的 for 循环for 循环使用 enumeratePythonenumerate() 函数描述enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。Python 2.3. 以上版本可用,2.6 添加 start 参数。语法以下是..
2020-10-20 10:18:56
137
原创 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
1279
转载 python 使用 MoviePy 安装ImageMagick
python 使用 MoviePy时 安装ImageMagickhttps://www.cnblogs.com/KdeS/p/13204260.html
2020-10-17 14:13:47
1346
转载 Java8特性详解 lambda表达式 Stream
Java8特性详解 lambda表达式 Stream https://www.cnblogs.com/aoeiuv/p/5911692.html
2020-10-12 16:22:42
121
原创 操作系统基础篇
文章目录操作系统的演进多道程序设计操作系统五大功能操作系统相关概念并发性共享性虚拟性进程管理之进程实体为什么需要进程进程的实体进程控制块(PCB)进程与线程进程的五状态模型进程间的同步临界资源进程同步的原则进程同步的方法线程同步Linux的进程管理进程的类型进程的标记操作Linux进程的相关命令作业管理之进程调度进程调度概述进程调度算法作业管理之死锁死锁的产生死锁的四个必要条件预防死锁的方法存储管理之内存分配与回收内存分配的过程动态分区分配内存回收的过程操作系统的演进多道程序设计多道程序设计是指在
2020-10-09 23:55:12
240
原创 复用(on java8 第八章)
文章目录组合语法继承语法委托组合与继承的选择protected向上转型final关键字类初始化和加载继承和初始化本章小结代码复用是面向对象编程(OOP)最具魅力的原因之一。代码复用的两种实现方式:组合和继承组合语法把对象的引用(object references)放置在一个新的类里,这就使用了组合编译器不会为每个引用创建一个默认对象,这是有意义的,因为在许多情况下,这会导致不必要的开销。初始化引用有四种方法:当对象被定义时。这意味着它们总是在调用构造函数之前初始化。比如:生声明类的属性时:
2020-10-09 19:20:43
153
原创 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
460
原创 计算机组成原理实践
计算机组成原理实践文章目录先进先出算法(FIFO)最近最少使用算法 (LRU)最不经常使用算法(LFU)先进先出算法(FIFO)把高速缓存看做是一个先进先出的队列优先替换最先进入队列的字块最近最少使用算法 (LRU)优先淘汰一段时间内没有使用的字块有多种实现方法,一般使用双向链表把当前访问节点置于链表前面(保证链表头部节点是最近使用的)最不经常使用算法(LFU)优先淘汰最不经常使用的字块需要额外的空间记录字块的使用频率...
2020-10-03 14:34:15
258
原创 计算机概论之计算
计算机概论计算篇这里写自定义目录标题进制运算的基础进制概述二进制运算的基础二进制转换十进制:按权展开法十进制转换二进制有符号数与无符号数原码表示法二进制的补码表示法二进制的反码表示法定点数与浮点数定点数的表示方法浮点数的表示方法科学计数法![在这里插入图片描述](https://img-blog.csdnimg.cn/20201002202737179.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR
2020-10-02 20:58:34
179
原创 计算机概论之组成
这里写自定义目录标题计算机的总线总线的概述总线的分类片内总线系统总线数据总线地址总线控制总线总线的仲裁总线的仲裁方法链式查询计时器定时查询独立请求计算机的输入输出设备常见的输入输出设备输入输出接口的通用设计数据线状态线命令线CPU与IO设备的通信程序中断DMA(直接存储器访问)计算机的总线总线的概述提供了对外连接的接口不同设备可以通过USB接口进行连接连接的标准,促使外围设备接口的统一作用:解决不同设备之间的通信问题总线的分类片内总线高集成度芯片内部的信息传输线芯片内部的总线寄
2020-09-29 00:57:15
272
原创 计算机组成概述
计算机发展简史计算机发展的四个阶段第一个阶段:电子管计算机 第二次世界大战是电子管计算机产生的催化剂,英国为了解密德国海军的密文‘ 集成度小,空间占用大 功耗高,运行速度慢 操作复杂,更换程序需要接线。第二个阶段:晶体管计算机 集成度相对较高,空间占用相对小,功耗相对较低,运行速度较快,操作相对简单,交互更加方便第三个阶段:集成电路计算机...
2020-09-22 00:39:02
125
转载 Java中堆和栈创建对象的区别
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,因此,用堆保存数据时会得到更大的灵活性。变量所需的存储空间只有在运行时创建了对象之后才能确定。
2020-09-14 11:32:41
209
原创 详解为什么32位系统只能用4G内存
详解为什么32位系统只能用4G内存, https://blog.csdn.net/jack271/article/details/78875412?utm_source=app
2020-09-02 22:28:23
182
原创 EasyCode(代码生成器)
4、开始生成代码5、pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> ...
2020-05-11 09:57:04
4488
1
原创 线索化二叉树
概念对于n个结点的二叉树,在二叉链存储结构中有n+1个空链域,利用这些空链域存放在某种遍历次序下该结点的前驱结点和后继结点的指针,这些指针称为线索,加上线索的二叉树称为线索二叉树。这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种。注意:线索链...
2020-05-08 12:05:48
6227
原创 二叉树遍历查找
1)前序遍历:先输出父节点,再遍历左子树和右子树2)中序遍历:先遍历左子树,再输出父节点,再遍历右子树3)后序遍历:先遍历左子树,再遍历右子树,最后输出父节点4)小结:看输出父节点的顺序,就确定是前序,中序还是后序package com.atguigu.tree;public class BinaryTreeDemo { public static void mai...
2020-05-08 10:45:31
356
1
原创 二叉树
为什么需要树这种数据结构1)数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低画出操作示意图:2)链式存储方式的分析优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可,删除效率也很好)。缺...
2020-05-08 10:39:08
5999
原创 哈希表
一、什么是Hash表哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。记录的存储位置=f(关键字)这里的对应关系f称为散列函数,又称为哈希(Hash函数),采用散列技术将记录存储在一块连续的存储空间中,这...
2020-05-07 20:14:27
7855
原创 斐波那契查找
斐波那契查找就是在二分查找的基础上根据斐波那契数列进行分割的。在斐波那契数列找一个等于略大于查找表中元素个数的数F[n],将原查找表扩展为长度为F[n](如果要补充元素,则补充重复最后一个元素,直到满足F[n]个元素),完成后进行斐波那契分割,即F[n]个元素分割为前半部分F[n-1]个元素,后半部分F[n-2]个元素,找出要查找的元素在那一部分并递归,直到找到。斐波那契查找原理与二分查找相似...
2020-04-30 11:52:18
218
原创 插值查找
插值查找,有序表的一种查找方式。插值查找是根据查找关键字与查找表中最大最小记录关键字比较后的查找方法。插值查找基于二分查找,将查找点的选择改进为自适应选择,提高查找效率。1)插值查找原理介绍:插值查找算法类似于二分查找,不同的是插值查找每次从自适应 mid处开始查找。2)将折半查找中的求 mid索引的公式 , low表示左边索引 left, high表示右边索引 righ...
2020-04-29 18:10:31
6166
原创 二分查找
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列查找过程首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。...
2020-04-29 17:49:24
5983
原创 基数排序
基数排序介绍1)基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或 bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用2)基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法3)基数排序(Radix Sort)是桶排序的扩展...
2020-04-29 14:25:32
6050
原创 归并排序
归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之(divide - conquer);每个递归过程涉及三个步骤第一, 分解: 把待排序的 n 个元素的序列分解...
2020-04-28 15:05:24
5995
原创 快速排序
转一篇详细的介绍。https://blog.csdn.net/leoma2012/article/details/88711016问题: 快速排序为什么要从基准数的对面开始移动?如果选取最左边的数arr[left]作为基准数,那么先从右边开始可保证i,j在相遇时,相遇数是小于基准数的,交换之后temp所在位置的左边都小于temp。但先从左边开始,相遇数是大于基准数的,无法满足te...
2020-04-27 17:38:20
5967
原创 希尔排序法
希尔排序法基本思想:希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序法的示意图:...
2020-04-27 15:11:42
9093
原创 插入排序
插入排序(Insertion Sorting)的基本思想:把 n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有 n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。插入排序思路图: 括号内为有序表代码实现:packa...
2020-04-27 13:18:25
8633
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人