- 博客(147)
- 问答 (1)
- 收藏
- 关注
原创 python爬虫随笔3 妹子图爬虫
前言其实最早知道python爬虫就是知乎接触的妹子图爬虫,这次等于是自己写的;很多类库都是自己喜欢那个就用那个了;思路首先我们需要一个导航页,然后找到我们需要的类似于列表之类的,然后得到链接集合 #通过主页导航,获取链接集合def getPicture(): url = "http://www.mmjpg.com/tag/meixiong" r = requests.get(
2017-09-26 21:42:56
771
原创 python 爬虫随笔2
前言这并没有写完思路实在没事做,就写了一个爬虫,主要是爬去我校pt站的图片,用以积累;以后就可以爬其他图站嘞;实践了爬虫的基本思想;写pyspider的时候,也是这种很明显的思路 一个入口url,比如导航页之类的,然后从这个页面获取其他的url到最终的详情页,我们爬取数据;我们使用集合储存链接,然后让线程一直跑,这样的话,一有新的内容就可以得到,然后我们也就可以发邮件啊什么的通知自己了
2017-09-24 21:10:26
416
原创 Badminton
badminton验证部分首先大部分函数都有测试用例,本来想TDD的,(由于自己太笨)后来就写成测试了;main函数也可直接执行; 我加了几个命令,settleOrder,结算订单,clear,就是全部预定重置,quit就是退出系统;流程由于输入检测十分复杂,所以就单独写了一个类,我也是第一次如此处理字符串,首先是正则,然后是日期检测,时间检测;输入确认没问题,就可以判断是预定和取消预订了;
2017-09-10 21:08:24
363
原创 Python爬虫随笔1
起因问答网站做到现在,没有数据啊,所以需要一些数据;爬虫很好玩,早就在知乎看见别人爬各种羞羞网站的代码,不过一直没时间,最近感觉自己秋招也没啥希望,还是做点自己想做的事情吧;我的Python基础几乎为0,虽然看过语法,然而都忘了,这玩意不写,两天就忘了;所以给点动力,也可以好好工作一把;爬虫1.一直听说爬虫,其实并不是什么厉害的东西;在B/S架构下,所有数据都是要传输到我们客户端上的,也就是
2017-09-07 22:21:04
337
原创 SNS关注
前言这会是一个超级无聊的内容;架构首先我讲一下整体的架构(假装很厉害吧); JedisAdapter用来做Redis的适配,我们对一些redis命令进行封装;RedisKeyUtil 是用来记录redis中的key的;比如我们通过一个实体类别+实体id为key,然后就可以找到这个实体的关注者;相同的,我们可以通过userId+ 实体类别,就可以找到用户在这个方向关注什么了; 然后我们想一
2017-08-19 21:27:10
458
原创 消息队列 与 邮件发送
起因消息队列顾名思义是发消息的,但是它并不是一个用来发消息功能;它的作用是用于线程与线程间,进程与进程间的通信;消息队列消息队列可认为是一种通用的解决方案,一种进程(线程)间通信的方案;有句话是这样讲的,不要以共享内存来实现通信,而应该通过通信来实现共享内存;当我们想把一件事情共享给多个进程,而又不需要强烈的时间限制,那么通信是一种很好的解决方案;两个进程如果都需要某个变量,那就通过通信传递,
2017-08-14 20:06:17
1578
原创 volatile
起因我相信volatile是非常有必要记录一下的;实现原理首先我们知道volatile能保证原子性,但是又不能保证同步,很奇怪吧;但是我写过一个例子,i++;非volatile会存在后面的值比前面小的情况,volatile不存在,只会存在相同的情形;这是为什么呢? 首先我们假定就是多个cpu,每cpu一个线程,我们知道内存里面放了成堆的数据,cpu每次取要用的放在寄存器里,那么多个线程一起处
2017-08-07 21:53:28
233
原创 redis 与赞和踩
前言系统到了要实现赞和踩的阶段了;REDIS总是听nosql,但还真不懂啊原来nosql真的和传统数据库不一样;是依赖与传统中的集合来的redis的应用与集合的特性 hash:在一个hash表里面,键是string,值又是一个hash,然后就可以加很多很多东西;因为hash表本身就可以扩容的嘛;好处就是可以随着对象随便的增多属性或者减少属性;set 和普通的set一样,用于去重,求交集啥
2017-08-07 21:13:24
1091
原创 计算机网络-运输层
前言计算机网络不管怎样,都是一个好难的学科啊;各种纷繁复杂的协议,要考虑的问题也实在是太多了;概述运输层提供逻辑通信,服务主体是应用层的各种应用程序,让我们感觉我们所享用的服务就是自己电脑上的,而实际上却是超级远的地方;由于运输层是服务于各种应用程序的,所以分解与合并就是必然的;注意分解并不是分解成报文段,报文分解为小的报文段,主要原因是因为网络需求;报文段中的端口号才促使了分解与合并,运输
2017-07-24 19:27:51
324
原创 评论中心+站内信
起因没有起因其实这节课主要是在将web开发中,一个全新功能是怎么一步一步完成的评论中心数据库中comment的几个索引: 创建日期所构成的索引评论实体类型,和评论的id,比如针对问题的评论,问题的id是27,这些就是针对问题27的所有评论,比如针对评论的评论,评论的id也是27,但这量个就有很大的区别了用户id构成的索引,我们可以轻松的获取一个用户的全部评论,就可以放在用户最近动态里之
2017-07-23 19:42:23
412
原创 问题发布与敏感词过滤
起因这其实是上节课的内容了,不过还是记录一下好了;问题发布题外话对一个web程序,架构是不变的,service负责拿数据,上层也不在意你是怎么取得的;所以一个功能的实现,要从建立数据库开始,然后是与之对应的model,然后是DAO层,service,然后controller就可以去的数据了,然后再通过model传到页面上,数据量大的话,可以使用ViewObject 来进行传输;切面可以让我们在业
2017-07-23 18:59:01
1331
原创 计算机网络 --应用层
起因其实也没啥起因,只不过是觉得自己没学好计算机网络,八周的课时,老师自己都不知道自己讲的是啥;我么买了本计算机网络 自顶向下方法,觉得计算机网络还真的是蛮有意思的;而且很多东西,我都自己实验了蛮有趣的;远不是想象的那么枯燥;应用层两大体系结构: csp2p那什么B/S其实只是一种C/S结构罢了;TCP服务 面向连接的服务,全双工通信,结束时必须拆除可靠的数据传输服务UDP服务
2017-07-17 20:05:49
252
原创 reglogin + interceptor
登陆注册核心思路就是你登陆注册,我判断是否合法,然后创建Ticket,下发Ticket;@Controllerpublic class LoginController { private static final Logger logger = LoggerFactory.getLogger(LoginController.class); @Autowired UserSe
2017-07-08 14:02:53
326
原创 mybatis + 首页开发
起因其实这个看了半天也不没啥可说的,就是些零零散散的配置,不过还是记录一下吧;况且只是稍微会用,可不能称之为会用啊;mybatis这货是java进行数据库操作的框架,很明显的,数据库连接是spring做的;mybatis负责简单的操控数据;spring.datasource.url=jdbc:mysql://localhost:3306/wendaspring.datasource.dat
2017-07-01 20:25:25
371
1
原创 spring-boot&mvn&terminal
起因下午再看git,看了半天还是感觉有很多不懂的东西,用的时候再说吧;Mavenmaven原来没有配置过,直接用的Intellij 自己的,所以自然也不知到人家命令行是啥情况了呗;所以maven应该先下载,配置环境变量,然后就可以用命令行了;Terminal一直以来都不咋会用命令行,结果今天发现cmd是可以直接运行git,maven命令的,也就是配置环境的作用?Intellij 中termi
2017-06-25 20:56:52
580
原创 Git 常用命令记录
Git记性太不好了,还是自己写写,记下来吧;intellij直接是使用的图形界面,命令啥的也不清楚;一些命令git init 用来初始化目录为git目录,告诉git,这个目录归你管了;git add readme.txt
2017-06-25 14:39:35
222
原创 Effective Java 笔记1
起因Effective Java 这本书早就买了,然后发现太难,就又买了Java编程思想;现在再看,还是很难啊,不过我决定不求甚解,能看懂就看;反正各种知识其实是交错的,经验多了以后,总还是会懂的吧;我也就是大概记一下,现在理解的,比较好懂的,这样虽然记性不好,但总也会有点印象吧;创建和销毁笔记静态工厂方法代替构造器有名字,构造器需要以参数类型进行区别,但实际上我们可不太能记得住有啥参数,名
2017-06-07 21:27:00
247
原创 ThoughtWorks 结对编程
起因技术博客写多了,不会起名字的说 ,可能写多了,最后写出来的东西偏向于冷冰冰吧;正经的起因可能就是某个懒散的下午,打开电脑,不知道做什么,打开牛客看了看,随即看到结对编程,不知道是做什么的,点开看了看;页面很好,不想中国人写的;鬼使神差的就报名了,点进去看了看,居然 还有题;而且第一道题还是 intellij idea 的快捷键,很感兴趣,就做了;其实当时应该好好学习一下的,因为现在视频点不进
2017-06-04 21:51:36
5792
原创 关于浏览器插件
起因我想作为一个程序员,或者玩家的话,对浏览器这种应用的依赖性是非常强的;我的话,每天浏览器会打开7,8个小时以上,所以对浏览器要求就会很高;因为广告问题,用了多年的搜狗浏览器的扩展非常之少,然后超级不爽,就决定转去使用chrome,结果发现chrome浏览器真的是给程序员准备的,要啥没啥,书签,手势操作,新标签页,用了一下午,最后不用了;这真的不符合习惯;于是又回去用搜狗浏览器,但是超级不顺眼
2017-06-01 13:08:29
515
原创 rest api 的首次尝试
REST api 的首次尝试起因这是一道研发岗的试题,据HR小姐姐说是社招的题,我做起来确实有点吃力;因为我不懂商品需要怎么分类,不知道rest api 是啥。。。代码传送门艰难的前行关于数据库:首先是数据库上的:我刚看到题实在不懂多层分级是什么鬼,然后去百度了;看见知乎上面淘宝的实现,真是吓人啊;目前应该搞不明白是啥,于是就搜着搜着,大概明白意思就是一张表存商品,具有商品Id,商品类别,还可以有其
2017-05-24 20:04:26
290
原创 登录与JDBC
思路我决定自顶向下讲一下,这样比较生动,也比较容易记住;登录登录第一是要有个form,从网页哪里可以将数据提交到后台来;然后Servlet就来处理;@WebServlet(name = "LoginControl",urlPatterns = "/LoginControl")public class LoginControl extends HttpServlet { protected
2017-05-21 21:11:07
266
原创 最低公共祖先LCA
题目ps:这道题来源是剑指offer第50题;但是变种真的好多啊,所以就记录一下;树中两个结点的最低公共祖先:首先我们要明白这个最低公共祖先是啥?对于一个结点,它上面能到达他的都叫做祖先,他的父结点和它的父结点的父结点;树,因为树的不同,这道题有很多变种;比如二叉树?二叉搜索树,或者只是树;热身树 oj有一棵无穷大的满二叉树,其结点按根结点一层一层地从左往右依次编号,根结点编号为1。现在有两个
2017-05-15 17:59:57
1560
原创 保龄球得分计算
起因超无聊的一道题,保龄球得分真是麻烦;今天下午偶然看见结对编程,然后就申请了一下,写了这道题;完全不想解释,超无聊的题代码 public int getBowlingScore(String bowlingCode) { if (bowlingCode==null ||bowlingCode.length()<=0) return 0;
2017-05-05 22:12:30
2592
原创 Java 套接字
起因其实我不想写起因,一位面试人家让我写一个套接字,不会,输入输出,不会写。唉。。。 写代码吧,现在想想,我认真写java代码也没多久,慢慢来呗;套接字这个怎么理解呢,就是说tcp/udp在运输层,那么上层好多应用都要使用TCP,那么怎么区分呢?这时候就出现了套接字和端口,应用程序自己创建套接字,标记自己的端口,那么分包的时候就有了约束,传回的数据包,也可以根据端口找到位置;Dem
2017-05-02 22:05:39
367
原创 adsafe 罪恶的根源 破软件一个
起因今天找了一天的广告,因为这两天突然开始跳出弹出广告了,超级劣质的那种。然后我也不知道咋办,就腾讯管家杀了个毒,果然没有任何用处;然后几天都没有问题,然后今天又开始弹窗了;真的是超级劣质,你说你做个广告都不好好做,什么破程序员了; 然后就必须找出罪魁祸首了;其实最早我就觉得奇怪,因为很多地方都会有一个风骚的女人,还有一个和尚的广告,我也没理会;因为adsafe这个软件屏蔽了很多,这个屏蔽不掉也没
2017-05-02 20:53:19
2717
原创 俄罗斯方块Demo
起因其实是面京东伤心了,问啥啥不会,就拿个项目认真写写,写啥呢?俄罗斯方块呗;主要其实想玩一下io还有序列化;现在都基本实现了一下,下一步就是认真看看这两东西,或者就是看看socket方面的东西,反正就是一句话,玩项目,看书,巩固基础; 代码传送门类图主要参考 这个代码有一些问题,我都改掉了;MVC的架构还是很清楚的吧; 具体类图如下: 遇到的问题游戏方面的问题,形状在碰到墙后,其实是可以旋
2017-04-30 19:48:46
2190
原创 JDBC进阶 + 数据源
JDBC进阶上回我们知道了,通过工厂模式+配置文件动态连接数据库; 这次的主要目的呢,则是将增删改查想办法重构掉;比如查询,到哪里的操作不都是一样的嘛;所以我们自然就想到了将查询操作重构掉;然后我们思考一下类的组织,有这么一个接口,其中声明了增删改查,我们的类实现这个接口== 我们的类必须实现增删改查,不实现这些,你也叫数据库操作吗?然后我们要将这个类的增删改查的实际操作重构掉;这个类只需要知道该
2017-04-25 19:25:13
1635
原创 计算机实验
实验报告实验目的:就绪进程数大于处理机数时,按照某种策略决定哪些进程优先占用处理机。实验模拟处理机调度,加深对处理机调度的理解。实验内容:实验一模拟短进程优先调度 进程8 个,到达时间和服务时间(用户输入) 至少两种结果: 1 到达时间:0,1,2,…. 2 到达时间:其他实验源代码//进程类public class Process { String pro
2017-04-25 18:39:59
378
原创 JDBC基础
JDBC在任何语言中关于数据库方面的操作都是必须的,也是重要的,今天我们学习一下JDBC的相关操作;首先是不可缺少的JDBC要素 1. 连接,你必须先要和数据库建立连接,这样的话,你就肯定要加载一个数据库的驱动; 2. sql语句,你得有操作啊,还是数据库懂得; 3. 然后很显然,你不能让一个连接和sql语句直接发生关系吧,所以出现了PreparedStatement; 4. 还有的话,就是
2017-04-19 19:20:39
302
原创 无聊的计算机网络应急知识
题外话孙老师讲课真无聊教材写的完全不好计算机网络好复杂我个人认为计算机网络完全可以说是最难的一门课程了;第一章互联网指的是当今世界最大的计算机网络;互连网是说局部范围互连的计算机网络;互连网的两个特点:连通性,就像用户计算机彼此直接连通;共享性,信息,软件,硬件共享;网络是说由若干结点和连接这些结点的链路组成的;互连网,则是将网络也连接起来(通过路由器);互联网可以认为是两大块,一
2017-04-15 20:49:40
605
原创 京东 一面记录
惨痛的经历京东初试就在学校南边两公里,坐公交去的,因为不太会骑自行车;提前半个小时到了,10:30的面试,人很多,我的签到号码是466,所以你懂得;然后就是坐着等呗;接下来就是面试的过程了;项目问了equals和==,这种东西我怎么可能不知道呢,但是讲了半天也没讲清楚,可能还是紧张了;hashmap的结构static的作用,类,变量,方法,为啥main方法是static的;hashcod
2017-04-15 12:51:50
485
原创 Java应急 知识
通配符相关: 首先我们要明白类型擦出是怎么回事,也就是说,类型的确定是编译时确定的;编译时发现你往里存的对象有问题就报错;如果运行了你通过反射强制向里面添加元素其实是随便的; < T >表示某种类型,比如Integer;< ? >表示不知道具体那种类型;< T >简单啊,你添加,读取都是T类型;?呢,不知道是哪种类型,能放进去吗?显然不能啊,你总不能把电视和地球放在一起把,这样会很奇怪;但是?读
2017-04-13 19:15:10
272
原创 剑指Offer 56 链表中环的入口结点
题目描述一个链表中包含环,请找出该链表的环的入口结点。思路hashset,最快的想法;重复检验嘛截断指针;因为什么呢?因为你会发现入口结点有两个入口,如果从头开始截断指针,最后的这个一定是入口结点;神奇的双指针:其实这个想法我稍微想过,不过步骤比较多,没想明白;首先我们进入了环中,就可以计算环的节点数目;第二个想法是在一个环中,两个结点追逐的话,在绕一圈以后,就会相遇; 那对这一题来说:
2017-04-10 21:01:18
266
原创 剑指Offer 53 正则表达式
题目描述请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配思路其实难点有两个,一个就是*的处理,因为包含三种情况;还有就是指针控制代码 static pu
2017-04-10 20:27:58
207
原创 剑指Offer 52 构建乘积数组
题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。思路想想一个矩阵代码 public int[] multiply(int[] A) { int length = A.length; int [] C = new int[leng
2017-04-09 17:32:24
210
原创 剑指Offer 51数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。思路我们来思考一下,0~n-1 如果不重复是什么情况,就是0~n-1这些数都有一个,排好序
2017-04-09 16:05:52
336
原创 剑指Offer 49 把字符串转换成整数
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0思路其实这道题就是要考虑周全就行,首先是字符串的鉴别啊,“+”和“-”的判别,然后我就写多了。。。。代码 static public int StrToInt(String str) { if (str==null||str.length()==0)
2017-04-09 15:11:03
250
原创 剑指Offer 47 不用加减乘除做加法
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路依靠位运算,其实真的很巧妙对于+运算,难点其实就在进位运算; (101+10001)不考虑进位就是=10100;就是异或运算,只有一个1一个0才等于1;然后考虑进位,两个都是1才可能产生进位;也就是与运算;然后在左移一位即可;代码 static public int Add1(int num1,in
2017-04-08 20:29:56
194
原创 剑指Offer 46 求1+2+3+....n
题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路首先没了上面那些关键字你会发现,你不能循环了,所以你得想办法循环,书上给的是构造函数,但是java默认构造函数不初始化,除非你手动,所以说就不行了没有if,你会发现递归的条件不能控制了,和for,while一样,其实我们失去的就是控制边界;那么想法
2017-04-08 20:12:38
397
原创 剑指Offer 45圆圈中最后剩下的数字
题目描述0,1。。。n-1这n个数字排成圈;从数字0开始报数(报数开始为1),报道m时,把它踢出去,然后继续从1报数,最后会剩下谁思路模拟游戏过程,直接建一个循环列表,一个一个报数,不过显然这种方法比较复杂;不一个一个报数了,直接开上帝模式,指挥下一个出去公式的啦,数学之美;想法进阶首先循环链表是最模拟的情况,一个一个来,一个一个报数,最后出结果,在人的索引上不会出现问题,但是你需要指针来进
2017-04-08 19:31:08
241
空空如也
实际项目中的算法 和数据结构
2016-07-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人