自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (9)
  • 收藏
  • 关注

原创 面试官:不会AQS?那你简历上写什么并发编程

关于AQS(AbstractQueuedSynchronizer),其实平时我们使用的最多的就是ReentrantLock,我们先看看ReentrantLock到底是个什么东东public class ReentrantLock implements Lock, java.io.Serializable { private static final long serialVersionUID = 7373984872572414699L; /** Synchronizer providin

2021-07-29 11:14:45 195 1

原创 TIME WAIT 和CLOSE WAIT的区别

TIME WAIT 和CLOSE WAIT的区别昨天京东一面,问了一个很简单的问题。结果自己只是简单回答了一下并没有深入分析出现问题的原因以及解决的办法。感觉这个问题被问的频率还是挺高的,所以下来后自己看了博客,稍微整理了一下。现象:tomcat崩溃,抛出大量Too Many Open Files异常。这个时候使用netstat命令去查看服务器的网络连接状态会发现服务器可能维持了大量的TIME WAIT 或者CLOSE WAIT状态。这两种状态产生的原因是不一样的。先来谈谈TIME WAIT状态首

2021-07-27 10:46:42 890

原创 插入排序问题

import java.util.Arrays;public class InsertSort { public static void main(String[] args) { int[] nums = new int[]{4,9,6,3,5,123,45}; insertSort4(nums); System.out.println(Arrays.toString(nums)); } /* 插入排序就是将新插入的数

2021-07-09 17:09:30 130

原创 归并排序问题

import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class MergeSort02 { private static int account = 0; public static void main(String[] args) { /*int[] nums = new int[]{7,5,6,4}; int[] temp = new in

2021-07-09 17:08:14 81

原创 快速排序问题

import java.util.*;public class QuickSort { public static void main(String[] args) { /*int[] nums = new int[]{1,2}; quicklySort(nums,0,nums.length-1); // quickSort(nums,0,nums.length); System.out.println(Arrays.toString

2021-07-09 17:07:23 65

原创 堆排序问题

import java.util.Arrays;public class HeapSort { public static void main(String[] args) { int[] nums = new int[]{5,2,6,8,4,3,1,10,52,692,23,1616,23,54}; HeapSort heapSort = new HeapSort(); heapSort.heapSort(nums,0,nums.length-1

2021-07-09 17:04:50 60

原创 n皇后问题

public class Queue8 { int max = 4; int[] array = new int[max]; int account = 0; public static void main(String[] args) { Queue8 queue8 = new Queue8(); queue8.check(0); System.out.println(queue8.account); } //编写一个方法放置第n个

2021-07-09 17:03:22 63

原创 二分搜索,你真的懂吗?

二分搜索,你真的懂吗?二分搜索的前提是什么?有序,确实,我们平时从一组数据数据中查找某个数是否存在时,如果这个数组是无序的,那就从头到尾遍历一遍,或者先把数组排序再使用二分查找。其实使用二分不必一定要数组元素有序,只需要数组左边和右边可以区分,例如:如图所示,数组的左端点为L,右端点为R。同时数组的红色部分满足一种性质,青色部分满足另外一种性质。假如此时我要找红色部分的右端点。首先寻找数组的一半mid = (L+R)>>1;如果mid满足某个性质,则L=mid,自然R=mid-1;以上是

2021-06-09 11:25:02 141

原创 笔试题

笔试题题目:输入一串字符串,输出字符串中长度最长的连续字母,如果有多个,就输出多个,以分号隔开,重复的不需要考虑eg:输入:aadsfsdfddddsfsd,输出:d输入:abcdefg, 输出:a;b;c;d;e;f;gpublic class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine();

2020-08-24 22:06:37 194

原创 HTTPS

HTTPS1、什么是对称加密?什么是非对称加密?​ 所谓对称加密就是客户端和服务器共用一套密钥,该密钥可用于加密一段内容,同时也可用于解密这段内容。对称加密的优点是加解密效率高,但是在安全性方面存在一定的问题,因为密钥存在客户端容易被盗取。对称加密的代表算法有:AES、DES等。​ 非对称加密稍微复杂一点。它将密钥分为公钥和私钥,公钥存在客服端(是服务器发给客户端的),私钥存在服务器,通过公钥加密的内容必须要私钥才能解密;同样,通过私钥加密的内容只有公钥可以解密。非对称的优点是安全性更高,因为客服端发

2020-07-14 20:09:34 398 1

原创 二叉树

二叉树1、数组的优点:通过索引迅速定位待查找元素,查询速度比较快,当数组为有序数组时,还可进行二分查找2、数组的缺点:当在数组中插入或删除某个元素时,会影响多个元素一起调整,并且当数组满时,还需要进行动态扩容3、链表的优点:当插入或删除某个节点时,只需要改变连接,不需要大范围改动其它节点4、链表的缺点:查询比较慢,由于链表并不是开辟的一整块内存空间,而是散列的,如果待查询节点位于最后一个节点位置,那么需要遍历整个链表才能找到该元素。数组和链表都有优缺点,由此引入了二叉树遍历二叉树的方法分

2020-07-09 19:29:35 239

原创 QueryRunner操作

QueryRunner操作文章目录QueryRunner操作1、导入commons-dbutils-jar包2、调用QueryRunner的增删改查方法2.1增删改是共用QueryRunner.uptate方法1.2查询操作对应QueryRunner.query()方法1.2.1 BeanHandler<>1.2.2 BeanListHandler<>1.2.3 MapHandler()方法1.2.4 MapListHandler()方法1.2.ScalarHandler()方法

2020-07-09 09:36:01 509

原创 Hash表

Hash表Hash表采用了数组加链表的结构,即一个数组元组中不再是存储单个元素,而是存储一个链表,就好比包租婆收租的时候,一个握把上面挂了一连串的钥匙一样。Hash表的引出是为了减少查询数据库操作所带来的时间问题,将数据直接存放在哈希表中,方便查阅。当然,现在也可以用redis来做缓存操作。从小往大看,每一个节点代表一个对象,并采用单链表的形式将每个节点串联起来,因此要先创建一个节点,该节点用于存储信息以及关联下一个节点//表示一个雇员class Emp{ private int id;

2020-07-09 09:35:00 83

原创 如何实现字符串的反转

如何实现字符串的反转文章目录如何实现字符串的反转方法一:将字符串转换为字符数组,使用首位指针对数组进行反转方法二:将字符串转换为StringBuffer,通过StringBuffer的构造器将String转为StringBuffer,调用StringBuffer的reverse()方法,最后调用StringBuffer的toString方法将StringBuffer转换为String。方法三:使用String的CharAt()方法将string逐个转换为char类型的字符。然后将字符逆序追加到string

2020-07-09 09:34:09 7071

原创 一、数据库连接池

一、数据库连接池文章目录一、数据库连接池1、c3p0连接池1.导入c3p0所使用的jar包2、DBCP连接池1、导入DBCP所使用jar包3、Druid连接池(重头)1、c3p0连接池引言:传统获取连接通常都是获取一条连接,当对数据库操作完成之后,调用close方法将连接销毁,这样就会每次操作数据库都要获取连接然后销毁,造成资源的浪费。现在通过创建一个连接池,连接池中创建一定数量的连接,当需要操作数据库的时候从连接池中获取一条连接,当操作完数据库后将连接返回到连接池方便下一次使用。该操作替代了以前

2020-07-09 09:33:15 83

原创 斐波拉契查找

斐波拉契查找斐波那契查找与前面的二分查找极为相似。二分查找是每次查找元素都是折半,例如mid=(lift+right)/2,然后将需要查找的值value与arr[mid]进行比较如果value>arr[mid],则向右进行查找,即lift=mid+1;如果value<arr[mid],则向左进行查找,即right=mid-1,依次重复上述步骤,知道value=arr[mid],则找到了value在数组arr中的下标。无论是二分查找还是斐波那契查找都要注意数组arr是默认为有序数组的。下面

2020-07-09 09:32:31 164

原创 深度优先和广度优先搜索算法

深度优先和广度优先搜索算法文章目录深度优先和广度优先搜索算法1、先构建子节点以及子节点构成的二叉树2、广度优先:3、深度优先:4、代码结果1、先构建子节点以及子节点构成的二叉树//定义一个节点,节点连接有左节点和右节点public class TreeNode { public int data; public TreeNode lift; public TreeNode right; public TreeNode(int data) { this

2020-07-09 09:30:48 327

二分搜索,你真的懂吗?.md

二分搜索,你真的懂吗?.md

2021-06-08

题目描述:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。.md

剑指offer.48

2021-03-04

jvm垃圾回收机制:.md

全面概述jvm垃圾回收机制的功能、各部分组成及各部分算法实现

2021-01-26

java反射机制.md

深入了解java反射机制的原理,通过反射机制可以破坏单例模式,如何防止通过反射机制拿到单例模式的构造器呢?用枚举类可破

2021-01-26

HTTPS原理概述.md

最详细的概述Https安全传输原理,有别于http的重点

2021-01-26

ArrayList.md

一网打尽ArrayList底层结构,取其精华,去其糟粕

2021-01-26

HashMap.md

深入解剖HashMap,取其精髓,去其糟粕

2021-01-26

Hash表的分析以及组成原理解析及代码实现.md

Hash表采用了数组加链表的结构,即一个数组元组中不再是存储单个元素,而是存储一个链表,就好比包租婆收租的时候,一个握把上面挂了一连串的钥匙一样。Hash表的引出是为了减少查询数据库操作所带来的时间问题,将数据直接存放在哈希表中,方便查阅。当然,现在也可以用redis来做缓存操作。 从小往大看,每一个节点代表一个对象,并采用单链表的形式将每个节点串联起来,因此要先创建一个节点,该节点用于存储信息以及关联下一个节点

2020-07-08

斐波拉契查找原理分析及代码实现.md

本章节主要用于讲解斐波那契查找方法的分析与实现,其中包括介绍相关概念,数学分析、以及代码附上。菜鸡一枚,自己学习心得,方便自己日后查看,如果能给你提供帮助,很荣幸

2020-07-07

空空如也

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

TA关注的人

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