自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java web上传下载文件模块

基于java web的文件上传下载工具初步构想是实现从页面选择上传路径,若不选择,则上传到默认路径,选择上传的文件,点击上传,上传成功。下载同理,若失败,跳转到提示失败的页面。本项目解决了中文乱码问题完整项目链接:https://github.com/Hollake/summit_file建议直接下载项目进行实操,注意需要自己更换默认路径等,不更换必须填写路径上传界面示意图下载界面示意图文件上传代码其思想为从页面获取表单数据,获得文件等相应信息,进行读取上传。

2020-12-26 10:29:25 499 1

原创 IDEA Spring小Demo快速启动配置文件

创建项目File-->new-->Project接着选择Spring,点击Next接着创建工程,进行命名整个文件结构如下图在根目录src下创建spring的xml文件,内容如下,灰色部分可以直接删除<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:/..

2020-07-22 12:24:29 355

原创 并发和并行区别

并发:一段时间内多个程序可以运行,一个CPU即可并行:一个时间点内多个程序可以运行,得多个CPU并发只要满足某个时间段多个程序一起运行即可,通过CPU的调度,看起来好像多个程序一起运行。并行,指的的是某一瞬间,多个程序一起运行,单个CPU不能满足条件。...

2019-12-14 11:18:01 809 1

转载 解决pip安装时速度慢的问题

临时使用:可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider,这样就会从清华这边的镜像去安装pyspider库。...

2019-12-05 22:04:43 363

原创 有关LSTM的相关介绍

https://mp.weixin.qq.com/s/aV9Rj-CnJZRXRm0rDOK6gghttps://www.zhihu.com/question/41949741?sort=created

2019-10-24 09:58:47 232

原创 面试常见代码题目

目录最长公共子序列最长公共子串最长上升子序列最长连续上升子序列最长公共前缀最大子序列和无重复字符的最长子串大数相加大数相乘链表大数相加两数之和删除有序链表中的重复元素(只保留一个重复元素)数组去重一个数组奇偶分开,偶数在前奇数在后(不要求相对有序)一个数组奇偶分开,偶数在前奇数在后(要求变换前后相对有序)数组中除了两个数都只出现一次,...

2019-10-08 10:08:41 2602 1

原创 CentOS下安装并使用nDPI

参考https://www.cnblogs.com/vancasola/p/9817283.htmlnDPI的环境依赖项安装GNU autotools/libtool$ yum install autotools$ yum install libtoolgawk$ yum install gawkgcc$ yum install gcc一些依赖集$ yum i...

2019-09-24 20:32:23 1350 1

转载 Mysql主从同步(1) - 概念和原理介绍 以及 主从/主主模式 部署记录

Mysql复制概念Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从...

2019-09-07 17:02:26 216

原创 二叉树相关题目(不定时更新中)

二叉树前序,中序,后序递归非递归二叉树的前序遍历、中序遍历、后序遍历---java递归非递归实现 //前序遍历 public List<Integer> preorderTraversal(TreeNode root) { List<Integer> list = new ArrayList<>(); St...

2019-09-04 12:22:31 1733

原创 员工薪水排序问题(自己看错题系列)

题目描述:某公司中有N名员工。给定所有员工工资的清单,财务人员要按照特定的顺序排列员工的工资。他按照工资的频次降序排列,即给定清单中所有频次较高的工资将在频次较低的工资之前出现。如果相同数量的员工都有相同的工资,则将按照给定清单中该工资第一次出现的顺序排列。输入:该函数/方法的输入包括两个参数num(一个整数,表示员工的人数)和salaries(一个正整数列表,表示N名员工的工资)。输...

2019-09-03 14:59:57 4292 4

原创 旋转正方形矩阵

旋转正方形矩阵【题目】 给定一个整型正方形矩阵matrix,请把该矩阵调整成顺时针旋转90度的样子。【要求】 额外空间复杂度为O(1)。详细解释左神思路代码 public void rotate(int[][] matrix) { int a = 0;//表示正方形矩阵的起点的行号 int b = 0;//表示正方形矩阵的起点的列...

2019-09-03 11:51:45 525

原创 大数相加,大数相乘

大数相加大数相加的核心思想就是对应位置的数相加后,再加上一次计算结果的进位,得到结果后,结果%10得到当前位置的数,结果/10得到进位,周而复始。 public static String add(String s1,String s2) { StringBuffer res = new StringBuffer(); s1 = new String...

2019-08-29 15:52:42 439

转载 关于同步,异步,阻塞,非阻塞,IOCP/epoll,select/poll,AIO ,NIO ,BIO的总结

昨天面试的时候没有答上来同步与异步,阻塞与非阻塞的区别,回来搜了一下,发现这篇文章写的不错,转载学习一下,链接如下:https://blog.csdn.net/chen8238065/article/details/48315085相关资料IO基本概念Linux环境同步异步阻塞非阻塞同步与异步阻塞与非阻塞IO模型Reference Link阻塞IO模型非阻塞IO模型IO复用模...

2019-08-14 16:37:00 409 1

原创 单源最短路径算法Dijkstra算法Java实现

最近在找工作,把自己当时参加比赛用的最短路径算法复习一下,简单实现一下图如下:输入和输出数据:Input:6 91 2 11 3 122 3 92 4 33 5 54 3 44 5 134 6 155 6 4Output:0 1 8 4 13 17代码:package arithmetic;import java.uti...

2019-08-12 14:48:53 1568

原创 多重背包问题和01背包问题

多重背包问题相比01背包,限定了物品件数,求容量一定的情况下,价值最大多重背包代码import java.util.Scanner;public class Main1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (...

2019-08-05 10:07:59 549

原创 动态规划之数字三角形---Java

题目输入:输入格式: 5 //表示三角形的行数 接下来输入三角形 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5在上面的数字三角形中寻找一条...

2019-07-19 15:48:10 1734 4

原创 Socket通信case---Java

使用Socket实现客户端和服务器端的通信,要求客户端发送数据后能够回显相同的数据。服务器端:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocke...

2019-07-16 10:51:31 207

转载 Innodb中的事务隔离级别和锁的关系

原文链接美团技术团队:https://tech.meituan.com/2014/08/20/innodb-lock.html前言我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过...

2019-07-03 14:27:34 201

原创 讲一下Java的虚拟机

讲一下Java的虚拟机 这个问题这样问太大了,今天看到有问这个问题,我在想应该怎么回答,我认为可以先对JVM内存区域进行介绍,讲到堆以后就顺带着讲垃圾回收算法,既然要垃圾回收,那么怎么判断对象已死?,那么接着可以讲一下常见或者自己熟悉的垃圾回收器。我觉得这样应该就差不多了首先对于JVM的内存区域来说,分为程序计数器,虚拟机栈,本地方法栈,堆和永久代,在JDK1.8中取消了永久代...

2019-06-25 18:15:40 224

原创 给一个数组,把偶数放到左边,奇数放到右边(有序和无序)

思路:设置两个指针,一个less一个more,如果当前less位置的元素为偶数,那么和more位置的元素交换位置,more--,接着继续判断交换过来的元素是否是偶数,如果继续是偶数,那么继续和more位置的元素交换,一直循环到less>=more,复杂度为O(N)代码如下 public static void reOrderArray(int[] arr) { i...

2019-06-24 22:24:53 5390 1

原创 多线程交替打印AB或者字符串,生产者消费者,死锁等例子

目录使用wait和notify实现生产者消费者使用阻塞队列来实现生产者消费者模式两线程交替打印AB简单死锁例子这个也是交替打印AB交替打印字符串,例如:hello world使用wait和notify实现生产者消费者public class Main2 { public static void main(String[] args) { ...

2019-06-24 21:45:38 2273

原创 关于Mysql组合索引、覆盖索引、优化器不使用索引等学习总结

前言首先捋清一下各种索引关系单列索引和组合索引索引分为单列索引(主键索引,唯一索引,普通索引)和组合索引。 单列索引:一个索引只包含一个列,一个表可以有多个单列索引。 组合索引:一个组合索引包含两个或两个以上的列。聚集索引和辅助索引接着说,对于Mysql的InnoDB 存储引擎来说,在绝大多数情况下使用 B+ 树建立索引,这是关系型数据库中查找最为常用和有效的索引,但是 B+...

2019-06-24 16:25:38 880

转载 MySQL高级知识(七)——索引面试题分析

这么好的文章贴出来大家一起学习前言:该篇随笔通过一些案例,对索引相关的面试题进行分析。0.准备#1.创建test表(测试表)。drop table if exists test;create table test(id int primary key auto_increment,c1 varchar(10),c2 varchar(10),c3 varchar(10),...

2019-06-24 13:28:25 377

转载 『浅入浅出』MySQL 和 InnoDB

这文章写的真的是太好了,虽然文章比较长,但是真的是通俗易懂,给大佬递茶系列,原文链接:『浅入浅出』MySQL 和 InnoDB作为一名开发人员,在日常的工作中会难以避免地接触到数据库,无论是基于文件的 sqlite 还是工程上使用非常广泛的 MySQL、PostgreSQL,但是一直以来也没有对数据库有一个非常清晰并且成体系的认知,所以最近两个月的时间看了几本数据库相关的书籍并且阅读了 MyS...

2019-06-21 18:05:09 183

转载 Java中的锁分类

好文章就应该带着链接分享出来大家一起学习https://www.cnblogs.com/qifengshi/p/6831055.html在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁上面是很多锁的名词,这...

2019-06-21 17:03:22 117

原创 反转链表三种方法---Java

第一种方法:使用stack这种方法需要额外空间,创建栈,然后将链表遍历存入栈,接着弹出栈,重新连接链表,而且需要两次遍历。这种方法没什么技术含量,但是架不住思想很简单。。。所以如果笔试碰到,可以直接写,如果是面试的话只给出这种方法我觉得基本上就凉了。。。// 使用Stack反转链表 private static Node reverseList1(Node head) {...

2019-06-20 15:51:43 2890

转载 MySQL高级知识——Join查询

这篇文章写得很棒,有兴趣的可以学习一下,原文链接https://www.cnblogs.com/developer_chan/p/9207687.htmlMySQL高级知识(二)——Join查询前言:该篇主要对MySQL中join语句的七种情况进行总结。0.准备join主要根据两表或多表之间列的关系,从这些表中进行数据的查询。首先创建两张表:tb_emp(员工表)和tb_dep...

2019-06-19 17:37:54 166

原创 数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。方法一:HashMap统计次数这种方法需要申请额外空间,在使用HashMap存入键值对后还需要进行遍历找到结果,复杂度太高,不建议使用方法二:在遍历数组的时候,先...

2019-06-19 16:19:44 295

原创 数组的TopK的三种解决方法---Java

方法一:常规方法,先完全排序此种方法就不多做解释了,就是使用快排,归并,堆排序等方法先将数组完全排序,然后再取topK,时间复杂度为O(NlogN)。而且这种方法不适用于大数据量,小内存。方法二:快排思想,部分排序此种方法时借鉴快排的思想,在partition过程中,将数组分为了三个部分,左边是小于指定的数,中间是等于指定的数,右边是大于指定的数,这样,我们只需要让数组部分有序就可以拿...

2019-06-19 15:20:27 4123

原创 二分查找算法(递归与非递归两种方式)---Java

二分查找作为一个经典算法,有必要再温习一下非递归版本: /** * @param arr:需要查找的有序数组 * @param left:数组的左边界 * @param right:数组的右边界 * @param key:需要查找的key * @return: 返回找到的下标,找不到返回-1 */ public s...

2019-06-19 10:44:20 519

原创 查找两个数组中的相同元素---Java

两次遍历思考后想出来两种方法,第一种在两个数组中,每个数组不能存在重复元素,那么可以直接暴力循环,复杂度为为O(n2),而且这种方法只能适用于arr1和arr2各自中不存在重复元素。public static List<Integer> findSame(int[] arr1, int[] arr2) { List<Integer> list = ...

2019-06-19 09:45:41 14499

原创 JDK1.7和JDK1.8的内存模型比较

由于网上文章态鱼龙混杂,完全不知道哪个是对的,在查阅资料以及翻阅很多文章后做一个自己认为是对的总结,如有错误请您指出来,谢谢JDK1.7内存模型对于这五个区域我大概做一个大概介绍,详细情况可以查阅其他资料或者文章程序计数器:线程私有,可以看做当前程序执行的行号指令器。Java虚拟机栈:线程私有,生命周期与线程相同,虚拟机栈描述的是Java方法执行的内存模型,每个方法在执行时会形...

2019-06-18 13:31:28 6412 4

原创 自己实现简单版ArrayList

这里只是主要写了ArrayList在添加元素时的核心,就是扩容,如果数组空间不足那就扩容到原来的1.5倍,调用Arrays.copyOf()方法将旧数组中的元素复制到新数组中。下面是代码实现以及测试,很简单很简单,很多地方没有进行条件判断等等,详细实现还是看源码或者这两篇文章:https://www.cnblogs.com/ygj0930/p/5965205.htmlhttps://...

2019-06-17 17:33:15 406

原创 Servlet处理客户端请求过程

前言由于Servlet没有main函数,运行在容器中,所以整个生命周期由容器控制。具体可以分为5个状态:加载,容器通过类加载器来加载Servlet。 创建,通过Servlet构造方法创建Servlet对象。 初始化,调用Servlet的init()方法,进行初始化工作,注意,只初始化一次。 处理客户端请求。容器在接到客户端请求时,都会创建一个新的线程,通过调用Servlet的serv...

2019-06-13 15:35:56 2638

原创 两个栈实现队列、两个队列实现栈---Java

两个栈实现队列采用两个栈,一个push栈,一个pop栈,每次只有当push的时候直接进push栈,每次pop的时候,只要只从pop栈中弹出,在pop栈为null的时候,将push栈中的所有元素压栈到pop栈中,这样就还原了元素添加的顺序,先进先出,注意,只有在pop栈为null的时候才能压栈,如果不是会乱序,不会达到先进先出的目的。举例:push栈添加1,2,3,4,5。 现在需要进行p...

2019-06-06 13:35:50 319

原创 数组实现队列---Java实现

此代码来源于左神的视频教程思路采用两个指针以及队列大小的变量,start和end以及size,添加元素,end向后移动,start不动,size+1,删除元素,end不动,start后移,size-1。当end移动到arr.length时候,如果队列没有满,也就是size!=arr.length,那说明数组arr的开始位置肯定是空的,所以继续添加元素的时候end重新移动到arr的0位置。...

2019-06-06 09:54:05 1770

原创 两个有序数组的合并排序(归并思想),Java代码实现,并去重复,考虑空间利用率问题

搜了好多文章,发现代码是错的,没有达到去重的目的,而且还有人点赞,你们看代码难道不自己测一下看对不对吗?下面是我写的代码,代码看起来长,可能确实有点冗余,但是容易理解,如果有错或者可以优化,麻烦你指出来,可以共同学习,谢谢。题目要求:数组A,B有序,要求合并A,B,并且去除重复元素。下面代码实现的复杂度,设A和B的数组长度为M和N那么时间复杂度为O(M+N),如果中用数组实现,空间复杂度也...

2019-06-05 15:05:02 2568 4

原创 归并排序、快速排序、堆排序---Java实现(带注释)

归并排序:package sort;/** * Created by Hollake on 2019\5\26 0026. */public class MergeSort { public static void main(String[] args) { int[] arr = {72, 6, 57, 88, 60, 42, 83, 73, 48, 85...

2019-05-31 16:39:42 788

原创 synchronized的实现原理以及锁优化

前言为了巩固帮助自己记忆锁优化的相关知识,今天对其做一些总结。synchronized在多线程并发编程中一直是元老级人物,而且在JDK1.6之前由于实现同步所带来的性能消耗过大,因而被称为重量级锁,随着JDK1.6对synchronized的各种优化,产生了偏向锁,轻量级锁,自适应锁等,它现在也就没有那么重量级了。实现原理synchronize是如何实现同步操作的呢?它通过以下三种...

2019-05-31 14:51:53 429

转载 [图解] 归并排序(动图很重要)

转载自https://www.jianshu.com/p/33cffa1ce613这篇文章动图清晰易懂1. 图示过程(1) 归并排序的流程(2) 合并两个有序数组的流程2. 动图展示3. Java代码实现public static void mergeSort(int[] arr) { sort(arr, 0, arr.length - 1);}...

2019-05-29 15:35:36 3213

空空如也

空空如也

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

TA关注的人

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