阵雨的博客

never stop thinking

Java多线程并发

目录 为什么会出现锁 锁的类型以及相关概念 synchronized: synchronized的具体是怎么实现的呢? 现在回到synchornized代码实现上 Volatile: synchronized与Volatile的区别: Condition: Lock: sync...

2019-03-12 19:28:44

阅读数 31

评论数 0

实习生、应届生、三方协议、实习协议、劳动合同的区别

一.应届生与实习生的区别 应届生——毕业的最后一年,而校园招聘会招聘的就是应届生,通常来的都是有实力的企业,通过网申、笔试、技术面试、hr面试等,你大概率就算是企业的人了,只要最后考核过了就算正式员工了,整个流程因企业不同,至少会有技术面试和hr面试。拿到校招的offer就相当于拿到初步的劳动合...

2018-09-23 08:32:07

阅读数 6252

评论数 0

设计模式之装饰模式

装饰模式 理解: 为原有的功能,动态的添加新功能,修饰原有的核心功能和行为。 本质还是提纯原类,将核心不变的功能和修饰的东西分开,简化原有类。 举例: qq秀穿衣服,实际上人穿衣服,人是不变的,接着是衣服类别是不同的,装饰功能却是不变的,当需要修饰时,就调用修饰功能修饰包装原来的核心。 ...

2019-07-02 10:04:40

阅读数 10

评论数 0

面向对象原则

单一职责原则 概念:一个类引起他变化的原因就一个 优点:易维护、易扩展、易复用、灵活多样 缺点:如果一个类承担的职责过多,就相当于把这些功能耦合在一起,一个功能的变化可能会削弱或抑制这个类完成其他职责的能力。 开放-封闭原则 概念:对于开放是扩展的,对于更改是封闭的 面对需求时,对...

2019-07-02 09:21:15

阅读数 5

评论数 0

Volatile与synchronized详解

文章目录: 1.简单理解Volatile和synchronized 2.Volatile详解 3.synchronized详解 4.Volatile与synchronized的区别与联系 1.简单理解Volatile和synchronized: synchronized:当被synch...

2019-06-18 14:19:56

阅读数 18

评论数 0

圆圈中最后剩下的数字——剑指offer(Java)

/*题目 * 圆圈中最后剩下的数字 (约瑟夫环) * */ /*思路 * 不管第几个 圆圈内都是循环的,求余数就可以 * 注意要点 每次删除一个数,要从删除的下一个数开始 * 所以核心公式 bt + m - 1,以为数次 从0开始 故m-1, * 从删除数下一个 就是...

2019-03-20 11:33:15

阅读数 41

评论数 0

设计模式

单例模式:保证一个类只有一个实例,并提供一个访问他的全局访问点 工厂模式:定义一个用于创建对象的接口,让子类去决定实例化哪一个类,Factory Method使一个类的实例化延迟到子类 适配器模式:将一个类的接口转换成客户希望的另一个接口,是的原本由于接口不兼容而不能一起工作的那些类可以一起工...

2019-03-15 10:38:46

阅读数 18

评论数 0

二进制中1的个数——剑指offer(Java)

/*题目 *输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 * */ /*思路 * * (n-1) & n 操作会使 末尾变0 * 5 =》 101 4 =》 100 101 & 100 = 100; 如果有...

2019-02-26 18:02:18

阅读数 19

评论数 0

二维数组中查找目标值——剑指offer(Java)

/*题目 * 在一个二维数组中,每一行从左到右递增,每一列从上到下递增 * 输入一个二维数组和目标值,判断数组是否含有该目标值 * */ /* 分析 * 到右下角都是递增的,所以选一行列的最大值开始查找,即右上或者左下 * 因为是递增,所以判断比原来元素大还是小,直接移动 * 在一列看,...

2019-02-26 16:20:47

阅读数 46

评论数 0

字符流中第一个不重复的数字——剑指offer(Java)

/*题目 * 请实现一个函数用来找出字符流中第一个只出现一次的字符 * */ /*思路 * * 巧用 字符数组解决问题, ch[c]++ ,用来标记出现的次数, 等于1的时候只出现一次 * */   char[] chars = new char[256]; St...

2019-02-26 01:59:53

阅读数 16

评论数 0

表示数值的字符串——剑指offer(Java)

/*题目 *请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 * * */ /*思路 *例如,字符串 “+100”、”5e2”、”-123”、”3.1415” 以及 “-1E-16” 都表示数值, * 但”12e”、”1a3.14”、”1.2.3”、”+-5” 以及 “1...

2019-02-26 01:57:48

阅读数 59

评论数 0

字符串转为整数——剑指offer(Java)

/*题目 * 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数 * (数值为0或者字符串不是一个合法的数值则返回0)。 * */ /*思路 * "-4c+4\@ AD " * 注意以上字符, 字符0 对应48 9对应57,完美的将数...

2019-02-25 21:30:29

阅读数 23

评论数 0

第一个出现一次的字符——剑指offer(Java)

/*题目 *在一个字符串中找到第一个只出现一次的字符。如输入acbacd,则输出b。 * * */ /*思路 * 要想找到这一个字母 必须全部遍历还要记录次数 * 双层循环可以解决,但是时间复杂度为 o(n^2) * 利用hash结构,空间换时间,存储字母出现的次数, 时间复...

2019-02-24 16:26:44

阅读数 44

评论数 0

替换字符串中的空格——剑指offer(Java)

/*题目 * 将一个字符串中的空格替换为 "%20" * */ /*思路与注意点 * 1.循环比较字符串单个字母,空格追加“%20”,否则追加字母 * 2.在组成新的字符串的过程中,大量字符串组成String效率太低,采用StringBuilder,Stri...

2019-02-24 12:23:59

阅读数 19

评论数 0

反转字符串——剑指offer(Java)

/*题目 * 翻转字符串,字符串中的单词不翻转,单词以空格隔开 * I love you => you love I */ /*思路 * 先反转整个字符串,再将单词反转 * 易混淆知识点:length为数组方法,length()为String方法 *...

2019-02-24 11:43:11

阅读数 85

评论数 0

判断二叉树A是否包含子树B——剑指offer(Java)

/*题目 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) * * */ /*思路 * * 先从根节点开始判断, * 1.如果根节点相同,则从头遍历 * 2.如果根不同,则从左右两个遍历,任意一个含有B树都可以,如果失败则递归 * doesTree1H...

2019-02-23 21:35:13

阅读数 234

评论数 2

数组中只出现一次的数字——剑指offer(Java)

/*题目 *一个整型数组里除了两个数字之外,其他的数字都出现了两次,请找到这两个只出现一次的数字 * */ //知识点温习:两个相同的数异或 为 0,异或满足交换律和结合律 /*思路 * 时间复杂度o(n) 空间复杂度o(1) * 将数组所有的数异或,最终只剩两个不相同的数异或结果,...

2019-02-21 15:16:03

阅读数 12

评论数 0

滑动窗口的最大值——剑指offer(Java)

/*题目 *给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3, * 那么一共存在6个滑动窗口:{[2,3,4],2,6,2,5,1}, * {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,...

2019-02-21 10:54:38

阅读数 23

评论数 0

用两个栈实现队列

/*题目 *用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 * */ /*思路 * 这个题目其实算是一道简单题,只要有数据结构理论的,完全可以理解整个过程,其核心思想就是两个栈, * 一个用来push原始进入,类似仓库的功能,仓库的元素按照栈的规则存放入货...

2019-02-20 13:04:34

阅读数 25

评论数 0

从尾到头打印链表——剑指offer(Java)

/*题目 * 输入一个链表,从尾到头打印链表的每一个节点值 * * */ /*思路 * 借助栈实现,或使用递归 * 栈具有先进后出,可以从尾到头 * * */ class ListNode{ int val; ListNode next=null; ...

2019-02-18 13:24:47

阅读数 13

评论数 0

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