- 博客(193)
- 收藏
- 关注
原创 数组中数组中的第K个最大元素
因为 PriorityQueue 会根据提供的对象的自然顺序(也就是 compareTo 方法定义的顺序)来排序元素。如果你将 Node 对象添加到 PriorityQueue 中,那么队列将会根据节点的值从小到大来排列。
2024-05-08 12:45:38 107
原创 hashmap1.8特性
参考文章:https://www.freesion.com/article/5619192113/在JDK8之前是数组+单链表。在JDK8用的是数组+单链表+红黑树。当链表超过8且数据总量超过64才会转红黑树。JDK8规定,当链表长度大于8时,由单链表转化为红黑树;而当链表长度小于6时,又由红黑树转化为单链表)。loadFactor默认为0.75。7.HashMap中put方法的过程?答:“调用哈希函数获取Key对应的hash值,再计算其数组下标; 如果没有出现哈希冲突,则直接放入数组;如
2020-05-21 11:07:06 529
转载 线程池
ThreadPoolExecutorExecutors.newCachedThreadPool(无界线程池,自动线程回收) Executors.newFixedThreadPool(固定大小的线程池); Executors.newSingleThreadExecutor(单一后台线程);Core and maximum pool sizes 核心和最大线程池数量参数 翻译 ...
2020-05-07 17:51:57 287
原创 redis
1.redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用。2.丰富的数据类型,支持string,list, set,zset,hash
2019-08-12 17:46:10 260
原创 足球比赛
在足球比赛中,有2k个球队,其中强队k-1个,弱队k+1个,求强队相遇的概率。解题思路:假设,k为6,共有12个球队,7个弱队,5个强队1.先求总的比赛次数对于第一个球队有11种可能,第2个球队有9种,第3个球队是7种,最后的两个球队只有1种11*9*7*5*3*1=103952.再求强队不相遇的概率强队不相遇,则对于第一个强队,有7种选择,对于第二个强队,有6种。。7*6*5*...
2018-09-04 21:19:57 802
原创 最大公约数和最小公倍数
1、最大公约数最大公约数缩写为gcb,假设m>n.2、最小公倍数可以利用最大公约数来求得,lcm(a,b)=(a*b)/gcb(a,b)
2018-09-04 20:55:21 614
原创 maven解决依赖冲突
在项目的开发过程中,常常需要解决jar包依赖冲突的问题,因此在这里总结一下maven的相关用法。1. mvn dependency:tree显示项目的整个依赖树,用来排查依赖冲突。2. mvn dependency:tree -Dverbose详细显示依赖信息,把版本冲突中被抛弃,重复的都显示出来,便于排查问题3. mvn dependency:tree -Dverbose -->test....
2018-06-21 16:47:08 504
原创 时间类型转换
在日常的开发中,常会用到时间类型的转换,在这里总结几种常用的时间类型转换情况。1、将string转换为datepublic Date strToDate(String str){ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ParsePosition pos = new Pars...
2018-06-12 20:45:38 1234
原创 单元测试TestCase类
junit中的TestCase类,提供了多种断言的方法,assertEquals方法,assertEquals(Object expected,Object actual):根据equals()方法,如果expected和actual不相等则失败;否则通过测试。...
2018-04-27 17:50:29 2058
原创 JavaScript(3)
本文参考imooc网的相关资料:https://www.imooc.com/code/2343.1数组 我们创建数组的同时,还可以为数组指定长度,长度可任意指定。var myarray= new Array(8); //创建数组,存储8个数据。 给数组赋值:第一种方法:var myarray = new Array(66,80,90,77,59);//创建数组同时赋值第二种方法: var myar...
2018-04-26 15:56:44 286
原创 JavaScript的基本操作(2)
参考:本文参考了imooc网的部分学习资料https://www.imooc.com/code/4097、prompt提问、消息对话框prompt(str1,str2),输入框默认为第二个参数str2的值,可以被修改,如果不修改,就为默认值。8、打开窗口9、关闭窗口10、通过id获取元素11、innerHTML属性innerHTML属性用于获取或替换HTML元素的内容12、HTML样式<p ...
2018-04-25 20:36:17 263
原创 JavaScript的基本操作
参考:本文参考了imooc网的部分学习资料https://www.imooc.com/code/409在日常的开发中,有时候需要服务端的同学写一些简单的前端页面,因为需要适当的掌握一些js的内容。1、js的标签都是成对出现的,<script type="text/javascript"> document.write("开启JS之旅!");</script>2...
2018-04-25 20:09:59 595
原创 一致性hash算法
场景:需要把100张图片,存到3个服务器中。1、固定hash算法。将hash(图片名称)%N,N一般是机器数。如果原来是3台机器,加了一台机器,就变成了hash(图片名称)%4,这样大部分的数据都需要进行迁移。固定hash算法的缺点是,当机器数目变化时,大量的数据需要迁移。2、一致性hash算法为了解决这个问题,一致性hash算法:(1)第一步,也是将hash(图片名称)%(2^32)(2)第二步...
2018-04-10 17:54:56 290
原创 idea中常用快捷键总结
在使用idea过程中,熟练使用快捷键可以提高工作效率,再次总结一下工作中常用到的几个快捷键。查找类 ctrl+N查找文件 ctrl+shift+N查找函数 ctrl+alt+shift+N查找字符串 ctrl+shift+f添加断点 ctrl+F8单步运行 F8跳到下一个断点(如果没有断点了,就直接运行) F9...
2018-04-04 14:36:54 386
原创 maven中pom.xml解析
在工作中使用maven来管理项目1、<groupId>反写公司网址+项目名</groupId>2、<artifacted>项目名+模块名</artifacted>3、<version>0.0.1snapshot</version>第一个0表示大版本号第二个0表示分支版本号第三个0表示小版本号snapshot快照版本alpha内...
2018-04-03 20:55:53 514
原创 常用的git命令
每天都用到git操作,在这里总结一下,在工作中常用到的git命令。下载一个git bashcd d //切换到d盘cd.. //回到上层目录ls //查看目录下的所有文件pwd //当前路径分支的操作git branch //查看当前分支git branch -a //查看所有分支git status //当前...
2018-04-03 20:28:32 297
转载 在github中添加ssh
参考文章:https://www.cnblogs.com/ayseeing/p/3572582.html遇到的问题:之前自己添加了ssh key,但是每次操作的时候都需要重新输入密码,非常的麻烦,不知道为何。找了好久的原因都没找到。后来发现是自己在初次生成id_rsa时,选择了每次操作都需要输入密码。解决办法:删除原来的id_rsa文件,全部重新配置一次。附上完整的,在github中添加ssh的方...
2018-04-03 14:23:57 626
原创 阻塞队列
1、阻塞队列阻塞队列与普通队列的区别在于, 当队列是空的时,从队列中获取元素的操作将会被阻塞, 或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。 同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完全清空队列,阻塞队列(Blo
2017-11-08 22:17:01 384
原创 java中的instanceof的用法
instanceof运算符用法运算符是双目运算符,左面的操作元是一个对象,右面是一个类.当 左面的对象是右面的类创建的对象时,该运算符运算的结果是true,否则是false 例如 a instanceof A 如果a是类A的实例,就返回true,否则的话,就返回false。interface A{ } class B implements A{ } class
2017-11-07 22:21:23 1898
原创 http协议
httphttp协议工作于客户端-服务器架构之上。 http是应用层协议,常基于tcp的连接方式。 HTTP默认端口号为80。http的特点:(1)http是无连接的。 每次连接只处理一个请求,服务器处理完客户的请求,并受到客户端的应答后,即断开连接,采用这种方式可以节省传输的时间。 (2)http是无状态的。 http是无状态协议,无状态协议是指对于事务处理没有记忆能力,缺少状态意味着如
2017-11-07 22:09:30 330
原创 cookie和session
cookie和session1、cookie将数据保存在客户端,cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,如果主要考虑安全应当使用session单个cookie在客户端的限制是3k2、session将数据保存在服务器端,session会在一定时间内保存在服务器上,当访问增多,会比较占用服务器的性能,如果主要考虑减轻服务器性能方面,应当使
2017-09-25 21:39:49 338
原创 上台阶问题
上台阶问题,一次上一层或两层,请问上n层的时候,有多少种方案。f(n)=f(n-1)+f(n-2)import java.util.*;public class GoUpstairs { public int countWays(int n) { // write code here int[] arr=new int[n+1];
2017-09-17 21:25:43 669
原创 排序算法
排序算法总结冒泡排序:时间复杂度O(N^2)冒泡的思想:第一个数和第二个数比较,如果第一个大就交换,接着第二个数和第三个数比较。 这样第一次循环结束,就能把最大的一个数放在最底部。实现的代码:import java.util.*;public class BubbleSort { public int[] bubble
2017-09-12 22:29:59 901
原创 二叉树的层序遍历
java队列队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。二叉树的层序遍历思路:设置两个标志last和nlast,last为本层的最右结点,nlast为队列尾部的结点。node为当前结点,当
2017-09-12 20:55:53 659
原创 忽略idea中的错误
在idea中,有时没有问题,但是idea提示错误,用红色的波浪线标注。如何去掉:按下Alt-Enter。 看到弹出菜单了吗?有一项的子菜单是Disable Inspection。选了就好了。
2017-09-06 14:51:03 3903 2
原创 Restful设计
1、Restful设计get 查询post 添加/修改put 修改delete 删除2、url映射学习视频地址:http://www.imooc.com/video/11728@RequestMapping注解:(1)支持标准的URL(2)Ant风格URL(即?和*和**等字符)?表示匹配一个字符,*表示任意字符,**表示任意URL路径(3)
2017-09-05 11:38:19 297
原创 java获得指定时间的时间戳
在java中常常需要用到,获得指定时间的时间戳。下面的程序是我写的生成10位时间戳的代码,package test;import java.text.ParseException;import java.text.SimpleDateFormat;import java.text.DateFormat;import java.util.Calendar;public class
2017-09-04 20:54:06 33063 1
原创 有几个PAT
字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。现给定字符串,问一共可以形成多少个PAT?输入描述:输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。输出描述:在一行中输出给定字符串中包含多少个PAT。由于结果可能比较大,只输出对10000000
2017-08-28 17:10:14 399
转载 mysql联合索引
MySQL 联合索引建立应该遵循左到右顺序,以where时候可能的column排序为基准。如果例如:where firstname='' and lastname='' and age=''建立的联合索引顺序应该为key(firstname lastname age),这样就相当于建立一个key(firstname)、一个key(firstname lastname
2017-08-26 21:30:43 476
原创 最大子数组的和
最大子数组的和思路:采用动态规划的思路,假设对于元素i,所有以它前面的元素结尾的子数组的长度都已经求得,那么以第i个元素结尾且和最大的连续子数组实际上,要么是以第i-1个元素结尾且和最大的连续子数组加上这个元素,要么是只包含第i个元素。当i-1个元素的最大和大于0时,加上第i个元素自然会更大。当i-1个元素的最大和小于0时,第i个元素本身更大。import java.util.
2017-08-26 21:24:28 452
原创 第K大的数
第k大的数。思路:利用java自带的排序函数进行排序。int[] a={1,4,-1,5,0};Arrays.sort(a);(1)Arrays类中的sort()使用的是“经过调优的快速排序法”;(2)Arrays类之只是提供了默认的升序排列,没有提供相应的降序排列方法。(默认从小到大排序)。import java.util.*;public class
2017-08-26 21:11:01 764
原创 第一个只出现一次的字符
第一个只出现一次的字符。思路:先遍历一边字符串,使用hashmap格式保存每个字符出现的次数。再遍历一次,遇到第一个value为1的key,就返回。(即第一个只出现一次的字符)package test;import java.util.HashMap;public class day45 { public static void main(String[] arg
2017-08-25 11:15:06 239
原创 最长公共子字符串
最长公共子字符串 这是一个非常的经典的动态规划问题。 解题思路: 创建一个二维数组,dp[n][m],其中dp[i][j]表示取到s1[i]和s2[j]时的最大连续子串长度。如果s1[i]等于s2[j]时,dp[i][j]=dp[i-1][j-1]+1。public class day43 { public static void main(String[] args) {
2017-08-24 17:37:01 304
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人