- 博客(33)
- 收藏
- 关注

原创 数据结构-红黑树-java实现红黑树
什么是红黑树?红黑树为一种特殊的二叉查找树,但相较于二叉查找树,红黑树自平衡的二叉查找树。红黑树和二叉平衡树的区别1、红黑树放弃了追求完全平衡,追求大致平衡,在与平衡二叉树的时间复杂度相差不大的情况下,保证每次插入最多只需要三次旋转就能达到平衡,实现起来也更为简单。2、平衡二叉树追求绝对平衡,条件比较苛刻,实现起来比较麻烦,每次插入新节点之后需要旋转的次数不能预知。所以红黑树有着比二叉平...
2019-12-02 12:09:37
610
4

原创 java集合类总结
集合类简介java集合类是用来存放某类对象的。集合类有一个共同特点,就是它们只容纳对象(实际上是对象名,即指向地址的指针)。这一点和数组不同,数组可以容纳对象和简单数据。如果在集合类中既想使用简单数据类型,又想利用集合类的灵活性,就可以把简单数据类型数据变成该数据类型类的对象,然后放入集合中处理,但这样执行效率会降低。集合类容纳的对象都是Object类的实例,一旦把一个对象置入集合类中,它的类...
2019-11-24 19:45:49
333
原创 ElasticSearch使用IK分词器自定义分词不起作用
问题ElasticSearch安装IK分词器后,写了一个自己的自定义分词但是配置之后使用GET _analyze{ "analyzer": "ik_max_word", "text": "超级挖槽"}结果{ "tokens" : [ { "token" : "超级", "start_offset" : 0, "end_offset" : 2, "type" : "CN_WORD", "position" :
2020-06-14 18:41:55
7228
7
原创 使用 Mybatis Generator 生成mybatis所需要的配置代码
1、导入依赖包在maven中添加依赖<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version></dependency>在maven插件中添加<plugins>
2020-05-09 13:57:10
616
转载 并发编程辅助类CountDownLatch、CyclicBarrier和Semaphore
一.CountDownLatch用法CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch类只提供了一个构造器:public CountDownLatch(int count) { };...
2020-03-26 19:55:04
219
转载 为什么重写equals还要重写hashcode?
equals()和hashcode()是java.lang.Object中提供的用以对象比较的两个重要方法,下面是其定义及默认实现:public boolean equals(Object obj) { return (this == obj); }:用以判断变量参数与当前实例是否相等,JDK默认实现是基于对象内存地址是否相同,如果两个对象内存地址相同,则表示两个对象相同。public ...
2020-03-25 15:54:33
209
转载 Java并发编程:线程池的使用
一.Java中的ThreadPoolExecutor类java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。下面我们来看一下ThreadPoolExecutor类的具体实现源码。在ThreadPoolExecutor类中提供了四个构造方法:public class ThreadPoo...
2020-03-12 21:33:36
111
原创 Jsoup和JsoupXpath来解析html和xml文件
Jsoup介绍jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。同时也可以使用jsoup来解析xml文件主要功能从一个URL,文件或字符串中解析HTML使用DOM或CSS选择器来查找、取出数据使用DOM或CSS选择器来查找、取出数据可操作...
2020-02-20 16:05:14
893
原创 JAVA解析和创建XML文件的四种方法(三)
四种方法的比较一、DOM优点:1、形成了树结构,有助于更好的理解、掌握,且代码容易编写。2、解析过程中,树结构保存在内存中,方便修改。缺点:1、由于文件是一次性读取,所以对内存的耗费比较大。2、如果XML文件比较大,容易影响解析性能且可能会造成内存溢出。二、SAX优点:1、采用事件驱动模式,对内存耗费比较小。2、适用于只处理XML文件中的数据时。缺点:1、编码比较麻烦。...
2020-02-08 19:54:40
304
原创 JAVA解析和创建XML文件的四种方法(二)
三、DOM4JDOM4J解析xml文件public class DOM4Jtest { public...
2020-02-08 19:43:41
343
原创 JAVA解析和创建XML文件的四种方法(一)
JAVA自带的两种解析方式一、DOM1、DOM解析xml文件首先创建一个xml文件<?xml version="1.0"?><students> <student id="1"> <name>小民</name> <age>93</age> </stud...
2020-02-08 18:00:18
661
原创 数据结构-哈夫曼编码java实现
1.哈夫曼编码是一种可变字长编码如果一组编码中任一编码都不是其他任何一个编码的前缀,我们称这组编码为前缀编码。哈夫曼树可用于构造最短的不等长编码方案。2.算法流程(1)根据给定的n个权值{w1,w2,w3…,wn}构成n棵二叉树的集合F={T1,T2,…Tn},其中每棵二叉树Ti中只有一个带权为wi的根结点,其左右子树均空。(2)在F中选取两棵根结点的权值最小的树作为左右子树构造一棵新的二...
2019-12-21 15:49:46
1181
1
原创 十大经典排序算法总结
1、选择排序最容易想到的排序算法,首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。public void selectionSort(int[] array){ if(array.length==0) return ; for (int ...
2019-12-15 13:12:12
317
原创 java多线程基础(四)ReadWriteLock读写锁
ReadWriteLockReadWriteLock也是一个接口,在它里面只定义了两个方法:public interface ReadWriteLock { /** * Returns the lock used for reading. * * @return the lock used for reading. */ Lock rea...
2019-12-10 10:41:44
299
原创 java多线程基础(三)线程同步
什么是线程同步多线程共享数据时,会发生线程不安全的情况,多线程共享数据必须同步。 线程同步其实就是一种等待机制,多个线程需要同时访问同一个对象,则线程进入这个对象的等待池(wait pool)形成队列,等待前面的线程使用完毕后,下一个线程再使用。来看以下例子:public class ThreadSafeTest implements Runnable{ int num=100; ...
2019-12-09 23:13:27
1038
原创 java多线程基础(二)
进程joinThread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行public class runTest implements Runnable { private int time; @Override public void run() { time = 10; do{ t...
2019-12-08 16:59:11
303
原创 java多线程基础(一)
进程和线程的概念进程就是操作系统中执行的一个程序,操作系统以进程为单位分配存储空间,每个进程都有自己的地址空间、数据栈以及其他用于跟踪进程执行的辅助数据,操作系统管理所有进程的执行,为它们合理的分配资源。一个进程还可以拥有多个并发的执行线索,简单的说就是拥有多个可以获得CPU调度的执行单元,这就是所谓的线程。由于线程在同一个进程下,它们可以共享相同的上下文,因此相对于进程而言,线程间的信息共享...
2019-12-08 11:52:36
266
原创 用Java解压/压缩文件
ZipOutputStream进行文件的压缩由于一个文件如果是文件夹会有很多子文件所以需要采用递归的方式进行压缩public void zip(String zipFileName, File inputFile) throws Exception{ //zipFileName为生成压缩文件的目录 inputFile为需要压缩的文件 ZipOutputStream out...
2019-12-05 22:53:48
344
原创 操作系统进程调度算法(c语言实现)
进程调度算法一、先来先服务(FCFS)基本思想:先到达的进程先进入就绪队列,先进行调度的原则。非抢占方式。二、短作业优先(SJF)基本思想:根据进程中的执行时间,选取执行时间最短的作业优先调度;可有抢占或非抢占方式。三、优先权高者优先(HPF)基本思想:系统根据作业的优先权进行作业调度,每次选取优先权高的作业优先调度。作业的优先权通常用一个整数表示,也叫做优先数。可有抢占或非抢占方式。...
2019-12-03 17:15:00
64550
27
转载 java 异常捕捉 ( try catch finally )注意事项
原文:http://www.blogjava.net/fancydeepin/archive/2012/07/08/382508.html前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理? finally 体遇到 return 怎么办?finally 体里有 System.exit() 方法怎么处理?当 catch 和 finally ...
2019-11-29 19:44:17
372
原创 Java中浮点数运算不准确的原因及解决方案
问题java中执行以下代码预期结果肯定是0.1System.out.println(1.0 - 0.9);但事实上运行结果为原因Java中的小数使用double和float表示,小数属于浮点型(默认为double)。对于float型的值,则要在数字后加f或F,如12.3F,它在机器中占32位,4个字节来存储,表示精度较低。double是64位。那么一个小数在Java中是如何存储的...
2019-11-18 15:41:28
4311
原创 数据结构-平衡二叉搜索树-java实现平衡二叉搜索树添加和删除节点
为什么要创建平衡二叉搜索树当一个二叉搜索树每个结点的C(i)为该结点的层次数。最坏情况下,当先后插入的关键字有序时,构成的二叉排序树蜕变为单支树,树的深度为其平均查找长度(n+1)/2(和顺序查找相同),最好的情况是二叉排序树的形态和折半查找的判定树相同,其平均查找长度和log 2 (n)成正比。所以要创建一个尽量平衡的树降低查找时间复杂度平衡二叉搜索树的数据结构平衡二叉树定义(AVL)...
2019-11-17 23:42:35
566
原创 数据结构-二叉树-二叉搜索树
一、什么是二叉搜索树二叉搜索树本质还是二叉树,但它在不空时添加节点,它左子树上所有的元素都小于根节点的元素,而根节点右子树上所有的元素都大于根节点的元素。通过以上方法建的树的中序遍历是从小到大的序列,所以二叉搜索树又称之为二叉排序树。二、二叉搜索树的基本操作2.1二叉搜索树插入节点由于二叉搜索树仍然是二叉树,所以先建立二叉树类public class tree { priva...
2019-11-17 22:20:34
783
原创 二叉搜索树的后序遍历序列-牛客网剑指offer
二叉搜索树的后序遍历序列题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路(1)题中首先给出了一数组并要求判断是不是二叉搜索树的后序遍历结果,那么可知,如果他真的时一个二叉搜索树的后序遍历结果,那么对这个数组排序之后得到的一定是这个二叉搜索树的中序遍历结果。(2)现在就相当于已知了一个二叉...
2019-11-11 18:43:57
411
原创 递归、动态规划、回溯法解决整数划分问题,并输出所有划分情况
整数的分划问题。如,对于正整数n=6,可以分划为:65+14+2, 4+1+13+3, 3+2+1, 3+1+1+12+2+2, 2+2+1+1, 2+1+1+1+11+1+1+1+1+1+1现在的问题是,对于给定的正整数n,编写算法打印所有划分。用户从键盘输入 n (范围1~10)程序输出该整数的所有划分。递归算法在正整数a的不同划分中,将最大加数n不大于m的划分个数记为...
2019-11-08 21:05:34
2460
原创 回溯法解决字符串排序的问题
题目(1)字符串的排列输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思路:回溯法,每次先固定第一个字符,然后求剩余序列的排列。而求剩余字符排列时跟原问题一样,此时可以递归回去。...
2019-11-08 19:36:39
838
原创 数据结构-二叉树-二叉树的前序、中序、后序遍历(通过递归与非递归方法实现)、层序遍历
首先创建树类public class tree { private Object data; private tree left; private tree right; public Object getData() { return data; } public void setData(Object data) { ...
2019-11-08 17:50:15
429
转载 HTTP 协议入门
HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点。本文介绍 HTTP 协议的历史演变和设计思路。一、HTTP/0.9HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。最早版本是1991年发布的0.9版。该版本极其简单,只有一个命令GET。...
2019-10-29 22:57:23
216
原创 java类与对象
1.类的概念活在当下的程序员应该都听过"面向对象编程"一词,也经常有人问能不能用一句话解释下什么是"面向对象编程",我们先来看看比较正式的说法。"把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(genera...
2019-10-28 20:37:11
238
原创 计算机组成原理第一章总结
第一章计算机系统的绪论1.1计算机的分类1.2计算机的发展简史1.3计算机的硬件硬件组成运算器存储器控制器适配器与输入输出设备1.4计算机的软件1.5 计算机系统的层次结构小结生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants1.1计算机的分类电子计算机分为两大类:电子模拟计算机和电子数字计算机。电子模拟计算机应用范围较小,电子数字计算机近似于人类的“思维过程”,所...
2019-10-28 20:35:38
668
原创 JavaScript实现减速返回顶部
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><script type="text/javascript"> fun...
2019-10-17 16:35:15
253
原创 jsp include file=“”使用html时出现乱码
以下时html代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body>我是html页面</body></html>...
2019-10-17 16:10:12
455
jdk-21window安装版
2024-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人