自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 idea一直卡在build不动解决办法

最最有用的办法了一直被这个问题困扰,网上说的很多办法都试过了,没啥用。比如设置jdk的版本,重启重装idea问题一直存在。幸运的是,看到了一个博主关于这个问题的解决办法。完美解决了。就是设置了一下共享构建进程堆大小(Mbytes):把这个玩意变大!设置的路径如下:File | Settings | Build, Execution, Deployment | Compiler...

2021-09-16 10:37:32 4205 2

原创 Linux常用基本指令总结,来瞅瞅吧

文件/目录基本操作1. ls 指令语法: ls [选项] [目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件-l 列出文件的详细信息。-r 对目录反向排序。-t 以时间排序。-R 列出所有子目录下的文件。(递归)举例:2.

2020-07-28 15:52:00 234

原创 常见HTTP状态码,都来瞅瞅

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码分类:HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:1** :信息,服务器收到请求,需要请求者继续执行操作2** :成功,操作被成功接收并处理3** :重定向,需要进一步的操作以完成请求4** :客户

2020-07-18 00:30:42 299 1

原创 从输入URL到浏览器显示页面,中间都经历了哪些过程?

从输入URL到浏览器显示页面,中间大概分为两个过程:1.网络通信2.页面渲染站在网络原理的角度看,网络通信差不多经历了以下过程:1. 在浏览器中输入url:用户输入url,例如http://www.baidu.com。其中http为协议www.baidu.com为网络地址,及指出需要的资源在哪台计算机上。一般网络地址可以为域名或IP地址,此处为域名。使用域名是为了方便记忆,但是为了让计算机理解这个地址还需要把它解析为IP地址。2.应用层DNS解析域名:客户端先检查本地是否有对应的IP地址,若找

2020-07-17 23:56:04 3941

原创 三次握手(建立连接)四次挥手(断开连接)

三次握手,四次挥手三次握手四次挥手是TCP协议中关于连接管理机制的。在正常情况下, TCP要经过三次握手建立连接, 四次挥手断开连接。那么三次握手及四次挥手到底是怎么一回事呢?一个小问题:为啥要建立连接?1.更好的保证可靠性(建立连接的过程就是在验证通信双方的发送能力和接收能力是否正常)2.协商一些重要参数具体是怎么建立连接的?给大家举一个打电话的例子。这个例子是为了说明连接可以验证双方都具有通信能力。下面这个图就类似于在协商一些重要参数。(比如在TCP中,TCP的序号不是从0开始的,初始

2020-07-03 23:09:24 357

原创 [编程题]密码验证合格程序(java)

密码要求:1.长度超过8位2.包括大小写字母.数字.其它符号,以上四种至少三种3.不能有相同长度大于等于2的子串重复输入描述:一组或多组长度超过2的子符串。每组占一行输出描述:如果符合要求输出:OK,否则输出NG示例1题目链接分析:1.通过字符串读取输入的数据,读到后判断长度,如果长度小于等于8,则不满足。2.对于字符串中的每个字符,进行判断,如果不满足3个及以上类型,则不满足3.题目要求不能有大于等于2的相同字符串,那么我们每次截取长度为3的字符串,与它相邻长度为3的字符串比较,

2020-07-03 02:17:59 855 1

原创 Long.toBinaryString和Long.parseLong

写两句话记录一点东西:Long.toBinaryString将一个long类型的十进制数转换为一个二进制的字符串。Long.parseLong(String s,int n)将一个String类型字符串转换为一个n进制的long类型数字public class Main { public static void main(String[] args) { long a = 2; String s = Long.toBinaryString(a);

2020-07-02 01:08:18 377

原创 如何实现一个阻塞队列?

阻塞队列的实现

2020-06-18 16:03:57 3392 2

原创 MySQL表的增删改查(基础)

增:INSERT INTO 表名 (字段名1,字段名2,字段名3…) VALUES (值1,值2,值3…)删:DELETE FROM 表名 WHERE 字段名 = 值 (如果不加where就是删除表中所有的数据)改:UPDATE 表名 SET 字段名1 = 新值1, 字段名2 = 新值2 WHERE 字段名 = 值查:基本: SELECT * FROM 表名 (查询所有)进阶: SELECT * FROM 表名 WHERE 字段名 = 值 (查询 字

2020-06-16 02:12:14 551

原创 单例模式

单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。单例模式的实现:1.饿汉模式:饿汉模式的饿体现在只要类被加载,就

2020-06-16 02:04:29 1628 8

原创 输入一个正整数n,求n!(即阶乘)末尾有多少个0?

输入一个正整数n,求n!(即阶乘)末尾有多少个0?比如: n = 10; n! = 3628800,所以答案为2题目链接分析:计算n的阶乘,n的阶乘:n!=1×2×3×…×n那么我们在计算n的阶乘时,实际上就是把所有小于等于n的正整数分解成质因数,然后再将其乘到一起,那么末尾0的个数实际上就是2 * 5的个数,而2的个数明显是很多很多的,所以问题就转化成了5的个数。 而只有5的倍数才有5这个因数,所以,问题就进一步简化为小于等于n的数中有多少个数是5的倍数,当然25的倍数,125的倍数,625还要单

2020-06-10 21:06:47 2703 1

原创 来看看java中创建线程都有哪些方式!

一.继承Thread类创建线程类可以通过继承 Thread 来创建一个线程类,该方法的好处是 this 代表的就是当前线程,不需要通过Thread.currentThread() 来获取当前线程的引用。class MyThread extends Thread { @Override public void run() { System.out.println("这里是线程运行的代码"); } }MyThread t = new MyThread(); t.start(); //

2020-06-08 10:33:11 196

原创 线程和进程的区别(总结)

1.同一个进程可以包含多个线程,一个进程中至少包含一个线程,一个线程只能存在于一个进程中。2.进程是资源分配最小单位,线程是程序执行的最小单位。3.进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间,它使用相同的地址空间共享数据。4.CPU切换一个线程比切换进程花费小;创建一个线程比进程开销小。5.线程占用的资源要⽐进程少很多。6.进程对资源保护要求高,开销大,效率相对较低,线程资源保护要求不高,但开销小,效率高,可频

2020-06-04 23:55:27 243

原创 Incorrect string value: ‘\xE7\xA8\x8B\xE5\xBA\x8F…’ for column ‘course’ at row 1: (插入中文引起的错误)

错误:Incorrect string value: ‘\xE7\xA8\x8B\xE5\xBA\x8F…’ for column ‘course’ at row 1原因:出现这个是因为输入中文,与配置文件里面地默认编码方式不符解决:1.找到 mysql.ini在开始菜单中找到 MySQL 客户端的快捷方式, 右键 -> 更多 -> 打开文件位置选择快捷方式, 右键, 属性把目标中的 mysql 客户端的完整命令复制出来, 粘贴到记事本上.C:\ProgramData\My

2020-05-24 11:55:43 1018

转载 如何干净安全得卸载mysql

(一)卸载面板中的数据库二、卸载过后,删除文件夹中的mysql,如删除C:\Program Files (x86)\MySQL该目录下剩余了所有文件,把mysql文件夹也删了三、windows+R运行“regedit”文件,打开注册表四、删除注册表:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL文件夹五、删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\S

2020-05-17 00:58:49 344 1

原创 mysql输入密码后闪退问题的解决

1.找到配置文件my.ini,然后用记事本将其打开2.打开后,搜索mysqld关键字,找到后,在mysqld下面添加skip-grant-tables,保存退出。若提示不让保存时,可以将文件剪切到桌面,更改保存后再复制到mySQL目录下。3.保存后重启mysql服务,右键点击计算机->管理->服务->Mysql ,然后重启。4.运行cmd,输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入5.修改登录密码:1.进入

2020-05-17 00:08:18 2053

原创 MySQL闪退解决办法看这里!

安装MySQL后,从最近添加里面的MySQL 进入,没来得及输入密码就闪退了,经过研究可以这样解决:1.查看mysql Command Line Client 默认执行的一些参数。右键属性。2.查看目标文件的内容:复制文件内容如下:;\MySQL\MySQL Server 5.7\my.ini" “-uroot” “-p”然后去目录下查看有没有my.ini这个文件,发现没有4.然后在programadata里面的MySQL Server5.7里面发现有一个my.ini文件,复制一份,加到安

2020-05-16 23:58:39 1379

原创 堆的应用-优先级队列(队列的实现)

堆得概念:堆逻辑上是一棵完全二叉树堆物理上是保存在数组中满足任意结点的值都大于其子树中结点的值,叫做大堆,或者大根堆,或者最大堆反之,则是小堆,或者小根堆,或者最小堆堆的基本作用是,快速找集合中的最值优先级队列概念:在很多应用中,我们通常需要按照优先级情况对待处理对象进行处理,比如首先处理优先级最高的对象,然后处理次高的对象。最简单的一个例子就是,在手机上玩游戏的时候,如果有来电,那么系统应该优先处理打进来的电话。在这种情况下,我们的数据结构应该提供两个最基本的操作,一个是返回最高优先级对

2020-05-13 22:00:56 251

原创 排序算法之快速排序

快速排序-原理:(1)首先设定一个分界值,通过该分界值将数组分成左右两部分。(2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。(3)然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。(4)重复上述过程,可以看出,这是一个递归定义。通过递归将左侧部分排好序后,再递归排好右

2020-05-13 15:36:23 180

原创 排序算法之冒泡排序

冒泡排序-原理:重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。实现:public static void bubbleSort(int[] array) { // 从后往前遍历, 每次

2020-05-12 01:02:16 132

原创 排序算法之选择排序

选择排序-原理(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。实现: public static void selectSort(int[] array) { for (int bound = 0; bound < array.length; bound++

2020-05-12 00:53:32 79

原创 插入排序之直接插入排序与希尔排序

直接插入排序-原理:整个区间被分为有序区间无序区间 :每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入。基本思想:直接插入插排的基本思想是:当插入第i(i >= 1)时,前面的array[0],array[1],……,array[i-1]已经排好序。这时,用array[cur]的排序码与V[i-1],V[i-2],…的排序码顺序进行比较,找到插入位置即将V[i]插入,原来位置上的元素向后顺移。实现:// 以升序排序为例 public static void in

2020-05-12 00:41:26 150

原创 合并二叉树

给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。来源:力扣(LeetCode)代码:/** * Definition for a binary tree node. * public class...

2020-05-06 22:18:34 114

原创 层序遍历二叉树

分析:层序遍历二叉树借助队列实现,先放入根节点,取队首,遍历根节点,再放入其左子树,右子树,再取,依次遍历。代码:public class TreeTest { static class TreeNode{ TreeNode left; TreeNode right; int val; public TreeNode(i...

2020-04-22 22:19:46 128

原创 对称二叉树(力扣习题)

题目描述:给定一个二叉树,检查它是否是镜像对称的。实例:代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; }...

2020-04-22 22:03:07 113

原创 平衡二叉树(力扣习题)

给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode ...

2020-04-22 21:50:19 626

原创 二叉树的最大深度(力扣习题)

题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:来源:力扣代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * ...

2020-04-22 21:41:30 114

原创 判断一个树是否为二叉树的子树(力扣习题)

题目描述:给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例:来源:力扣(LeetCode)代码:/** * Definition for a binary tree node. * public class TreeNode { * int ...

2020-04-22 21:31:27 350

原创 给定两个二叉树,编写一个函数来检验它们是否相同。(力扣习题)

给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例:来源:力扣(LeetCode)。代码:** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tr...

2020-04-22 21:22:58 602

原创 二叉树的后序遍历(力扣题)

给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3]输出: [3,2,1]来源:力扣(LeetCode)代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode righ...

2020-04-20 20:53:33 271

原创 二叉树的中序遍历(力扣)

给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3]12/3输出: [1,3,2]来源:力扣(LeetCode)代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeN...

2020-04-20 20:49:44 177

原创 二叉树的前序遍历(力扣题)

给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3]输出: [1,2,3]来源:力扣(LeetCode)代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode righ...

2020-04-20 20:45:08 210

原创 使用递归查找二叉树是否存在某个节点(查找二叉树是否存在某个值)

下面是一个二叉树,查找某个值是否存在。代码:public class TestTree { static class Node { public char val; public Node left; public Node right; public Node(char val) { this....

2020-04-20 20:38:41 2458

原创 求二叉树第K层节点个数(递归)

下面是一个二叉树,我们需要求得第K层的节点个数。代码:public class TestTree { static class Node { public char val; public Node left; public Node right; public Node(char val) { t...

2020-04-20 20:25:03 3596

原创 求二叉树的叶子节点个数(递归)

下面是一个二叉树,我们需要编写代码求其的叶子节点个数。分析:一个树的左子树和右子树都为null就是叶子节点,我们需要对每个数进行判断,依次遍历,遇到满足条件的进行计数即可。我在下面用了两种方法,其中一种是借助静态成员变量代码:public class TestTree { static class Node { public char val; p...

2020-04-20 20:07:38 9777

原创 求二叉树节点个数(递归)

下面有一个二叉树,求其节点个数。分析:想要得到二叉树的节点个数,我们可以递归遍历这个二叉树,当一个树的根节点不为null时,对其计数。我在下面得代码里写了两种方法,一种是借助成员变量,一种是直接递归计数。代码:public class TestTree1 { static class Node { public char val; public ...

2020-04-19 21:15:36 7585

原创 二叉树的三种递归遍历(前序,中序,后序)

今天跟大家分享二叉树常见的三种遍历方式。根据访问结点操作发生位置命名。NLR:前序遍历(Preorder Traversal 亦称先序遍历)——访问根结点的操作发生在遍历其左右子树之前。LNR:中序遍历(Inorder Traversal)——访问根结点的操作发生在遍历其左右子树之中(间)。LRN:后序遍历(Postorder Traversal)——访问根结点的操作发生在遍历其左右子树...

2020-04-19 20:17:02 815

原创 ArrayList和LinkedList的区别(面试题)

1.ArrayList 是基于顺序表实现的(底层结构是数组),而LinkedList 是基于双向链表实现的。2.ArrayList 数据是村存放在连续的内存空间上,而LinkedList 数据不是连续的存放于内存空间上。3.ArrayList 能够高效的进行访问,按照下标操作元素时间复杂度是O(1)。4.LinkedList 能够高效进行删除插入,时间复杂度是O(1)。(当然,这里...

2020-04-13 00:36:18 498

原创 如何自定义异常实现登录?

要求:实现一个简单的控制台版用户登陆程序, 程序启动提示用户输入用户名密码. 如果用户名密码出错, 使用自定义异常的方式来处理。分析:我们既然要用自定义异常处理有可能出现的错误,肯定需要定义两个异常,一个用户名错误时抛出,一个用户名正确但密码错误时抛出。代码:public class NameException extends Exception { public NameExc...

2020-04-08 00:12:40 386

原创 如何理解java中的多态?

多态:顾名思义, 就是 “一个引用, 能表现出多种不同形态”。Java实现多态有三个必要条件:1.继承:在多态中必须存在有继承关系的子类和父类。2.重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。3.向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。接下来,我们用一段代码来更清楚直接的理解什么是多态比如,...

2020-04-03 22:07:10 546 2

空空如也

空空如也

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

TA关注的人

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