自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

破茧成蝶

输出永远是最好的输入!

  • 博客(36)
  • 资源 (2)
  • 收藏
  • 关注

原创 一个5年iOS开发者的困惑:路在何方?

最近陆陆续续参加了四家公司的面试,居然一个offer没拿到。 最后一家面试回来,我坐下来静静地回想了一下这次的面试历程: 第一家公司: 公司概况:一家初创型公司,公司的老板是90后,看样子是个富二代,手里面有一些人脉资源,公司的主要业务是准备做一些小额贷款系统出售,大饼是后期做一个系统超市,实现流量变现。公司的预计技术团队包含iO...

2019-05-06 11:44:58 1023

原创 iOS开发日常-原生与H5交互逻辑

文章目录背景之前的方案现行方案背景  随着H5功能愈发的强大,混合开发势在必行,其中涉及的原生与JS的交互逻辑如何设定就成了当务之急。之前的方案  1.通过URL截取方法名和参数方式(缺点:截取麻烦)  2.运用JavaScriptCore框架,通过JSContenxt对象注入方法(缺点:页面重定向后需要重新注入)  3.舍弃UIWebView,采用WKWebView,...

2019-04-15 21:53:34 568

原创 Java开发日常-Oracle中的dual表

文章目录简介用途简介  dual表是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。用途查看当前用户select user from dual;连接两个字符串select concat('025-','888') from dual;用做计算器select 2*9 from dual;...

2019-03-21 11:18:49 701

原创 iOS编程语言-Swift中结构体和枚举是值类型

文章目录Structures and Enumerations Are Value TypesAn Example to describe the EssenceThe Same Behavior applies to Enumerations:Choosing Between Structures and ClassesStructures and Enumerations Are Value...

2019-02-28 10:55:04 426

原创 Java开发日常-Oracle中group by与order by配合使用

文章目录现象原SQL语句异常原因现象在group by 和order by配合使用执行oracle数据库查询时,出现异常原SQL语句select SDEPARTMENT, SCONTRACT_NAME, avg(DCONTRACT_VALUE) DCONTRACT_VALUEfrom HY_PROJECT_ACCOUNTBOOK where SPROJECT_ID = 'EERI...

2019-02-26 09:40:30 981

原创 Java开发日常-Mybatis报错:java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符

文章目录报错SQL异常解决报错SQLselect b.TYPE_NAME SBIGTYPE_NAME, b.TYPE IBIGTYPE_TYPE, a.ID SSMALLTYPE_ID, a.SSMALLTYPE_NAME, a.DPLAN_AMOUNTALL FSMALLTYPE_PALN_AMOUNT, d.actual_amountall FSMALLTYPE_ACTUAL_AMOUNT...

2019-02-21 16:39:06 927

原创 iOS开发日常-git中如何忽略【项目.xcworkspace/xcuserdata/用户名.xcuserdatad/UserInterfaceState.xcuserstate】

问题在已添加了.gitignore文件的前提下,运行程序后执行git status,发现仍然存在Modified: projectName.xcworkspace/xcuserdata/userName.xcuserdatad/UserInterfaceState.xcuserstate原因ProjectName.xcworkspace/xcuserdata/userName.xc...

2019-02-14 09:37:35 2952

原创 数据结构与算法-赫夫曼树(最优二叉树)、赫夫曼编码

概要赫夫曼树定义如何构造赫夫曼树赫夫曼编码赫夫曼树定义  以两棵带权的二叉树为例:  从树中一个结点到另一个结点之间的分支构成两个结点之间的路径,路径上的分支数目称为路劲长度。二叉树a中,根结点到结点D的路径长度就为4,二叉树b中根结点到结点D的路径长度为2。树的路径长度就是从树根到每一结点的路径长度之和。二叉树a的树路径长度就为1+1+2+2+3+3+4+4=20。二叉树b的树路径长度...

2019-01-31 17:28:34 897

原创 数据结构与算法-二叉树遍历

概要基本概念研究二叉树遍历的必要性四种遍历方法前序遍历中序遍历后序遍历层序遍历基本概念  二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。研究二叉树遍历的必要性  如果我们用图形的方式来表现树的结构,应该说是非常直观和容易理解,但是对于计算机来说,它只有循环、判断等方式来处理,也...

2019-01-31 16:35:23 2942 1

原创 数据结构与算法-串

概要基本概念串的比较串的存储结构顺序存储链式存储串的模式匹配朴素模式匹配算法(低效)KMP模式匹配算法(推荐)基本概念  串(string)是由零个或多个字符组成的有限序列,又名叫字符串。一般记为s=“a1a2···an”(n≥0),其中s是串的名称,用双引号括起来的字符序列是串的值。ai(1≤i≤n)可以是字母、数字或其他字符,i就是该字符在串中的位置。串中的字符数目n称为串的长度。  ...

2019-01-30 14:31:49 501

原创 数据结构与算法-栈与队列

概要栈和队列都是特殊的线性表栈基本概念栈的应用-递归栈的应用-四则运算表达式求值【后缀(逆波兰)表示法】队列基本概念栈和队列都是特殊的线性表  何为线性表?栈基本概念  栈(stack)是限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)...

2019-01-30 11:00:41 352

原创 数据结构与算法-线性表

概要一图胜千言线性表基本概念线性表顺序存储顺序存储-查询顺序存储-插入和删除顺序存储-总结线性表链式存储链式存储-查询链式存储-插入和删除线性表单链表结构与顺序存储结构对比循环链表双向循环链表一图胜千言线性表基本概念  线性表(List):零个或多个数据元素的有限序列。  若将线性表记为(a1, ···, ai-1, ai, ai+1, ···, an),则表中ai-1领先于ai,ai...

2019-01-28 16:53:51 559

原创 iOS开发日常-前后台数据交互之RSA公钥验签

概要背景概述OpenSSL生成秘钥iOS本地RSA公钥验签背景概述  最近公司新启动一个项目,老大定了一套前后台加密交互方案:前台发送请求:RSA公钥加密 - 压缩 - Base64编码;后台返回响应:RSA私钥加密 - 压缩 - RSA私钥加签 - Base64编码;前台处理响应:RSA公钥验签 - Base64解码 - 解压 - RSA公钥解密。  因为iOS这边验签...

2019-01-24 14:58:55 640

原创 数据结构与算法-基本概念

概要数据结构基本概念逻辑结构与物理结构抽象数据类型算法定义特性设计的要求时间复杂度概念推导大0阶方法常见的时间复杂度最坏情况与平均情况空间复杂度数据结构基本概念  结构,简单的理解就是关系,比如分子结构,就是说组成分子的原子之间的排列方式。严格点说,结构是指各个组成部分相互搭配和排列的方式。  数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。  注:数据元素 – 是组成数据...

2019-01-21 14:31:35 449

原创 数据结构与算法-平衡二叉树(AVL树)-思想篇

概要基本概念实现原理图示平衡二叉树构建过程思想总结基本概念  平衡二叉树(Self-Balancing Binary Search Tree 或 Height-Balanced Binary Search Tree),是一种二叉排序树,其中每一个结点的左子树和右子树的高度差至多等于1。  我们将二叉树上结点的左子树深度减去右子树深度的值称为平衡因子BF(Balance Factor),那么...

2019-01-11 11:07:56 2070

原创 iOS开发日常-Git版本管理之如何解决fatal: refusing to merge unrelated histories错误

概要前情概述问题原因分析解决前情概述想将本地git管理的项目推送到github这样的远程仓库中,本地分支提交了部分内容,远程分支也有提交历史。问题本地添加远程仓库后(git remote add origin xx),执行git pull想拉取远程分支的内容时,报错:daqiangshendeMacBook-Pro:DQS~SourceCode dqs$ git statusOn b...

2019-01-09 18:11:51 683

原创 数据结构与算法-二叉排序树创建、查找、删除(Swift实现)

概要基本概念二叉排序树查找二叉排序树插入二叉排序树创建二叉排序树删除删除叶子结点或仅有左右子树之一的结点删除左右子树都有的结点总结基本概念二叉排序树(Binary Sort Tree),又称为二叉查找树。它或者是一棵空树,或者是具有下列性质的二叉树。若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右...

2019-01-09 17:36:26 1279

原创 Java开发日常-eclipse去掉无用的validation,提升编译速度

概要提出问题解决问题提出问题我们在eclipse里经常看到这个进程,validating…逐个地检查每一个文件。那么如何关闭一些validate操作呢?解决问题Step1. 打开eclipse,选择【preference】选项Step2. 在【Validation】选项中修改【Build】选项Note: 如果以后需要对某个文件进行校验,在文件上右击,点击【Vali...

2019-01-08 13:36:00 1422

原创 iOS开发日常-Carthage秘籍之【让现有的Swift项目支持Carthage】

概要Step1. 为现有项目新建TargetStep2. 新建的framework选择包含的文件Step3.编辑Schemes, 分享新建的frameworkStep4.生成最终的frameworkStep5.Release一个指定tag的版本Step6.使用CarthageStep1. 为现有项目新建Target现有项目上新建一个framework的target在Framework &...

2019-01-07 15:33:42 343

原创 iOS开发日常-Carthage秘籍之【安装、使用】

概要基本概念Carthage安装Carthage使用基本概念Carthage is intended to be the simplest way to add frameworks to your Cocoa application.Carthage builds your dependencies and provides you with binary framworks, but y...

2019-01-07 09:34:18 1009

原创 iOS开发日常-CocoaPods秘籍之【发布自己的项目至Specs repository】

概要Create the ProjectUpdating Your Pod's MetadataAdding CodeMaking Your Pod Available参考Create the Project  The pod lib command is an important tool that we’ll use for two purposes during the creatio...

2019-01-04 18:07:08 451

原创 iOS开发日常-CocoaPods秘籍之【安装、使用】

概要基本概念CocoaPods安装CocoaPods更新CocoaPods使用几点说明:Podfile、Podfile.lock、pod install vs. pod updateCocoaPods原理![](https://img-blog.csdnimg.cn/20190104120134808.png?x-oss-process=image/watermark,type_ZmFuZ3poZ...

2019-01-04 12:03:28 451

原创 Java Basic -- Serialization and I/0

OutlineBasicsDemo -- Saving StateSerializationDeserializationSerialVersionUIDBasics      Objects can

2018-12-29 11:36:03 510

原创 数据结构与算法-散列表查找(哈希表)

概要基本概念散列函数构造方法处理散列冲突的方法java代码实现散列表查找性能分析基本概念      散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。查找时,根据这个确定的对应关系找到给定值key的映射f(key),若查找集合中存在这个记录,则必定在f(key)的位...

2018-12-26 14:07:03 1857 1

原创 数据结构与算法-线性索引查找

概要引入基本概念线性索引之稠密索引线性索引之分块索引线性索引之倒排索引引入       折半查找、插值查找以及斐波那契查找这几种查找方法虽然比较高效,但都是基于有序的基础之上的,而事实上,很多数据集可能增长非常快,例如某些微博网站或大型论坛的帖子和回复总数每天都是成百万上千万条,或者一些服务器的日志信息记录也可能是海

2018-12-25 14:32:46 548 1

原创 数据结构与算法-有序表查找(折半查找、插值查找、斐波那契查找)

概要引入折半查找基本概念折半查找java代码实现折半查找算法复杂度分析折半查找改进版1:插值查找折半查找改进版2:斐波那契查找总结引入顺序查找虽然算法非常简单,对静态查找表的记录没有任何要求,但是当查找表记录数很大时,查找效率极为低下,所以只适用于小型数据的查找。折半查找基本概念折半查找(Binary Search)技术,又称为二分查找。它的前提是线性表中的记录必须是关键码有序(通常...

2018-12-24 18:06:25 2067

原创 数据结构与算法-顺序查找

概要查找概论顺序查找基本概念java代码实现时间复杂度分析查找概论      只要你打开电脑,就会涉及查找技术。如炒股软件中查找股票信息、硬盘文件中找照片等,都要涉及到查找。当然,在互联网上查找信息就更加是家常便饭。所有这些需要被查数据所在的集合,我们给它一个统称叫查找表。&

2018-12-24 14:56:49 1467

原创 iOS造轮子-数字金额每隔3位用逗号隔开(Swift实现)

概要背景概述Swift 代码实现图示代码执行原理算法复杂度分析背景概述金融类App不可避免的需要展示金额信息,如¥12345678元,但当金额数值较大时,将一整串的金额显示在用户面前显然不够友好,所以业内通用做法是每隔3位添加一逗号,即显示成¥12,45,678元,极大地提升了用户体验。Swift 代码实现/** * 将字符串每隔数位用分割符隔开 * * @param sourc...

2018-12-20 18:05:07 1927 2

原创 数据结构与算法-快速排序

概要快速排序是冒泡排序的升级版基本思想java代码实现图示代码执行过程进一步优化1:优化选取枢轴进一步优化2:优化不必要的交换进一步优化3:优化小数组时的排序方案进一步优化4:优化递归操作算法复杂度分析快速排序是冒泡排序的升级版快速排序和冒泡排序都属于交换类排序。即它也是通过不断比较和移动交换来实现排序的,只不过它的实现,增大了记录的比较和移动的距离,将关键字较大的记录从前面直接移动到后面,...

2018-12-19 15:36:32 650

原创 数据结构与算法-归并排序

概要归并的概念归并排序的基本概念java代码实现图示代码执行过程算法复杂度分析归并的概念“归并”一词的中文含义就是合并、并入的意思,而在数据结构中的定义是将两个或两个以上的有序表合成一个新的有序表。归并排序的基本概念归并排序(Merging Sort)就是利用归并的思想实现的排序方法。它的原理是假设初始序列含有n个记录,则可以看成n个有序的子序列,每个子序列的长度为1,然后两两归并,...

2018-12-18 16:44:56 311

原创 数据结构与算法-堆排序

概要简单选择排序的改进堆的基本概念堆排序的基本思想java代码实现图示执行过程时间复杂度分析简单选择排序的改进      &am

2018-12-17 15:25:46 392

原创 数据结构与算法-希尔排序

概要背景铺垫基本原理java代码实现图示代码执行过程时间复杂度分析背景铺垫      希尔排序是D.L.Shell于1959年提出来的一种排序算法,在这

2018-12-14 15:50:16 476

原创 iOS开发日常-Crash定位

dSYM文件定位崩溃前期准备1:通过第三方统计工具获取线上崩溃详情(这边以友盟为例)前期准备2:从Xcode获取app对应版本的dSYM文件终端命令分析前期准备1:通过第三方统计工具获取线上崩溃详情(这边以友盟为例)前期准备2:从Xcode获取app对应版本的dSYM文件终端命令分析cd ~/Library/Developer/Xcode/Archives/···/dSYMS/app...

2018-12-12 16:22:49 450

原创 数据结构与算法-直接插入排序

概要基本概念java代码实现图示执行过程时间复杂度分析基本概念直接插入排序(Straight Insertion Sort)的基本操作是将一个记录插入到已经排序好的有序表中,从而得到一个新的、记录数增1的有序表。java代码实现/* 申明待排序数组 */int[] a = {9,1,5,8,3,7,4,6,2};int i,j;int flag; for (i = 1; i &...

2018-12-10 14:30:32 1128

原创 数据结构与算法-简单选择排序

概要选择排序法初步思想基本概念java代码实现图示执行过程时间复杂度分析选择排序法初步思想爱炒股票断线的人,总是喜欢不断的买进卖出,想通过价差来实现盈利。但通常这种频繁操作的人,即使失误不多,也会因为操作的手续费和印花税过高而获利很少。还有一种做股票的人,他们很少出手,只是在不断的观察和判断,等到时机一到,果断买进或卖出。他们因为冷静和沉着,以及交易的次数少,而最终收益颇丰。冒泡排序的...

2018-12-10 11:08:34 795

原创 数据结构与算法-冒泡排序

数据结构与算法-冒泡排序基本概念代码实现图示执行过程进一步优化时间复杂度分析基本概念冒泡排序(Bubble Sort)一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。代码实现//申明待排序数组int[] a = {9,1,5,8,3,7,4,6,2};for (int i = 0; i < a.length; i++)

2018-12-07 17:43:13 737

Head First Java

head first 系列通俗易懂,是新手入门的最佳教材。本文档是英文版,如果您希望浏览原汁原味的技术,可以入手该文档,而且作为程序员

2018-08-02

Head First JavaScript

head first 系列通俗易懂,是新手入门的最佳教材。本文档是英文版,如果您希望浏览原汁原味的技术,可以入手该文档,而且作为程序员

2018-08-02

空空如也

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

TA关注的人

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