Gank模式开启 今天很是无聊,又去逛了基友的博客。在里面读了两篇博客,一篇说的是单例设计模式,一篇说的是关于他这篇单例设计模式的反射侵犯。 好奇心驱使 关于基友文章里的单例模式的确是有BUG的,那种方式是可以被轻松破坏…
分类:架构
Runtime基本介绍
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。 这…
数据结构_知识点_循环链表&双链表
1. 循环链表 与单链表基本无异,但有如下两点需要注意: (1)最后一结点的指针域必须指向头结点,这样才能循环 (注意,指向的是没有存数据头结点,而非第一个存有数据的结点) (2)使用尾指针而非头指针表示链表,这样找寻头…
测试人员代码走查基础要点
代码走查,是测试人员了解代码逻辑,进行测试设计的重要环节。并且有很多bug并非需要到运行程序进行测试才能发现。通过合理的代码走查方法能提前发现相当多的BUG。除常见…
剑指offer第二版-53.数字在排序数组中出现的次数
本系列导航:剑指offer(第二版)java实现导航帖 面试题53:数字在排序数组中出现的次数 题目要求: 统计一个数字在排序数组中出现的次数。例如,输入{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现…
优美的HASH运算
一,Hash函数: 是把任意长度的输入,通过Hash算法变换成固定长度的输出,该输出就是Hash值;这种转换是一种压缩映射,也就是Hash值的空间远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯…
元程序设计之 Reflect(映射)
全局对象 Reflect 内置了 JavaScript 元对象协议的所有可拦截操作作为方法。这些方法的名称与处理程序方法的名称相同,正如我们已经看到的,它们有助于将处理程序的操作转发到目标。 Reflect 上的方法可以…
剑指offer第二版-9.用两个栈实现队列
本系列导航:剑指offer(第二版)java实现导航帖 面试题9:用两个栈实现队列 题目要求: 用两个栈,实现队列的从队尾插入元素offer()和从队头抛出元素poll() 相关:用队列实现栈 思路: (1)对于插入操作…
剑指offer第二版-56.2.数组中唯一只出现一次的数字
本系列导航:剑指offer(第二版)java实现导航帖 面试题56.2:数组中唯一只出现一次的数字 题目要求: 在一个整数数组中除了一个数字只出现一次外,其他数字都出现三次。找出那个出现一次的数字。 解题思路: 如果题目…
Advent of Code Day 10 结哈希
解题语言不限Java 拖更了,不好意思 Advent of Code Day 1 逆向验证码 Advent of Code Day 2 损坏校验和 Advent of Code Day 3 螺旋内存 Advent of …
Java算法之TwoSum
给定一个int数组,其中两个数相加等于一个特定值,返回这两个数的索引 示例 int数组: [2, 7, 11, 15], 特定值 : 9, 因为: nums[0] + nums[1] = 2 + 7 = 9, retur…
筛法求N以内的素数Java实现
使用筛法求N以内的素数,从2开始,不断剔除2的倍数,然后从剩下的数字中,选择最小的数3(这个数一定会是素数),然后剔除所有3的倍数,依次类推,最后剩下的数就全是素数了。 public class Prime { // 返…