自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 网易秋招校招编程题

  网易内推面试凉了,再战正式批笔试,选择和简答略难,编程题很良心,基本就是模拟、找规律,略加思考就能解出来的题目,本弱鸡只有在良心网易笔试才能AK。 1、翻转翻转      这题一开始没思路,ac了后两题后再回来思考,发现只需要判断某个位置周围有几个点,就代表了那个位置会被别的点翻转几次,那么如何求周围有几个点呢?   简单的把位置分成3类:     一类是四个顶点:每个顶点...

2018-09-08 19:21:00 162

转载 堆外内存总结

前言   上次网易一面面试官提到了“是否了解堆外内存?”、“堆外内存是否需要手动释放?”等问题,那时候我误以为所提到的“堆外内存”是指元空间这个jvm管理的堆外内存,对于元空间是否手动释放这样的问题就令我十分疑惑,按理说当元空间的类信息会在类被定义成“无用的类”时会被回收,因此不需要我们手动释放,然后面试小哥又重复了一遍我的回答“不需要手动释放吗?”,我只能回答对此可能不是很了解。 ...

2018-09-06 15:34:00 146

转载 网易秋招内推编程题题解

  第一次全做对惹,悄悄的骄傲一下下然后夹紧尾巴告诉自己是个弱鸡QAQ。 1.暴力   题目不记得了,大致意思就是给两个数组,一个数组a【i】表示在第i时刻能获得的知识,另一个数组b【i】只含1、0,1表示小明(名字是小明咩?)醒着,0表示他没醒,你有一次叫醒他的机会,可以叫醒k分钟,问他能得到的最多的知识是多少。emmm做了题的应该知道是哪一题吧,当时也没想太多,反正是暴力解,就不...

2018-08-11 17:43:00 110

转载 LRU、FIFO缓存实现以及LinkedHashMap源码

  本篇将描述如何使用LinkedHashMap实现LRU以及FIFO缓存,并将从LinkedHashMap源码层面描述是如何实现这两种缓存的。 1.缓存描述   首先介绍一下FIFO、LRU两种缓存:     FIFO(First In First out):先见先出,淘汰最先近来的页面,新进来的页面最迟被淘汰,完全符合队列。     LRU(Least recently us...

2018-08-04 18:44:00 123

转载 字符串匹配——KMP算法(leetcode 28)

1.前言   在一个字符串中寻找是否包含目标字符串,实现这个要求并不难,遍历文本的每个字符串,如果和目标字符串的第一个匹配,就把匹配的字符后移一位继续对比,直到不匹配,然后将文本的指针后移一位,继续对比即可。但是这样的暴力匹配最坏情况的时间复杂度为O(n*m),而KMP算法可以将其复杂度降低到O(n+m),减少重复对比次数。 2.正文   在学习KMP算法时,我翻阅了不少博客...

2018-08-03 22:18:00 244

转载 eclipse中查看maven使用的jar包源码

  今天在eclipse中debug看springmvc的流程时,发现方法看不了,一直显示“source not found”。以前虽然也遇到过,不过由于不涉及到核心方法就没在意,于是今天就搜索了一下解决方法。 1.设置自动下载源码   在eclipse的maven工程中,一般是不能是不能查看源码的,因此需要设置maven导包时自动下载源码,操作如下:   window ==&g...

2018-08-01 16:41:00 309

转载 【leetcode】Weekly Contest 94

  题目不难,被第二题卡了半个多小时QAQ,另一个就是以后能用Hashmap和Hashset的绝不遍历。 1. Leaf-Similar Trees   dfs、层次遍历把叶子节点遍历然后对比即可,只要是先遍历左节点后遍历右节点就行。 1 class Solution { 2 public boolean leafSimilar(TreeNode roo...

2018-07-22 20:59:00 77

转载 JAVA并发之CountDownLatch

前言   之前我们将ReentranLock从锁层面到AQS源码层面分析了如何构建一个所需的同步器,使用AQS需要实现哪些方法。ReentranLock的CLH队列中每个节点都是独占(EXCLUSIVE)的,那么节点的另一种等待方式——共享(SHARED)又将是什么样子的呢?本篇博客让我们通过另一个同步器——闭锁(CountDownLatch)来了解一下有什么不同的吧。 Countd...

2018-07-18 17:08:00 85

转载 JAVA并发之ReentrantLock源码(二)

  上一篇我们讲到了ReentrantLock通过使用AQS框架实现了tryAcquire、tryRelease方法,从ReentrantLock层面分析源码,本次我们将进一步深入AQS类,查看AQS底层是如何实现线程同步的。 1.acquire()   首先自然从加锁开始看起,从lock.lock调用AQS中的acquire方法,我们已经进入了AQS源码层面,一个看起来很简洁的ac...

2018-07-17 22:25:00 79

转载 【leetcode】Weekly Contest 93

  又是周末,leetcode周赛,菜鸡下定决心要AK一次,然后失败了,周常三题QAQ。 1.Binary Gap   第一题给一个数字,让你找数字的二进制中相邻的1最大距离是多少,直接扫描一遍就好啦。 1 public int binaryGap(int N) { 2 int last = -1; 3 int res = ...

2018-07-15 11:56:00 97

转载 JAVA并发之ReentrantLock源码(一)

  离上一篇AQS概述已经很久惹,期间也看了一点ReentrantLock、CountdownLantch等的源码,不过并没有看的很深入,也没有把我的理解都记录下来。今天简单的看过线程池之后,就准备对ReentrantLock做一个源码分析,来看看这个lock是怎么做到让多个线程同步的。本文主要是ReentrantLock源码层面的叙述,不会深入到AQS中已经构造好的方法。 1.ree...

2018-07-15 00:42:00 113

转载 java并发之线程池

  自从看了《JAVA并发编程实战》,最吸引我的除了AQS构造的一系列同步器以外,就是线程池了,今天就来讲讲JAVA的线程池。 1.构造方法以及主要参数   之前我翻源码是从成员变量看起,不过由于ThreadPoolExecutor的变量有点小多,那么就先从构造方法开始。先找到下面那个最全的构造器: 1 /** 2 * Creates a new {...

2018-07-14 20:23:00 67

转载 Quine--输出程序源码的程序(java)

  今天看到一个很有意思的问题,如何输出一个程序自己的源码,看到这个问题的第一反应自然是读取源码文件,然后逐行输出即可。   但是,如果加上限制条件不能读取文件呢?   emmm...思考许久之后,WIKI解救了我,以下内容皆摘自wiki。先上源码。 public class Quine { public static void main(String[] args) ...

2018-07-11 23:52:00 255

转载 【leetcode】Weekly Contest 92

  emm,两天打的周赛,万年三题qaq,不过这次题目好像比上次的难一丢丢。 1.Transpose Matrix   把矩阵A[i][j]的每个元素改成B[j][i],超级超级大水题,然后wa了两发qaq。 1 public int[][] transpose(int[][] A) { 2 int row = A.length; 3 ...

2018-07-10 19:43:00 101

转载 【java集合类】ArrayList和LinkedList源码分析(jdk1.8)

前言:   ArrayList底层是依靠数组实现的,而LinkedList的实现是含前驱后继节点的双向列表。平时刷题时会经常使用到这两个集合类,这两者的区别在我眼中主要是ArrayList读取节点平均时间复杂度是O(1)级别的,插入删除节点是O(n);LinkedList读取节点时间复杂度是O(n),插入节点是O(1)。   本文记录我对jdk1.8下的ArrayList和Linke...

2018-07-08 01:34:00 112

转载 【leetcode】Weekly Contest 91

  leetcode周赛,早上起来发现没网,用热点意识模糊的a了三个水题。 1.Lemonade Change   简单模拟题,收到十元用五元钱找回,收到20元时优先用一张10一张5,如果10不够用3张5,如果没有就返回flase(贪心)。 1 public boolean lemonadeChange(int[] bills) { 2 int...

2018-07-01 23:57:00 86

转载 牛客2018.6模拟考编程题

emmm,今天的题目不知道怎么评价,感觉不难但是可能是太菜了,感觉时间不够and测试数据有点?emm异常。。 1.牛牛玩牌   题目如上,比较前三张的大小,模拟前者大于后者的可能数。样例没看懂。。0.3905*45*46是808.3,我模拟出来的可能数是807。(等牛客把模拟编程题再补这题吧)。 2.牛牛数星星 看到m,n<=10w就把撸到一半的暴力...

2018-06-14 22:43:00 102

转载 JAVA并发之AQS概述

一、前言   自从看了《java并发编程实战后》,被用来构建锁以及同步工具的框架AQS在我心中是一个很厉害的东西,juc包下的很多工具类都是依靠AQS实现的,比如CountDownLatch、ReentrantLock、Semaphore、Mutex等。(本系列所有源码均来自jdk1.8,书中提到的FutureTask在jdk1.8下并没有依靠AQS实现)。   记得第一次看A...

2018-06-01 18:57:00 82

转载 牛牛取快递——从dfs到dijkstra以及堆优化的dijkstra

由于上一篇博客的第三题“牛牛取快递”上次还未ac,因此今天特意再来尝试一下,上次使用暴力dfs搜索最短路径超时的我,在大佬们解题思路的“熏陶”之下,终于在我的记忆深处找回了那被封印依旧的dijkstra算法。 dijkstra算法主要是选择一个初始点s,每次选择一个离s距离最小并未被选过的点t,并通过t作为跳板,更新其余点到s的距离(如果比原来还长就不更新啦)。然后不断重复这个过程即可...

2018-05-26 02:02:00 268

转载 牛客2018java模拟编程题

计算把钱全付房租能过几天,把已有的水果换成钱计算买水果和付房租能撑过几天,取小的那个即可。 Scanner in = new Scanner(System.in); while (in.hasNextInt()) {// 注意while处理多个case long x = in.nextLong(); long f = in.nextLong(...

2018-05-23 21:51:00 114

转载 排序算法java实现以及简易性能测试

离上一篇博客已经一个星期了,一直想把学到的东西写出来,但总觉得领悟的不够透彻,想写点数据库事务吧,对每种隔离级别所对应的加锁情况以及mvcc只是一知半解;想学着别人写hashmap源码分析吧,看到红黑树,emmmmmmm等我把红黑树弄明白了再好好写一篇hashmap…… 那今天,先把八大排序算法实现一遍好了。在之前学数据结构时,八种排序算法大致流程都能弄明白(其实有几个还是有些误解的,...

2018-05-22 00:28:00 80

转载 java 死锁例子以及闭锁使用确保死锁产生

今天在参悟他人面经过程中发现一个“简单”的问题:编写一个死锁的代码实例。 看到这个问题,被一个个“高深”的问题虐的怀疑人生的我立马撸了一个java死锁的例子。 1 public class Deadlock { 2 3 //两个被锁的元素 4 private Object l = new Object(); 5 private ...

2018-05-14 00:48:00 127

空空如也

空空如也

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

TA关注的人

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