- 博客(20)
- 收藏
- 关注
原创 netty入门笔记
NIO简介NIO采用了一种与传统IO完全不同的模式去读写数据,为了解决传统IO阻塞导致资源利用率和程序效率低下的问题,NIO采用了Reactor模式去处理客户端的IO请求,一个典型的多线程Reactor模型如下图所示传统的IO是一个线程对应一个连接,当连接数非常多的时候,线程就不够用了,为了解决这个问题,Reactor使用acceptor统一监听所有的连接请求,连接之后的IO操作会绑定到一个...
2018-11-29 16:00:13
376
原创 python实现反向传播的神经网络算法
吴恩达机器学习在讲神经网络的时候讲的不是很清楚,而且视频中的公式有很多错误,结合课后的材料和参考别人的实现之后才终于理清了反向传播算法的脉络,下面简单的说一下反向传播算法的原理和相关公式。第一步:前向传播最简单的神经网络结构就是如下的三层结构,i为输入层,h为隐藏层,o为输出层。每一层包含两个神经元,其中输入层和隐藏层额外包括一个偏置单元b,偏置单元恒等于1,类似于一个常数项。 ...
2018-04-21 11:51:18
3684
转载 python中的类及self详解
在介绍Python的self用法之前,先来介绍下Python中的类和实例…… 我们知道,面向对象最重要的概念就是类(class)和实例(instance),类是抽象的模板,比如学生这个抽象的事物,可以用一个Student类来表示。而实例是根据类创建出来的一个个具体的“对象”,每一个对象都从类中继承有相同的方法,但各自的数...
2018-04-04 11:04:37
26482
9
原创 秋招总结
前前后后面试了将近一个月之后,最后终于收到了腾讯发来的offer,半年以来的努力兑现了当初给自己许下的诺言,终于有机会写下这篇总结,这篇面经,这对我意义非凡。 我是某985院校经管学院的,信息系统与信息管理专业硕士,听过这个专业的人应该知道,这是一个致力于用计算机技术提升企业管理效率的专业,管理为主,计算机为辅。所以要说我是完全的非科班也不太对,我跟别人介绍的时候,通常说我自己是半个科班生。尽管...
2018-03-04 10:44:38
1688
1
转载 UML类图关系(泛化、继承、实现、聚合、组合、依赖)
原文地址:http://www.jfox.info/uml-lei-tu-guan-xi-fan-hua-ji-cheng-shi-xian-yi-lai-guan-lian-ju-he-zu-he.html在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Comp...
2018-03-01 21:33:27
2853
1
原创 在云服务器上运行你的爬虫程序
在服务器上跑数据是我们常常都需要做的一件事,这篇博客主要记录一下从配置服务器到拿到从服务器成功拿到数据整个过程我的操作,这里以腾讯云服务器为例1.申请云服务器这个没什么好讲的,腾讯云注册送7天体验服务器,阿里云送6个月,AWS送一年。因为只是体验,我开了个腾讯的,系统是ubuntu16.04。为了安全服务器只给了ubuntu用户,不给root用户,所以所有需要root权限的操作都必须要加上...
2018-02-12 13:37:34
21679
4
原创 python实现logistic分类算法
最近在看吴恩达的机器学习课程,自己用python实现了其中的logistic算法,并用梯度下降获取最优值。 logistic分类是一个二分类问题,而我们的线性回归函数 的取值在负无穷到正无穷之间,对于分类问题而言,我们希望假设函数的取值在0~1之间,因此logistic函数的假设函数需要改造一下 由上面的公式可以看出,0 cost function可以这样定义 其中,m是
2018-02-06 21:17:45
2362
原创 java四种字符串拼接方式性能分析
前几天写一个防重复提交的组件的时候,有一个操作是需要将各个字段的字符串拼接成一个requestKey。看了别人的代码,我发现,中间件这种东西,每天都要处理几百几千万的请求,但是里面很多字符串拼接的时候还是很原始的“+”号拼接,如果将所有的字符串拼接操作都换成更高效的实现方式,服务器的性能会不会要好一点,于是我简单的做了个实验对比一下我们常见的字符串拼接方法的效率。常见的四种字符串拼接方法分别是
2018-01-14 13:58:27
34966
4
原创 聊聊在小米实习的日子
暑假的时候去小米实习了三个月,虽然最后没有选择留下来,不过我仍然非常喜欢小米这个公司。之前在小米一个比较普通的部门工作,可能是因为表现的比较出色,转正的时候给了我一个调到另一个核心部门的机会,当时是那个部门总监亲自跟我谈的这事,能让大佬亲自跟我介绍他们部门,还是蛮感动的。我觉得对员工的尊重是我在小米最大的体会,即使我只是一个小小的实习生。最近在美团实习,才深深的想念小米的好,才想来写一篇博客。 入
2017-12-14 23:51:37
16524
7
原创 《Effective Java》读后感(一)
最近在看《Effective Java》,我觉得这本书其实不适合入门的小白看,如果有一些开发java的经验之后,再看这本书,才会受益匪浅,这里简单总结一下第一章《创建和销毁对象》的内容。 第一条:考虑用静态工厂方法代替构造器 静态工厂方法还是很常见的,比如hashMap的newInstance(),他比起常规的构造器生成实例有几个好处 1.静态工厂方法有名称,更容易区别出不同的返回对象。虽然构
2017-12-10 16:28:03
1109
转载 详解java内存模型与对象
前言:最近看了《深入jvm》一书,感受颇深,但是不写点什么总感觉不是自己的,所以动手捋一捋。主要讲的内容是java的内存区域,对象的创建,对象的内存布局和对象的访问方式。一、java的内存区域划分这个问题几乎是面试官必问的问题,很多人都会直接回答:“堆和栈”。其实这种划分是很粗略的,要是遇到认真的面试官,你就尴尬了。说个题外话,不要把“栈”说成“堆栈”,虽然说很多书上它们是等同的,但是还是有部分
2017-11-04 21:16:19
266
原创 数据库读写分离与垂直分库水平分表
读写分离随着一个网站的业务不断扩展,数据不断增加,数据库的压力也会越来越大,对数据库或者SQL的基本优化可能达不到最终的效果,我们可以采用读写分离的策略来改变现状。读写分离现在被大量应用于很多大型网站,这个技术也不足为奇了。读写分离简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻io压力。主数据库提供写操作,从数据库提供读操作,其实在很多系统中,主要是
2017-11-03 22:20:08
1302
原创 并查集(union-find)算法详解
之前很多连通性问题,其实都是可以通过并查集算法去实现的,比如城镇的修路问题: 首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质就是求有几个连通分支。如果是1个连通分支,说明整
2017-10-29 21:23:27
5169
原创 Trie树(字典树)的实现
1. Trie树Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。它有3个基本性质: 1.根节点不包含字符,除根
2017-10-27 23:24:55
648
原创 git常用命令总结
之前在小米实习的时候,遇到的第一个问题就是不会用git,其实git讲起来很简单,就是把写好的代码先add,再commit,再push到服务器上,就OK啦!但是期间还是遇到不少问题的,比如代码写了一半发现别人提交了新的分支,比如分支开发一半的时候有一个紧急的需求过来需要马上修改,比如再不同分支写了不同的代码需要合并等等,本篇博客主要就列一些分支管理的命令,常规的add, commit不再赘述。1
2017-10-19 21:58:16
247
原创 浅谈Java里的三种锁:偏向锁、轻量级锁和重量级锁
在学习sychronized关键字及其实现细节的时候,发现java中的三种锁,偏向锁,轻量级锁,重量级锁其实也有很多值得探究的地方,引入偏向锁是为了在无多线程竞争的情况下尽量减少不必要的轻量级锁执行路径,因为轻量级锁的获取及释放依赖多次CAS原子指令,而偏向锁只需要在置换ThreadID的时候依赖一次CAS原子指令,代价就是一旦出现多线程竞争的情况就必须撤销偏向锁。Java对象头的长度
2017-10-15 22:10:37
16736
4
原创 简析CAS机制与实现原理
在学习CAS的过程中,我百思不得其解的一个问题就是在多cpu并发的环境下,CAS如何保证线程的安全性呢?关于这个问题下面的两篇博客写的比较不错,基本把其中的原理解释清楚了,这里我只作一个简单的阐述。http://m.blog.youkuaiyun.com/wbb_1216/article/details/62882921http://m.blog.sina.com.cn/s/blog_ee34
2017-10-13 10:37:24
5536
1
原创 设计模式六大原则小结
最近把《设计模式之禅》的设计原则部分看完了,这里对设计模式的六个原则做一个简单的小结单一职责原则单一职责原则(Single Responsibility Principle,简称SRP):是指一个类只负责一个功能领域中的相应职责,或者可以定义为,就一个类而言,应该只有一个引起它变化的原因。单一职责原则其实是从业务角度去考量代码的,他要求一个类只承担一个职责,也就是在设计类的时候要尽可能
2017-10-09 18:51:29
291
原创 简单理解volatile变量的原理
volatile实现原理Java语言规范第3版中对volatile的定义如下:java编程语言允许线程访问共享变量,为了确保共享变量能被准确的一致地更新,线程应该确保通过排他锁单独获得这个变量。vola tile并不是绝对的线程安全的,volatile只能保证该变量的可见性,也就是说该变S的值发生变化的时候,所有线程都能够立马发现这个变化。但在某些情况下比锁要方便。因为如果一个字段被声明成了v
2017-10-08 13:33:09
344
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人