- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 Swift开发-json解析
使用OC开发时,JSON解析方法很多,如可以自己解析,也可以使用JsonModel,MJExtension等第三方,切换到Swift开发后,也还可以通过桥接的方式调用OC的,但这样会略显麻烦,Swift上也提供了直接进行json解析的方案,目前主流的有SwiftyJSON,ObjectMapper,HandyJson,以及swift 4上对JSON解析的原生支持。所以在实际的开发中,可以根据项目情况优先选择系统原生的jSON解析,前提是在Swift 4以上才支持。这种解析结构明确,模型转换需要手动编码。
2024-06-28 17:38:06
390
原创 Elasticsearch安装
将下载的zip包上传到 /opt/elk/elasticsearch-6.3.2/plugins 目录。如果出现“未连接”,请修改localhost为10.237.120.218,然后单击“连接”按钮。# 增加新的参数,这样head插件可以访问es。服务器IP: 10.237.120.218/219/220。# 分别为node-1,node-2,node-3。# 本机IP地址,分别为218,219,220。修改内核参数,需要切换到root用户下面。修改elasticsearch配置文件。
2024-05-08 15:09:17
722
原创 MyBatis批量插入上万条数据慎用ForEach
在我们的项目中,会不停地使用批量插入这个方法,而因为MyBatis对于含有的语句,无法采用缓存,那么在每次调用方法时,都会重新解析sql语句。所以,如果非要使用foreach的方式来进行批量插入的话,可以考虑减少一条insert语句中values的个数,最好能达到上面曲线的最底部的值,使速度最快。没有问题,但是经过项目实践发现,当表的列数较多(20+),以及一次性插入的行数较多(5000+)时,整个插入的耗时十分漫长,达到了14分钟,这是不能忍的。...
2022-07-20 08:44:48
1276
原创 阿里巴巴 iconfont 字体转 base64 并引入使用
平时使用阿里巴巴的iconfont字体需要下载字体到本地或通过网址引入字体才能使用,但有些情况可能不允许这么做,例如小程序与平常web开发中引入字体图标的方式不一样,必须先转为base64再引入,以下介绍iconfont字体转base64并引入使用的方法一、去官网 http://iconfont.cn 下载想要的图标1.将想要的图标添加入库2.进入购物车下载代码3.下载成功后,得到一个压缩文件,然后解压得到这么一堆文件:二、转换 ttf 文件为 base64
2022-03-16 16:52:45
3635
原创 MyBatis在insert插入操作时返回主键ID(Oracle和Mysql)
本文章向大家介绍MyBatis在insert插入操作时返回主键ID的配置(推荐),主要包括MyBatis在insert插入操作时返回主键ID的配置。很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键。但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,而是表示当前SQL语句影响的行数。接下来,我们看看MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中。1.
2022-02-18 11:14:07
4322
原创 Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volati
2021-10-27 16:17:57
138
原创 Dagger2
什么是Dagger2Dagger2是Dagger的升级版,是一个依赖注入框架,现在由Google接手维护。 恩,这里有个关键字依赖注入,因此我们得先知道什么是依赖注入,才能更好的理解Dagger2。依赖注入是面向对象编程的一种设计模式,其目的是为了降低程序耦合,这个耦合就是类之间的依赖引起的。举个例子:我们在写面向对象程序时,往往会用到组合,即在一个类中引用另一个类,从而可以调用引用的...
2019-07-31 14:23:05
262
原创 Android 引入 AndResGuard 异常
在引入AndResGuard时,classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.0'提示Error:Could not find com.tencent.mm:AndResGuard-gradle-plugin:1.2.0.Searched in the following locations: file:/A...
2018-12-07 17:58:32
1104
1
原创 freeswitch系列四 通过实例学习sip协议的注册、呼叫、挂断流程
1. 概述本文通过tcpdump对真实环境里的软电话的注册、呼叫、挂断流程进行抓包,通过真实的例子学习SIP协议。本文主要包括以下方面:A. 详解软电话的注册时的SIP包和流程图B. 详解软电话之间呼叫、挂断的SIP包和流程图C. 详细介绍了协议中各个字段的意义2. 案例环境说明软电话使用x-lite,使用freeswitch的默认的两个号码1008和1018。freeswitch部署在服务器的私...
2018-06-04 11:18:34
1349
原创 Centos7源代码安装freeswitch和启动freeswitch
centos7下安装freeswitch版本:1.6。1.下载源代码: 进入目录 cd /usr/local/src克隆原代码 git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git freeswitch2.开始编译 进入freeswitch目录 cd/ freeswitch 运行 ...
2018-05-31 11:57:35
359
原创 CentOS7.3安装Go运行和开发环境
下载并解压下载[root@localhost soft]# wget -c https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz1解压 将源码包解压后直接放到 /usr/local 目录下, 不用再次 make && make install 来安装了, 开箱即用[root@localhost soft]...
2018-05-31 09:28:23
572
原创 Linux利用OneinStack搭建环境
Linux利用OneinStack搭建环境 OneinStack官方网站:https://oneinstack.com介绍OneinStack支持以下数种环境组合:LNMP(Linux + Nginx+ MySQL+ PHP)LAMP(Linux + Apache+ MySQL+ PHP)LNMPA(Linux + Nginx+...
2018-05-30 19:39:12
2828
原创 Android 7.1编译到33%时出现JDK内存溢出的错误:
Android 7.1编译到33%时出现JDK内存溢出的错误:Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@g...
2018-04-04 15:56:07
500
原创 滴滴插件化项目VirtualAPK开源!
名称来源githubreact-nativefacebookreact-nativeDroidPlugin奇虎360DroidPluginatlas阿里巴巴手机淘宝atlasDL任玉刚等dynamic-load-apkSmall开源组织WequickSmallDynamicAPK携程DynamicAPKVirtualAPK嘀嘀VirtualAPKRePlugin奇虎360RePluginPlugi
2018-01-23 11:53:35
257
转载 大型网站架构系列:负载均衡详解(4)
本文是负载均衡详解的第四篇,主要介绍了LVS的三种请求转发模式和八种负载均衡算法,以及Haproxy的特点和负载均衡算法。具体参考文章,详见最后的链接。 三、LVS负载均衡LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,用来实现Linux平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。
2017-05-12 11:00:03
428
转载 大型网站架构系列:负载均衡详解(3)
一、软件负载均衡概述硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因此软件负载均衡在互联网领域大量使用。常用的软件负载均衡软件有Nginx,Lvs,HaProxy等。本文参考大量文档,部分为直接拷贝,参考出处见负载均衡详解(4)。二、Ngnix负载均衡Ngnix是一款轻量级的Web服务器/反向代理服务器,工作在七层Http协议的负载均衡系
2017-05-12 10:59:17
265
转载 大型网站架构:负载均衡(2)
大型网站架构系列:负载均衡详解(2)本文是负载均衡详解的第一篇文章,介绍负载均衡算法, 硬件负载均衡。部分内容摘自读书笔记。三、负载均衡算法常用的负载均衡算法有,轮询,随机,最少链接,源地址散列,加权等方式;3.1 轮询将所有请求,依次分发到每台服务器上,适合服务器硬件同相同的场景。优点:服务器请求数目相同;缺点:服务器压力不一样,不适合服务器配置不同的情况
2017-05-12 10:53:17
291
转载 大型网站架构:负载均衡(1)
面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分
2017-05-12 10:52:21
353
转载 亿级Web系统搭建——单机到分布式集群
大规模流量的网站架构,从来都是慢慢“成长”而来。而这个过程中,会遇到很多问题,在不断解决问题的过程中,Web系统变得越来越大。并且,新的挑战又往往出现在旧的解决方案之上。希望这篇文章能够为技术人员提供一定的参考和帮助。 以下为原文 当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能
2017-05-03 10:05:50
304
转载 大规模并发带来的挑战
电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因?一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程
2017-05-03 09:52:10
378
转载 互联网全站HTTPS的时代已经到来
前言我目前正在从事HTTPS方面的性能优化工作。在HTTPS项目的开展过程中明显感觉到目前国内互联网对HTTPS并不是很重视,其实也就是对用户隐私和网络安全不重视。本文从保护用户隐私的角度出发,简单描述现在存在的用户隐私泄露和流量劫持现象,然后进一步说明为什么HTTPS能够保护用户安全以及HTTPS使用过程中需要注意的地方。 国外很多网站包括google,faceboo
2017-05-03 09:34:00
718
转载 Windows下用DirectShow查找摄像头(含分辨率)和麦克风
在视频聊天、视频会议、在线监控和视频展台等项目中,需要查找出本地电脑上连接的所有摄像头,网上流传比较多的方式是ffmpeg的方式,这种方式可以跨平台,不同的平台下调用不同的库。这种方式在控制台直接打印了摄像头的信息,无法(或者说我暂时没找到)在内存中获取,因此直接采用了DirectShow的方式,DirectShow枚举IMoniker和Ipin。因为网上的文档,不是特别详尽,所以我写了本文,我尽
2017-01-03 13:38:23
4323
转载 FFmpeg的Android平台移植—编译篇
摘要:本文主要介绍将FFmpeg音视频编解码库移植到Android平台上的编译和基本测试过程。环境准备:Ubuntu12.04 TLSandroid-ndk-r9d-linux-x86_64.tar.bz2adt-bundle-windows-x86_64-20131030.zip第一步:源代码下载到FFmpeg官方网站http://ww
2016-12-07 15:20:07
309
原创 NDK开发之Android Studio生成.h头文件的方法
在Android Studio进行NDK编程时,可以通过以下步骤快速生成.h头文件1、在项目中定义native函数:2、打开Terminal3、跳转到目录:cd app/src/main/java4、通过javah生成头文件:javah -d ../jni -jni demo.com.hellondk.MainActi
2016-12-06 15:26:31
1604
转载 ORM对象关系映射之GreenDAO建立多表关联
利用GreenDAO可以非常方便的建立多张表之间的关联一对一关联通常我们在操作数据库的时候,我们往往不是单独的对一张表进行操作,而是对这张表的操作会联动的影响另外一张表或者多张表,比如:现在有两张表,一张是用户User表(有name、age、sex三个字段),一张是头像Picture表(有pictureId、pictureName、width、height四个字段)。假如用户表和头像表
2016-11-15 10:56:15
444
原创 JAVA深入研究——Method的Invoke方法
在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到Method,这时去调用父类的对象也会报错。虽然这是很符合多态的现象,也符合java的动态绑定规范,但还是想弄懂java是如何实现的,就学习了下Method的源代码。 Method的invoke
2016-11-01 15:42:58
270
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人