- 博客(77)
- 资源 (21)
- 论坛 (3)
- 收藏
- 关注

原创 【Java网络编程与IO流】Java中IO流分为几种?字符流、字节流、缓冲流、输入流、输出流、节点流、处理流
每天进步一点点!摘自大佬的文章 吃透Java IO:字节流、字符流、缓冲流1.Java的IO流是什么?IO:即in和out,输入和输出,指的是应用程序和外部设备之间的数据传递;Java是通过流来处理IO的,流(Stream)是一个抽象的概念,是指一连串的树(字符或字节),是以先进先出的方式发送信息的通道;一般流有以下特性:先进先出:最先写入输出流的数据最先被输入流读取到;顺序存取:可以一个接一个的往流中写入一串字节,读出时也会按写入顺序读取一串字节,不能随机访问中间的数据。只读或者只
2020-11-28 20:56:19
124

原创 【Java网络编程与IO流】Web实时通信技术即消息推送机制- 简要介绍短连接 长连接 轮询 长轮询 SSE WebSocket?
Web实时通信技术即消息推送机制- 简要介绍短连接 长连接 轮询 长轮询 SSE WebSocket?一、什么是长连接和短连接?HTTP的长连接和短连接实质上是TCP长连接的短连接。在了解HTTP的长连接和短连接之前先来了解一下HTTP协议。1.预备知识1.1 HTTP协议与TCP/IP协议的关系HTTP属于应用层协议,在传输层中使用TCP协议,在网络层中使用IP协议。其中IP协议主要解决网络路由和寻址的问题,TCP协议主要解决如何在IP层之上传输可靠的数据包。1.2 如何理解HTTP协议
2020-11-24 21:41:35
146

原创 【Leetcode刷题篇/面试篇】-如何快速的了解并查集(Union Find)
数据结构与算法-并查集(Union Find)开篇:学好数据结构与算法,面到哪里都不怕。一、什么是并查集现在有这样一个需求,假设有n个村庄,有些村庄之间有连接的路,有些村庄之间并没有连接的路。现在需要设计一个数据结构,能够快速执行以下2个操作:查询2个村庄之间是否有连接的路连接2个村庄而针对这类“连接”相关的问题,并查集能够办到查询、连接的均摊时间复杂度都是 O( α( n) ),α( n) < 5并查集有2个核心操作查找(Find): 查找元素所在的集合合并(Uni
2020-11-23 22:22:31
114

原创 【Leetcode刷题篇/面试篇】-排序算法篇
数据结构-排序算法篇开篇:学好数据结构与算法,面到哪里都不怕。一、初识排序算法二、冒泡排序(Bubble Sort)流程:1。从头开始比较每一对相邻元素,如果第一个比第二个大,就交换它们的位置。执行完一遍,最末尾的那个元素就是最大元素。2.忽略1中曾经找到的元素,重复执行1,直到全部元素都有序。public class BubbleSort { public static void bubbleSort(int[] arr) { if(arr.length<2||a
2020-11-21 19:34:22
147
原创 【Leetcode刷题篇】leetcode136 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解题思路1:用hashmap或者hashset来做// 用hashmap来做 public List<Integer> findDisappearedNumbers(int[] nums) {.
2020-11-30 22:51:34
46
原创 【Leetcode刷题篇】leetcode136 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解题思路1:用hashset来做public int singleNumber(int[] nums) { HashSet<Integer> hashset = new HashSet.
2020-11-30 22:29:00
52
原创 【Leetcode刷题篇】leetcode155 最小栈
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,n.
2020-11-30 22:13:50
55
原创 【面试篇】HashMap常见面试题目
每天进步一点点!1.Java容器有哪些?Java容器类库定义了两个不同概念的容器:Collection和Mapa.Collection一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素;Set不能有重复元素;Queue按照排队规则来确定对象产生的顺序。b.Map一组成对的“键值对”对象,允许使用键来查找值2.HashMap的常见题目HashMap = 数组+链表+红黑树HashMap是基于Hash算法实现的,通过put(key,value.
2020-11-29 18:51:38
222
原创 【Java网络编程与IO流】Java中BIO、NIO、AIO的区别是什么?
Java中BIO、NIO、AIO的区别是什么?如何学习Java的NIO Java核心(五)深入理解BIO、NIO、AIOBIO:阻塞同步通信模式,客户端与服务器连接需要三次握手,使用简单,但吞吐量少;(流)NIO: 非阻塞同步通信模式,客户端与服务器通过channel连接,采用多路复用器轮询注册的channel,提高吞吐量和可靠性。相比较于BIO,始终只有一个线程,并没有启动额外的线程来处理,解决了BIO线程无线增加的问题。(缓冲)AIO:非阻塞异步通信模式,采用异步通道实现通信,其基于事件和回调
2020-11-28 22:46:18
163
原创 【面试篇】Java中接口和抽象类的区别是什么?
每天进步一点点!Java中接口和抽象类?Java中一个类只能继承一个抽象类,但是可以实现多个接口a.什么是接口接口就是比“抽象类"还“抽象”的“抽象类”, 可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。接口是完全面向规范的,规定了-批类具有的公共方法规范。从接口的实现者角度看,接口定义了可以向外部提供的服务。从接口的调用者角度看,接口定义了实现者能提供那些服务接口就是一种契约,协议。b.格式[访问修饰符号] interface 接口name [ext
2020-11-28 19:06:12
99
原创 【面试篇】Java中static和final关键字的作用是什么?
1.Java中final关键字的作用?final的意思是最终,不可变的。是一个修饰符,可用来修饰类、类的成员以及局部变量;final修饰的类,该类不能被继承被final修饰的类,final类中的成员变量可以根据自己的实际需要设计为final;被final修饰的类,final类中的成员方法都会被隐式的指定为final方法;在JDK中,被设计为final类的有String、System。被final修饰的方法不能被重写注:类的private方法会隐式地被指定为final方法。fin
2020-11-28 16:10:13
89
原创 【面试篇】Java对象的hashCode()相同,equals()一定为true吗?
每天进步一点点!Java对象的hashCode()相同,equals()一定为true吗?答案是否定的。public static void main(String[] args) { String str1 = "通话"; String str2 = "重地"; System. out. println(String. format("str1:%d | str2:%d", str1. hashCode(),str2. hashCode()).
2020-11-27 23:01:37
78
原创 【面试篇】Java中String、StringBuilder与StringBuffer的区别?
【面试篇】Java中String、StringBuilder与StringBuffer的区别?每天进步一点点!在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。但String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。因此引进了两个新的类-StringBuffer类和StringBuilder类来对这种变化的字符串进行处理。与String类不同的是,StringBuffer和St
2020-11-26 23:10:03
88
原创 【面试篇】Java中==和equals的区别是什么?
【面试篇】Java中==和equals的区别是什么?每天进步一点点!==的解读:如果用作基本数据类型的变量,则比较的是其存储的值是否相等。如果用作引用类型的变量,则比较的是所指向的对象的地址。equals的解读:equals方法是基类Object中的实例方法,对所有继承与Object的类都会有该方法,其比较的是对象如果类没有对equals方法进行重写,那么就是==, 即比较的对象的地址如果类对equals方法进行了重写,一般用来比较两个对象的内容是否相等。如String中的equ
2020-11-26 23:08:10
100
原创 【Leetcode刷题知识点】二分搜索查找
1.寻找一个数(简单的二叉搜索)搜索一个数,如果存在,返回其索引,否则返回 -1。public static int binarySearch(int[] arr,int target) { int left = 0; int right = arr.length-1; while(left<=right) { int mid = left + ((right-left)>>1); if(arr[mid]==target) {
2020-11-21 18:51:08
76
原创 【Leetcode刷题篇】leetcode148 排序链表
给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?归并排序/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this..
2020-11-21 18:12:45
82
原创 【Leetcode刷题篇 】leetcode147 对链表进行插入排序
对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:1.插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。2.每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。3.重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->.
2020-11-21 16:31:14
63
原创 Java中arraylist和数组的相互转换
Java中ArrayList和数组之间的相互转换ArrayList转为数组数组转为ArrayList一、ArrayList转换数组public static void arrayListToArray() { // ArrayList转换数组 List<String> arraylist = new ArrayList<String>(); arraylist.add("java"); arraylist.add("c++"); arraylist.a
2020-11-20 14:25:42
109
原创 【Leetcode刷题篇】leetcode130被围绕的区域
给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 ‘O’ 都不会被填充为 ‘X’。 任何不在边界上,或不与边界上的 ‘O’ 相连的 ‘O’ 最终都会被填充为 ‘X’。如果两个元.
2020-11-19 23:03:23
65
原创 【Leetcode刷题篇】leetcode200 岛屿数量
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。联系并查集class Solution{ public int numIslands(char[][] grid) { // 判断 if(grid==null||grid[0]==null) { return 0; } int N = grid.le.
2020-11-19 21:09:50
71
原创 什么是一致性哈希算法?如何通俗易懂的了解分布式缓存场景?
什么是一致性哈希算法?如何通俗易懂的了解分布式缓存场景?一、应用场景描述哈希算法和一致性哈希算法主要应用于分布式缓存的应用场景.假如我们的系统一开始流量较小,可以只用单张服务器来缓存存储用户图片,但随着系统流量的增大,达到了千万级别,用户缓存图片的增多,这时候所有用户都会请求从这一台服务器上获取数据,会给该服务器造成很大的压力,可能会发生宕机等时间,给系统造成很大影响。而为了解决该事情,便需要在后台部署多台服务器,将图片按照一定规则切分到各个服务器上,从而有效的环节单机服务器的压力和系统的性能瓶
2020-11-17 10:33:54
81
原创 【Leetcode刷题篇】判断一棵树是否为完全二叉树
完全二叉树的定义如下:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。层序遍历过程中,给出限制 /** * 判断其一棵树是否为完全二叉树 */ public static boolean isComplete(Node head) { if(head==null) { return true; } // 对其进行层次遍历.
2020-11-16 20:35:35
99
原创 【Leetcode刷题篇】leetcode98 判断一棵树是否为二叉搜索树
题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNod.
2020-11-16 20:26:11
70
原创 【Leetcode刷题篇】剑指offer55-平衡二叉树
题目:输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val.
2020-11-16 20:16:41
60
原创 【Leetcode刷题篇】剑指offer51 数组中的逆序对
在解决该问题之前,先来看一下归并排序。// 归并排序 public static void mergeSort(int[] arr) { if(arr==null || arr.length<2) { return; } sortProcess(arr,0,arr.length-1); } public static void sortProcess(int[] arr,int L,int R) { if(L==R) { return; } int .
2020-11-14 14:56:21
106
原创 【Leetcode刷题篇】leetcode88 合并两个有序数组
题目:给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]packa.
2020-11-14 12:42:50
65
原创 【面试篇】数据结构-哈希表
数据结构-HashMap集合Set映射Map哈希表HashMap哈希表LinkedHashMap一、集合Set1.集合集合的特点:不存放重复的元素常用于去重2. 接口public interface Set<E>{ int size(); boolean isEmpty(); void clear(); boolean contains(E element); void add(E element); void
2020-11-11 13:18:36
133
1
原创 【面试篇】数据结构-树形结构
数据结构-树形结构树Tree二叉树BinaryTree二叉搜索树BinarySearchTree平衡二叉树BalanceBinarySearchTreeB树AVL树红黑树哈夫曼树Trie树一、树形结构1. 树的基本概念一棵树可以没有任何节点,称为空树一棵树可以只有1个节点,也就是只有根节点子树、左子树、右子树**节点的度:**子树的个数**树的度:**所有节点度中的最大值**叶子节点:**度为0的节点**非叶子节点:**度不为0的节点
2020-11-11 13:11:12
210
原创 【面试篇】数据结构-线性表
数据结构-线性表线性表是具有n个相同类型元素的有限序列(n>=0)常见的线性表有:数组ArrayList链表LinkedList栈Stack队列Queue哈希表(散列表)(单独摘出来)一、 动态数组ArrayList数组是一种顺序存储的线性表,所有元素的内存地址是连续的。但在很多编程语言中,数组都有个致命的缺陷,无法动态修改容量实际开发中,我们希望数组的容量是可以动态改变的。1.动态数组接口设计2.动态数组的设计// 成员变量int siz
2020-11-11 12:46:00
565
原创 【Leetcode刷题篇】leetcode443 压缩字符串
题目:给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。示例 1:输入:[“a”,“a”,“b”,“b”,“c”,“c”,“c”]输出:返回 6 ,输入数组的前 6 个字符应该是:[“a”,“2”,“b”,“2”,“c”,“3”]说明:“aa” 被 “a2” 替代。“bb” 被 “b2” 替代。“ccc” 被 “c3” 替代。示例 2:输入.
2020-11-10 22:30:55
100
原创 【Leetcode刷题篇】面试题01.06 字符串压缩
字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:“aabcccccaaa”输出:“a2b1c5a3”示例2:输入:“abbccd”输出:“abbccd”解释:“abbccd"压缩后为"a1b2c2d1”,比原字符串长度更长。题解:用一个来记录num,一个来记录字符,对1~lengt.
2020-11-10 22:17:57
112
原创 【Leetcode刷题篇】剑指offer-数值的整数次方
实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25解题思路:快速幂的思路非递归方式实现// 快速幂 p.
2020-11-10 21:40:36
57
原创 【Leetcode刷题篇】leetcode367 有效的完全平方数
题目:给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1:输入:16输出:True示例 2:输入:14输出:Falseclass Solution { public boolean isPerfectSquare(int num) { double res = 1.0; while((res*res-num)>=1e-6 ||.
2020-11-10 21:07:51
56
原创 【Leetcode刷题篇】leetcode69 x的平方根
实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去。题解一、Math.powpublic int mySqrt(int x) { return (int) Math.sqrt(x); } public int mySqrt_.
2020-11-10 21:00:54
64
原创 【刷题篇】Java 不用Math.sqrt() 如何求一个数的平方根
题目:在不用Math.sqrt()方法中如何求解一个大于1的数的平方根题解一、牛顿迭代法计算x2 = n的解,令f(x)=x2-n,相当于求解f(x)=0的解,如图所示。首先取x0,如果x0不是解,做一个经过(x0,f(x0))这个点的切线,与x轴的交点为x1。同样的道理,如果x1不是解,做一个经过(x1,f(x1))这个点的切线,与x轴的交点为x2。以此类推。以这样的方式得到的xi会无限趋近于f(x)=0的解。判断xi是否是f(x)=0的解有两种方法:一是直接计算f(xi)的值.
2020-11-10 20:24:00
91
原创 【Leetcode刷题篇】leetcode146 LRU缓存机制
运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删.
2020-11-10 18:56:13
84
原创 【Leetcode刷题篇】leetcode23 合并K个升序链表
给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例 2:输入:lists = []输出:[.
2020-11-10 15:32:51
71
原创 【Leetcode刷题篇】leetcode373 查找和最小的K对数字
给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2。找到和最小的 k 对数字 (u1,v1), (u2,v2) … (uk,vk)。示例 1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[1,4],[1,6]解释: 返回序列中的前 3 对数:[1,2],[1,4],[1,6],[7,2],[7,4],[11,2],[.
2020-11-10 10:59:09
121
原创 【Leetcode刷题篇】leetcode692 前K个高频单词
给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。注意,按字母顺序 “i” 在 “love” 之前。示例 2:输入: [“the”, “day”, “is”,.
2020-11-10 10:38:23
76
原创 【Leetcode刷题篇】前K个高频元素
题目:给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]题解:用一个优先级队列来进行,hashmap存储key和value,根据value的值来比较package com.lcz.leetcode;/** * 前K个高频元素 * @author LvChaoZhang * */import java.u.
2020-11-09 22:50:53
96
火焰目标检测数据集含标签
2020-12-08
利用html+css+mysql+php来快速的制作动态网页(以制作一个博客网站为列)
2017-08-14
javaweb学生信息管理系统
2018-04-15
SSM实现增删改查操作
2018-06-15
SSM框架环境的搭建及整合
2018-06-08
云笔记项目
2018-05-07
Struts2+Hibernate4开发学生信息管理功能
2018-03-24
gitlab上传的一系列支撑软件
2017-12-28
01html学习笔记的思维导图
2017-09-09
mind_programmonkey的留言板
发表于 2020-01-02 最后回复 2020-03-19
打开不了我的消息页面
发表于 2018-06-11 最后回复 2018-06-11
访问量异常,不更改
发表于 2018-04-24 最后回复 2018-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝