![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 50
大卫不加班
不会做饭的厨师不是好程序员!
展开
-
java面试题之多线程
多线程环境下,对共享变量的操作,要么加锁,要么CAS加锁 :保证只能同时有一个线程去操作 数据CAS:比较交换,预期旧值,偏量值 ,主要思想是通过读取主内存的值 和预期旧值比较,如果相同,则将新值=预期旧值+偏量值 写入主内存经典的使用例子便是jdk 中的atomic 包(查看源码可以看见有乐观锁的思想)以AtomicInteger 的 getAndIncrement() 方法为例Ato...原创 2019-11-06 11:08:17 · 258 阅读 · 0 评论 -
o(n)时间复杂度查找所有元素后面第一个比他大的数
1,输入n个无序整数输出 每个数之后第一个比他大的数,要求时间o(n)示例:1,-1,2,3输出:2 2 3解决思路:栈+栈底指针入栈:栈为空,入栈 1-1< 栈底=1 入栈 1 -12 >栈底=1 ,全部出栈,输出 2 2...原创 2019-03-07 15:09:36 · 1913 阅读 · 0 评论 -
大数乘法
给定两个长度不限的数字字符串,求乘积.思路:如果是让你手算,你一定会列竖式,然后数字a的每一位去乘数字b的每一位,而且还都是从最低位开始.那么代码也可以模仿这一过程.比如:输入 “123” “20”那么计算竖式应该是这样: 1 2 3 2 0 1*0 2*0 3*0 2*1 ...原创 2019-03-03 21:10:24 · 294 阅读 · 0 评论 -
二叉树学习(一)普通二叉树的遍历与还原
二叉树是一种很重要的数据结构,一般的操作就是遍历和还原.有着很多重要的应用,比如红黑树,二叉排序树(也叫二叉搜索树)查找性能很高, jdk8 hashmap是 基于红黑树实现的,如果对二叉树不了解,那么对二叉树的变形(搜索树,平衡树,堆排序)无从入手.二叉树定义:...原创 2019-02-07 18:37:10 · 531 阅读 · 1 评论 -
使用栈寻找迷宫通路
问题描述:给定一个n*n的迷宫矩阵,障碍物记为1,无障碍记为0int[][] map = new int[][]{{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},{1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1},{1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1},{1, 1, 1, 0, 0, 1, 1, 1, ...原创 2019-01-28 11:24:10 · 655 阅读 · 0 评论 -
java 中的各种奇怪的执行顺序之对象篇
面试题中常常遇见子类继承父类,new一个子类对象,请写出执行顺序,着实恶心.写个小小demo,来理解一下.public class Parent { public int publicPro; private int privatePro; protected int protectedPro; static { System.out.prin...原创 2019-01-25 22:40:43 · 131 阅读 · 0 评论 -
java 中的各种奇怪的执行顺序之异常篇
try{statement1;} catch(ExceptionType1 e1){ statement2;} catch(ExceptionType2 e2){statement3;}finally{statement4;}情况讨论:1,statement1 抛出异常e,如果e是e1类型或子类型,那么就会进入 statement2,不会进入 statement3...原创 2019-01-25 22:39:11 · 302 阅读 · 0 评论 -
redis多级别缓存
redis多级别缓存按照粒度由粗到细:以商品详情页为例1,页面级别缓存(有时也叫url级别缓存,将页面手动渲染存到redis(key=商品id,val="商品详情页面,以后再次请求这个页面时,从redis中获取,直接向前端返回text/html,并且可以告诉浏览器在本地缓存该页面,缺点是页面数据更新不及时)2,对象级别缓存(如商品数据,(key= 商品id,val=“数据...原创 2018-09-14 15:44:49 · 7519 阅读 · 2 评论 -
一个计算器,只能乘2和减1
现有一个奇葩的计算器,只能执行乘2和减1操作,现在给定任意两个数字m,n,其中m,n范围是 1<=m,n<=10^9解决方式:分情况讨论:1,m=n 结果为02,m>n 结果为 m-n3,m<n 3.1 m<2*n-1 m-=1 3.2 m>=2*n-1 m*=2c++代码实现:1,循环实现int...原创 2018-09-03 21:47:46 · 2479 阅读 · 0 评论 -
topK问题分析与实现
一,什么是topK问题?一组数据中,需要找出前k大(小)的数据二,思路分析:以前k小为例思路1:先排序再输出如果是完全有序,那么输出所求数据很简答了(需要排序,将数据完全排序)思路2:基于快排,分片,不完全排序使用快排思想,不断分片,左侧是比基准小的元素,右侧是比基准大的元素, 令 index=基准元素下标a, index<k 说明第k小元素...原创 2018-09-08 11:25:18 · 2378 阅读 · 0 评论 -
sql之case then
已知 info 表Date result2005-05-09 win2005-05-09 lose2005-05-09 lose2005-05-09 lose2005-05-10 win2005-05-10 lose2005-05-10 lose如果要生成下列结果, 该如何写sql语句? date win lose...原创 2018-06-20 22:43:11 · 207 阅读 · 0 评论 -
java冷知识之 outer与inner
看到一个面试题:题目如下,求输出结果:public class Test4 { public static void main(String []args){ int i=3,j; outer:while(i&gt;0){ j=3; inner:while(j&gt;0){ ...原创 2018-06-20 22:31:53 · 3694 阅读 · 2 评论 -
找出重复两次的数--有且只有一个数字重复两次,其余都不重复
问题描述:数字范围是0-99的整数,给出101个整数,其中只有一个是重复两次的数,找出这个数分析:如果是有序的话,遍历一次就可以找出方法一:先排序,再遍历,遍历超过一次方法二:只是排序,排序过程中对于元素相等这一特殊情况拿出来判断,直接返回相等的这个元素,方法三:使用亦或运算符 ^ ,这个也是刚了解到的,遍历一次 相同数字 亦或一次 结果是 0 不同数异...原创 2018-06-20 22:17:22 · 5838 阅读 · 0 评论