自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fhang

千里之行,始于足下

  • 博客(59)
  • 收藏
  • 关注

原创 慕课网编程学习

慕课网邀请码慕课网是个学编程的好地方,推荐大家针对某个编程语言,去学习。从初级到高阶的视频教学都有。https://s.imooc.com/AUMCX6i点击上面链接进行购买有优惠哦。...

2019-06-13 00:25:54 506 1

原创 牛客网BAT算法精讲总结2-字符串(KMP算法详解)

1. kmp算法kmp算法是字符串匹配经典算法。 字符串匹配算法复杂度为 O(m*n), 而kmp算法可以降到 O(m+n) 算法思路: 这个算法的切入点在于,当我们进行匹配,匹配到某个字符不一样时,前面匹配过的是字符 模式串和主串是一样的,即比如 主串: abaaabab 模式串: abab 假设我们把模式串分为三部分, 最长前缀+中间+最长后缀,(这里最长前缀和最长后缀...

2018-03-31 17:17:02 715

转载 Java虚拟机:JVM内存分代策略

转自: https://www.cnblogs.com/fangfuhai/p/7206944.htmlJava虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。为什么要分代?堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中。给堆内存分代...

2018-03-14 16:25:27 357

原创 实现死锁和生产者消费者

死锁程序:public class TestDeadLock implements Runnable { public int flag; static Object o1 = new Object(); static Object o2 = new Object(); public void run() { System.out.pri...

2018-03-01 22:21:54 939

原创 判断链表是否有环并求环的入口和环的长度

方法:求链表是否有环,最直观的方法是从头结点的地址开始,把下一个地址都取出来,然后比对,是否有相同的。但这个方法需要两两比较,算法时间复杂度较高。更好的一个做法是快慢指针(慢指针一次前进一个地址,快指针一次前进两个地址)同时从头结点出发,只有链表有环存在,则它们必定会相遇。快慢指针算法有一个注意点,慢指针进入环之前,快指针可能已经在环中绕了几次圈了。首先比较简单的是求环的长度,当快慢指...

2018-03-01 10:15:13 553

原创 IntelliJ 注解@Slf4j后找不到log问题解决

IntelliJ安装lombok插件可以解决以上问题 步骤: 1. 搜索Plugins 点击下方的Browse repositories..2. 点击安装,重新启动即可解决问题。

2018-02-14 13:46:04 32315 10

转载 奈奎斯特定理和香农定理(计算机网络物理层)

前言本文参考于 http://blog.csdn.net/u012532559/article/details/45339147概念定义波特率:信号每秒钟电平变化的次数。单位Hz 比特率:每秒传输的数据的位数。单位bps 波特率 = 比特率*log2电平数 原因:假设一个信号只有两个电平,那么可以把低电平理解为“0”,高电平理解为“1”,这样每秒钟电平变化的次数也就是传输的0,1个数了,即比特

2017-12-09 11:23:49 2392

原创 Yii中的安全防护

前言:最近有一份招聘,引起了我对网络安全的极大兴趣。非常感兴趣的决定研究下yii中的安全特性。在应用yii开发的时候知道怎么用安全特性,但一些原理没有去理会过。参考:http://blog.csdn.net/baidu_zhongce/article/details/50394178防SQL注入SQL 注入虽然是最低级的Web安全内容了。但还是说一下吧,yii中我们采用Model::find->wh

2017-12-07 00:45:35 452

原创 二叉树线索化和遍历的算法

前言:关于二叉线索树有什么作用,为什么要建立这里就不介绍。因为时间问题,只是总结一下线索化和遍历的算法。这个算法和前面总结过的非递归法遍历二叉树都算是数据结构里面难度系数比栈,队列,线性表那些大的算法。限定时间内要写出来还是有些难度,最好是能有所总结,才能做到得心应手。先序:先序线索化void PreThreading(BiTreeNode *p, BiTreeNode *pre==NULL) {

2017-11-29 21:50:34 1463

原创 斐讯K2路由器刷潘多拉(解决固件非法问题)(连接校园网锐捷)

前言 斐讯K2路由器在京东上购买之后30天之后可以通过一个金融APP退还399.于是我用白条买了一个。打算刷了给女友用。遇到的问题 买来之后百度搜索刷机教程,按照首页第一个开始刷,发现会存在固件不合法的问题。看了下系统版本号:V22.5.. 硬件型号:A5. 看来一年没用,斐讯也一直在更新升级,貌似从某个版本开始就不允许手动回退版本了。K2官方版本升级为最新的163官改版 该管改版集成最新

2017-11-19 15:52:48 29491 3

原创 特征经验分享以及管理文件,远程运行的小技巧

首先,我是通过腾讯这次比赛第一次接触数据挖掘,机器学习这一块内容的,也是为了这个比赛学的python。说出来你们都不信,我是用Matlab提交的第一次成绩,因为当时还不会python。 接下来我会介绍我的一些小心得,马上要期末考了,打算拿个小礼品撤退。明年见,哈哈。关于特征A) 简单提取一下数据集提供的特征,会发现绝大部分都是类别型的特征。类别型的特征直接拿来训练效果比较差,所以用one-hot或

2017-09-06 20:04:24 359

原创 Mac 装VMWare虚拟机(win 7) 提供工具下载

前言:由于部分软件大都只提供windows版,这也是大部分Mac用户遇到的问题。有三种方法在Mac上使用windows。双系统,尤其是Boot camp现在装双系统很容易。但是我感觉还是有问题的,开win系统的时候掉电快一回事,温度特别高,即使没开什么应用,温度能到八九十。唯一的办法就是把CPU性能开一半。在电源选项中设置。远程服务器,本来想买个远程服务器,有什么时候需要用到win再上服务器,可

2017-04-18 11:30:18 5633 2

转载 NoSQL 发展,数据库发展MySQL瓶颈

NoSQL概念随着web2.0的快速发展,非关系型、分布式数据存储得到了快速的发展,它们不保证关系数据的ACID特性。NoSQL概念在2009年被提了出来。NoSQL最常见的解释是“non-relational”,“Not Only SQL”也被很多人接受。(“NoSQL”一词最早于1998年被用于一个轻量级的关系数据库的名字。)NoSQL被我们用得最多的当数key-value存储,当然还有其他的文

2017-04-10 21:23:14 1272

原创 线程通信和进程通信区别(线程进程区别)

前言:腾讯笔试中多道选择题考到这个问题,这里总结一下。学习Java的童鞋可能对于线程的理解要比学php好很多。本文参考于线程通信与进程通信的区别 。 进程和线程的区别:对于进程来说,子进程是父进程的复制品,从父进程那里获得父进程的数据空间,堆和栈的复制品。而线程,相对于进程而言,是一个更加接近于执行体的概念,可以和同进程的其他线程之间直接共享数据,而且拥有自己的栈空间,拥有独立序列。共同点: 它们

2017-04-08 10:37:36 7029

原创 动态规划2 - 最长公共子序列与最长公共子串

前言:接着上一篇关于动态规划解背包问题。今天继续理解一下最长公共子序列和最长公共子串问题。相信可以对动态规划有非常深入的理解。我也发现动态规划中,我们常常会忽略基步的定义(这里用数学归纳法的归纳基来借指动态规划中的第一行或者第一列)最长公共子序列问题: 给定两个字符串,求出它们之间最长的相同子字符串的长度。(不需要连续)思路: 看不懂的话可以看一个例子:两个字符串 hello llohe

2017-04-03 11:52:52 579

原创 0-1背包以及完全背包(如何输出包里的物件)

0-1 背包问题问题: 有Num个物品,每个物品的重量为weight[i],每个物品的价值为value[i]。现在有一个背包,它所能容纳的重量为 M ,问:当你面对这么多有价值的物品时,你的背包所能带走的最大价值是多少?解决方法: 采用动态规划的方法解决。 01背包的状态转换方程 f[i,j] = Max{ f[i-1,j-Weight[i]]+Value[i] ( j >= Wi ), f

2017-04-02 23:09:04 3378 2

原创 树 - 二叉搜索树

二叉排序树 (Binary Sort Tree)定义: 二叉排序树又称“二叉查找树”、“二叉搜索树”。二叉排序树:或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。数据结构: 二叉树一般采用二叉链表实现。 1. 数据结构//define d

2017-03-30 10:15:27 463

原创 高性能MySQL - 查询性能优化

本文来源 《高性能MySQL》一、如何检查一个查询的好坏查询性能低下最基本的原因是访问的数据太多。造成低效查询的原因有以下两个:1. 检索大量不需要的数据。2. MySQL服务层在分析大量超过需要的数据行。1. 检索大量不需要的数据1.1 查询不需要的记录一个常见的错误是误以为MySQL会只返回需要的数据,实际上MySQL是先返回全部结果集再进行运算。 e.g.

2017-03-27 21:52:58 1318

原创 高性能MySQL - RAID性能优化

前言:今天网易数据库管理员笔试考了RAID的题目,之前不够了解。所以写得很差。现在根据高性能MySQL书上的内容来总结一下。什么是RAID:Redundant Array of Independent Disk 独立冗余磁盘阵列由美国加州大学伯克利分校提出。简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的

2017-03-25 20:41:19 2212

原创 Yii2.0 设计模式 - 依赖注入 Dependent Injection

前言:这是我第二个博文说到DI,IOC,上次说的是spring实现DI的一个方式。今天要说的是Yii2.0 实现的DI,实际上有很多相同之处。在实现解析依赖的时候,都采用了反射的思想。(何为反射?如果把php运行时看做是一面镜子, 把php代码看做是一个物体。当你的程序在php运行时运行的时候, 你的程序想知道你现在运行的php代码的一些信息。 比如说我想动态调用一个类的方法,或者我想知道我的一个

2017-03-23 09:05:20 626

原创 深入理解 Yii2.0 - 属性,事件,行为。

前言本博客基于 深入理解Yii2.0.并且参考Yii2.0 官方文档,加上自己使用Yii2.0的一些总结和理解。Yii 2.0Yii 是一个高性能,基于组件的 PHP 框架。 为什么要用Yii 2.0Yii 实现了 MVC(Model-View-Controller) 设计模式并基于该模式组织代码。Yii 的代码简洁优雅,这是它的编程哲学。它永远不会为了刻板地 遵照某种设计模式而对代码进行过度

2017-03-22 00:25:56 1575

原创 高性能MySQL - 数据类型优化

数据类型选择原则1. 小尽可能使用可以正确存储数据的最小数据类型,占用更小的磁盘,内存和CPU缓存,处理周期也小。2. 简单整型比字符操作代价低,字符集和较对规则使字符比整型比较更复杂,所以应该使用MySQL内建的类型而不是字符串来存储日期和时间,另外应该用整型存储IP地址,而不是字符串。3.尽量避免NULLNULL对于MySQL来说很难优化,NULL使得索引,索引统计和值比较都更为复杂,而且会使用

2017-03-19 16:06:05 670

原创 高性能Mysql - 创建高性能的索引(下)(聚簇索引,覆盖索引,全文索引)

一、聚簇索引定义: 并不是一种单独索引类型,而是一种数据存储方式。 聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的索引顺序与数据物理排列顺序无关。举例来说,你翻到新华字典的汉字“爬”那一页就是P开头的部分,这就是物理存储顺序(聚簇索引);而不用你到目录,找到汉字“爬”所在的页码,然后根据页码找到这个字(非聚簇索引)。具体的细节依赖于其实现方式,但InnoDB的聚簇索引实际上在用一个结构中保存

2017-03-18 20:51:10 2117

原创 高性能MySQL - 创建高性能的索引(上)(B-Tree,Hash)

前言索引在Mysql中也叫作‘键(key)’。 基本功能是用于存储引擎快速找到记录的一种数据结构。Question:使用ORM,是否还需要关心索引 即使使用对象关系映射(ORM)工具,仍然要理解索引。除非只是生产非常基本的查询(例如仅是根据主键查询),否则它很难生成适合索引的查询。Mysql中,索引是在存储引擎层而不是服务层实现的。所以没有统一的索引标准。 Mysql支持的索引1. B-Tre

2017-03-18 18:36:25 870

原创 高性能Mysql - 服务器性能剖析

前言:3大性能问题: 1. 如何确认服务器是否达到了性能最佳的状态 2. 找到某条语句为什么执行不够快 3. 诊断被用户描述成“停顿”、“堆积”、“卡死”的某些间歇性疑难故障。性能定义: 完成某件任务所需要的时间度量,即响应时间。 数据库服务器的目的是执行SQL语句,所以性能用查询的响应时间来度量关于性能的一些误区: 1, 认为性能是降低CPU利用率。如果能通过消耗更多资源加快查询速度

2017-03-11 14:34:32 488

原创 用自己的域名重定向到csdn博客首页

前言:做简历的时候发现自己csdn的域名过长,面试官不可能去手动输入打开,于是想用自己的域名重定向过去。直接说做法1. 注册一个个人域名,可以考虑.xyz .me之类的域名,.xyz的域名比较便宜,一个一年1块钱。2. 找一台服务器,最好是国外的,国内的话你的域名要先备案。http://blog.csdn.net/Return_True_hang/article/details/52474059 ,

2017-03-10 16:34:44 2060

原创 高性能MySQL -MySQL基准测试,(http_load , sysbench 使用介绍 )

一、为什么需要基准测试?答:基准测试是针对系统设计的一种压力测试。可以观察系统在不同的压力下的行为,评估系统的容量,掌握哪些是重要的变化,或者观察系统如何处理不同的数据。⚠️ 不能根据测试结果做简单的推断。例如:假设想知道使用新数据库服务后,系统能支撑多大的业务增长,这时候不能简单地通过测试结果支持的TPS(每秒事务数)是原系统推断说新系统一定可以支持40倍的业务增长,因为在业务增长的同时,系统的流

2017-03-10 16:25:46 1190

原创 六大排序算法之 PHP和C++实现 - 算法思路解析

前言:一直以来对于排序算法总有些熟悉又陌生的感觉,这几天看到一篇挺不错的博客讲排序的,http://blog.csdn.net/xiazdong/article/details/8462393 于是学习参考他的思路自己动手用php实现了一下。并且结合每个算法的特性思路写了这篇博客。 源码源码可以直接在github上down,也欢迎修改 https://github.com/fangkehang/p

2017-03-08 18:32:05 798 1

原创 高性能Mysql-存储引擎(InnoDB)

MySQL将每个数据库(也可以称为schema)保存为数据目录下的一个子目录,创建表时,MySQL会在数据库子目录下创建一个和表同名的 .frm文件保存表的定义。(也因此MySQL数据库和表的定义对大小写的敏感性与具体平台密切相关)今天考完网易的数据库管理员笔试,其中一道问答题就说到了InnoDB的特性,OK,我虽然看过这节,但是答的一趟糊涂。再把这个博文改一改。 InnoDB三大性质参考http

2017-03-05 14:57:47 686

原创 高性能MySQL -MySQL架构,MVCC多版本并发控制和一些基本概念

内容源于《高性能MySQL》一、MySQL逻辑架构架构图: 最上层不是Mysql独有的, 比如连接处理,授权认证, 安全 等等 第二层核心服务功能,包括查询解析,分析,优化,缓存以及所有内置函数,存储过程,触发器,视图等都在这层实现 第三层 存储引擎,存储引擎API包含几十个底层函数二、优化与执行 什么是优化: MySQL解析查询,并创建内部数据结构(解析树),然后对其进行各种优化,包括重

2017-03-04 17:55:13 2534

原创 yii 2.0 使用部分自带函数来优化代码

本博客部分代码来源于开源项目funshop一、 使用ArrayHelper::map, Yii2.0 自带的强大的数组助手类。在多次开发经验中我们可以发现控制器中花费大量代码在处理数组函数,为了更好的传递数据給View。这也是个人感觉的MVC模式一个小缺点,当你把数据和程序分开有好也有坏,传递转换的过程实际上也是一种资源的浪费。Yii2.0 强大的数组助手类协助代码更加简洁的完成这些功能。以下是官

2017-03-04 10:46:06 704

原创 php 自动加载机制

归纳一下php加载文件3种方式: 1、include,include_once,requice,requice_one常规加载 2、__autoload() 3、spl_autoload_register()最常规的加载方法,在小项目小代码里使用的是 4个常用函数 include, include_once,require, require_once,他们之间的区别是 ~incluce在用

2017-02-25 17:29:15 508

原创 模拟spring IOC,DI,深入理解spring IOC,DI的好处

网上随手可以查到各种IOC,DI的概念和讨论。这种概念对新手而言一向难以理解,在慕课网,极客学院这一讲spring入门评论区一片嘘声。但如果能在学习前了解一下模拟实现的spring,想必很多概念性的东西也就能逐步理解。以下代码参考于马士兵老师的教学视频。一个简单的java project (不采用spring和spring的思想。)首先,我们开始一个简单的java project。需求是实现一个用

2016-11-13 10:55:16 1372

原创 优酷路由宝L1刷Breed和Padavan固件(校园锐捷网络路由器)

优酷路由宝L1刷Breed和Padavan固件(校园锐捷网络路由器)

2016-11-09 19:38:09 20785 6

原创 swift入门第三季(枚举,类,面向对象, 协议)

枚举枚举形式:enum 枚举名{ //使用case关键字列出所有枚举值}关联值:enum plant{ case Eerth(weight:Double,name:String)}类class User { //存储属性 var first: String = ""; var last: String = ""; //计算属性 var fu

2016-10-07 11:30:01 618 2

原创 swift入门第二季(函数和包,面向过程)

函数func 函数名(形参列表)->返回值{ 函数体}可变参数 在参数类型后面加… ,可接受多个参数值默认参数 直接在形参赋值可变参数放在最后面,默认参数放在次后面传递的只是参数的值,而非指针,如需传递指针,则需使用inout 强制传递指针。函数类型:(Int,Int)->Int 举例如下:func squre(num:Int) -> Int{ return num

2016-10-06 14:35:59 446

原创 Swift入门基础(语法,数据类型,数组,字典)

变量用var,常量用lerswift语句可以跨行标志符必须以字符,下划线,美元符开头,不以数字开头一行可以声明多个变量,用,隔开“(变量)”占位符Int在32位平台为Int32,在64位平台为Int64数值可以增加下划线为分隔符Int32() 强制类型转换除数可以为0,-inf ,inf ,nantypalias Age = Uint16 别名var score=(120,120

2016-10-05 17:30:07 415

原创 域名邮箱|Yii2.0使用QQ域名邮箱发送邮件

当然是先有域名,我的域名是在腾讯云注册的http://domain.mail.qq.com/ 点击创建域名邮箱,先登录一个QQ邮箱作为管理员根据提示操作完成上面这个,各自注册商方法不一样,一般都在解析域名那里,选择cname,mx,进行相应的操作完成之后登录qq域名邮箱 添加一个管理员,然后添加用户 admin@**.com 要绑定一个注册14天以上的QQ,否则没办法开启smtp服务收到

2016-09-08 19:57:50 1561

原创 yii2.0域名目录绑定(二级域名)以及url美化 url伪静态 Apache ,Ngnix和 IIS

域名绑定目录前要进行域名解析,域名解析一般在购买商的管理平台上解析,需要一定时间才能正常解析。vi /etc/httpd/conf/httpd.conf,中搜索VirtualHost example: 按照注释的示例:<VirtualHost 98.126.**.226> DocumentRoot /var/www/html/*****/frontend/web ServerN

2016-09-08 18:36:09 2452

原创 Centos 下mysql用户丢失,root账号在本地登录

在本地打开mysql -u root -p 无论输入什么密码都错误,又改了密码结果还是不行后来搜了百度都没有什么好的解决方法。 发现mysql库中的user表缺少一个root指向host怎么确定你也是这个问题呢?这样做:vim /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 例如: [mysqld] datadir=/var/lib

2016-09-07 23:05:59 972

空空如也

空空如也

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

TA关注的人

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