oneone1995

Results 19 issues of oneone1995

# 秋招面经 9月中旬从实习单位正式离职开始准备秋招,早出晚归复习,直到10月1日没有一个offer。这段时间心态十分爆炸,生活一团糟,国庆放假回家睡了两天,和朋友爸妈聊了很多稍微舒服了一点。大概生活还要继续。说是面经其实到现在为止面试机会都寥寥无几,写下来也作为自己不懂问题的集合,可以为了以后的面试好好准备。哼最想去的51信用卡结果笔试都挂了。 --- ## 数立信息(一面挂) 一家很小的公司,把我挂了之后心态瞬间爆炸,觉得自己还没有菜到这种地步。 - 项目,爬虫策略,直接打开网页让我说怎么爬。(项目涉及爬虫) - 数据结构,哪块熟悉,说了查找和树。从二分查找讲到查找树、平衡树、红黑树 - MySQL索引,B树。画B树 - 问红黑树在java中的应用。说了HashMap。 - HashMap源码,put操作、hashcode怎么计算,为什么这么计算、hash冲突、初始化数组为什么是2的幂次 - HashMap是否是线程安全,如何变成线程安全,并发情况下会产生什么问题 - ConcurrentHashMap如何解决这个问题 - **session过期概念**,这一块答炸了 - session保证一个时间点只能一个浏览器登录。这个也炸了.. - 分布式session - **spring bean生命周期**。忘了。...

blog

# Windows Subsystem for Linux使用全记录 微软大概为了和```OS X```竞争,在```windows```环境下加入了一个```linux```子系统,据说是目前最好用的Linux发行版(滑稽)。我个人看来的话是有学习```linux```或者某些业务场景需要使用但不想装虚拟机的话```wsl```确实是一个不错的选择,事实上也确实比虚拟机流畅。 --- ## 安装 在我安装的时候需要在设置中的```针对开发人员```选项中勾选```开发人员模式```,然后在控制面板中```启用或关闭Windows功能```中勾选```适用于Linux的Windows子系统```,最后在cmd中输入```bash```命令等待下载完成即可。最新的windows周年更新后貌似可以直接在应用商店下载(搜索Ubuntu),我没有尝试过。 --- ## 使用Cmder 当然你不用也没有关系,wsl自带了一个终端,我觉得它太丑,所以找到了cmder。可以在[cmder官网](http://cmder.net/)下载解压后直接可以使用。cmder默认终端是cmd,因此你可以直接输入```bash```命令来进入wsl,如果觉得这样比较麻烦,你可以在设置中新增一个task来快速打开,就像下面这样: ![cmder_setting](https://raw.githubusercontent.com/oneone1995/blog/master/2017-11/assets/cmder_setting.png) 需要在右边输shell启动命令的地方输入 ```cmd %windir%\system32\bash.exe ~ -cur_console:p:n ``` 这样设置完之后在cmder中点击```create new console```那个绿色的加号旁边的三角便能看到刚刚新增的wsl条目。如果你想将wsl在你打开cmder之后便立即启动则需要在下图的```start up```中设置: ![start_up_setting](https://raw.githubusercontent.com/oneone1995/blog/master/2017-11/assets/start_up_setting.png) 到这里之后你每次启动cmder便会自动进入wsl --- ##...

blog

# 从匿名内部类与策略模式到Java8的Lambda > 说明:本文为[《Java8实战》](https://book.douban.com/subject/26772632/)第一部分(基础知识)的读书笔记。按书的思路以及自己的理解整理了```Lambda表达式```与函数式编相关的内容,而关于Java8的整体概览则没有阐述。 --- ## 农民的苹果问题 本书用一个农夫不断变更关于筛选苹果的需求的例子来引出函数式编程。 苹果有重量和颜色两个属性,有个农夫最初希望筛选出库存中绿色的苹果。所以你写了一个苹果颜色筛选器,这很容易实现。只需要遍历库存列表,将符合颜色属性为绿色这个条件的苹果添加到一个新的容器就行了: ```java private static List filterGreenApples(List inventory) { List result = new ArrayList(inventory.size()); for (Apple apple : inventory) { if ("green".equals(apple.getColor())) {...

blog
reading-notes

# 最小的k个数 ## 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 ```java public class Solution { public ArrayList GetLeastNumbers_Solution(int [] input, int k) { //write code here } } ``` [牛客网OJ链接](https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf?tpId=13&tqId=11182&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking) --- ## 解题思路 既然是求最小的k个数,很明显需要是要对数组进行排序。而题目又要求是求出前k个数因此不需要对整个数组进行全排序,能做到只排序前K个数的排序算法是堆排序。这里有基于堆排序的两种方案: 1....

blog
coding-interviews

# 从尾到头打印链表 ## 题目描述 输入一个链表,从尾到头打印链表每个节点的值。 ```java /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; *...

blog
coding-interviews

# 二维数组中的查找 ## 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 ```java public class Solution { public boolean Find(int target, int [][] array) { //write code here } } ``` [牛客网OJ链接](https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tqId=11154&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking) --- ## 解题思路 遍历的方法这里就不说了,两层for循环遍历查找即可。这里说另外一种方法,根据题目的意思我们可以知道任何一个数x左边的数都比x小,x下边的数都比x大。因此我们可以通过比较x和查找目标的大小来缩小查找范围,并且为了方便移动坐标我们将x的出发点设置在右上角,此时如果target比x小,target必定在x左边,即将x的横坐标向左走一步,如果target比x大,target必定在下边,即将x的纵坐标向下走一步。 按以上方法不停的缩小范围即能得到查找结果是否存在。唯一要考虑的只剩下循环的终止条件。这个终止条件很容易想出,因为我们是从右上角开始缩小范围(这里的缩小范围指的是x横坐标减小,纵坐标增大),所以当x的横坐标小于0或者纵坐标大于二维数组的```length...

blog
coding-interviews

# 用两个栈实现队列 ## 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 ```java import java.util.Stack; public class Solution { Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int node) { //write code...

blog
coding-interviews

# Hello World 这是提交的第一个文章 hello world!! (完 2017年8月31日)

blog

因为找不到您博客的评论区...只好来GitHub提issue了。关于[九价](https://blog.fiteen.top/2019/oh-hpv)那篇中提到的微信授权问题,今天我也碰到了...因为我不是做前端开发的,对这块不了解也,在微信官方文档上看了一下感觉可以通过chrome devtooles的方式来解决,您觉得是否可行