- 博客(17)
- 资源 (5)
- 收藏
- 关注
原创 MySQL优化总结
1. 字段(1)尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED(2)VARCHAR的长度只分配真正需要的空间(3)使用枚举或整数代替字符串类型(4)尽量使用TIMESTAMP而非DATETIME,(5)单表不要有太多字段,建议在20以内(6)避免使用NULL字段,很难查询优化且占用额外索引空间(7)用
2017-11-28 20:48:40 283
原创 Redis数据持久化
Redis 分别提供了 RDB 和 AOF 两种持久化机制:RDB 将数据库的快照(snapshot)以二进制的方式保存到磁盘中。AOF 则以协议文本的方式,将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件,以此达到记录数据库状态的目的。SAVE 直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的
2017-11-28 20:46:18 262
原创 Redis数据库
Redis 中的每个数据库,都由一个 redis.h/redisDb 结构表示redisDb 结构的 id 域保存着数据库的号码。当执行 SELECT number 命令时,程序直接使用 redisServer.db[number] 来切换数据库Redis 是一个键值对数据库(key-value pairs database), 所以它的数据库本身也是一个字典(俗称 key spa
2017-11-28 20:45:27 254
原创 Python小Tips
Python有五个标准的数据类型:Numbers(数字),String(字符串),List(列表),Tuple(元组),Dictionary(字典)Python中默认的编码格式是 ASCII 格式,代码中包含中文,就需要在头部指定编码。在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8Python 区分大小写Python 关键字
2017-11-28 20:43:03 213
原创 数据结构与算法的应用场景
1. 概述数据结构与算法可以按以下类别分类:通用数据结构:数组、链表、树、哈希表专用数据结构:栈、队列、优先级队列排序:插入排序、希尔排序、快速排序、归并排序、堆排序图:邻接矩阵、邻接表外部存储:顺序存储、索引文件、B-树、哈希方法2. 通用数据结构应用场景数组和链表是最慢的,树相对较快,哈希表是最快的。但是并非使用最快的结构是最好的方案,因为最快的
2017-11-28 20:41:02 4083
原创 2017OWASP Top10
1. 注入2. 失效的身份认证和会话管理3. XSS4. 失效的访问控制5. 安全配置错误6. 敏感信息泄露7. 攻击检测与防护不足8. CSRF9. 使用含有已知漏洞的组件10. 未受有效保护的API
2017-11-28 20:38:22 1197
原创 面向对象设计原则
面向对象设计的目标之一是在于支持可维护性复用,一方面需要实现设计方案或者源码的复用,另一方面要确保系统能够易于扩展和修改,具有较好的灵活性。为了实现可维护性复用,在平时的设计编码中,需要注意以下设计原则:1. 单一职责原则一个类只负责一个功能2. 开闭原则对扩展开放,对修改关闭。尽量在不修改原有代码的情况下进行扩展3. 里氏置换原则使用基类对象的地方
2017-11-28 20:36:33 139
原创 常用正则表达式
验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9]*)$验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$验证非零的正整数:^\+?[1-9][0-9]*$验证非零的负整数:^\-[1
2017-11-28 15:05:22 139
原创 深入理解MySQL分区表
1. 分区表的原理 MySQL从5.1开始引入了分区表的特性,对于用户来说,分区表是一个独立的逻辑表,但底层却是由多个物理子表组成。在物理层面,数据库中的数据是以文件形式存放在磁盘上,MySQL中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹(可以使用:show variables like "%datadir%" 来查看数据存储目录 ),里面存放
2017-11-28 14:18:22 548
转载 Google Advertising ID 简介以及快速集成和使用
Google Advertising ID (广告ID)广告id是用户特殊的,独特的,可重置的广告id,由Google Play Service 提供,它为用户更好的控制,为开发人员提供简单、标准的系统继续使用你的应用程序,它用于广告目的的匿名标示符和或者重置起标示符或者退出以利益为基础的Google Play的医用程序。广告 ID 可以通过简单的API在你的应用程序中实现。
2015-07-02 16:40:26 3896
原创 BIO、NIO、AIO的区别——Netty系列(一)
Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络服务器和客户端程序。换句话说,Netty是一个NIO框架,使用它可以简单快速地开发网络应用程序,比如客户端和服务端的协议。这是官方文档中的描述,作为Java初学者,这里面一个名词NIO是完全没有概念,为此专门查阅了相关资料,对NIO有了较为清晰的了解。 对于NIO的描述,通常都是和BIO、AIO进行
2015-03-26 10:46:45 5696
转载 Service的基本用法
相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务。必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态。不过,虽然
2015-03-19 15:10:50 454
转载 Notification和NotificationManager的基本用法
1. NotificationManager和Notification用来设置通知。 通知的设置等操作相对比较简单,基本的使用方式就是用新建一个Notification对象,然后设置好通知的各项参数,然后使用系统后台运行的NotificationManager服务将通知发出来。基本步骤如下:1)得到NotificationManager: String
2015-03-17 10:30:31 422
转载 【移动开发】Service类onStartCommand()返回值和参数
Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理。然后我们注意到这个函数有一个int的返回值,这篇文章就是简单地讲讲int返回值的作用。返回值从Android官方文档中,知道onStartCommand有4
2015-03-12 14:55:39 494
原创 Android APP 源码中文字符乱码问题解决
对于Android APP 源码中文字符乱码问题,目前我遇到的问题都是因为Java文件编码方式不统一造成的,在eclipse中解决方法如下: 1、右键出错的Java文件,打开properties; 2、在Text file encoding 下选中单选框 Other; 3、在 下拉框选中UTF-8 4、点击Ok
2015-01-27 14:16:03 7674
原创 Android Please ensure that adb is correctly located at 问题解决
5037为adb默认端口,打开CMD,运行如下命令: netstat -aon|findstr "5037" 可以看到类似如下的结果: TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 6293 可知,PID为6293的进程占用了adb的端口,解决方
2015-01-27 14:01:45 740
原创 Android imageView 全屏显示
Android imageView 全屏显示只需在imageView的定义中加一句:android:scaleType="matrix"
2015-01-17 15:00:32 798
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人