- 博客(42)
- 收藏
- 关注
原创 对盖得排行APP内容方面的一些看法
周五下午面试了盖得排行的内容岗位,由于太过紧张,面试过程中两个关键问题都回答得非常差劲,大概率gg了。面试完之后回来又更加深度地使用了盖得这款app,写下这篇文章一来是对面试过程中没有好好回答的问题复盘一下,给自己一个交代,二来希望能够“挽”一波,万一呢?产品概况盖得排行主要功能是通过给用户提供PGC消费榜单,帮助用户作出购买前决策。标榜客观、公正、不收费、杜绝竞价排名。主要盈利方式是通过电商导流获得返利。编辑团队通过各种途径搜集资料,整理出榜单,让消费者在作出决定之前有一个理性的参考,同时盖得.
2020-08-09 13:55:24
4606
1
原创 JavaScirpt的replace()方法默认只会替换一个
String.prototype.replace(str,str)该方法会用第一个参数来匹配字符串子串,并且替换成第二个参数.但是默认只会替换第一个如果要替换全部,可以在第一个参数传入一个有全局匹配规则的正则表达式实例,...
2020-01-09 14:01:08
1250
原创 使用MUI遇到的坑: nable to preventDefault inside passive event listener
在使用mui的scroll组件的时候,需要导入mui的js文件,执行以下代码初始化组件://导入mui的js文件import mui from '../../lib/mui/js/mui.min.js'//初始化滑动控件mui('.mui-scroll-wrapper').scroll({ deceleration: 0.0005 });但是,当加入这几行代码之后,在浏览器对页面进...
2019-12-21 09:33:52
822
3
原创 foreach 和 map 的区别
相同两个都是遍历数组然后对数组元素进行回调操作的方法.匿名函数中的this都是指向windows执行速度都没有for循环快不同foreach没有返回值,不可以链式调用,不能改变数组,但是理论上可以通过回调函数改变数组map返回的是一个数组,也就是原来的数组,同样不会改变数组map方法可以链式调用没有办法跳出foreach循环,除非抛出异常...
2019-12-18 14:22:49
112
原创 JS防抖和节流
在页面中,如果高频率地触发某些事件,特别是回调函数中有一些耗时的操作的时候,就会多次调用回调函数,容易造成页面假死.要解决这类问题,就要用到防抖和节流.防抖防抖的原理很简单,可以理解为延迟执行回调函数,然后在这个延迟的期间,如果不再次触发对应事件,才会进行对应的操作,如果触发了对应的事件,就重新计时,这样就实现了防止过频调用回调函数的效果,实现代码如下:function debounce(f...
2019-12-13 22:05:48
118
原创 VUE编程式的导航
除了通过router-link创建a标签来实现路由导航之外,还可以使用编程的方式router.push(path)在 Vue 实例内部,你可以通过 $router 访问路由实例。因此你可以调用 this.$router.push\调用这个方法会向hostory栈添加一个新的方法,当用户点击回退按钮的时候会返回上一个访问的路由页面.其实采用用声明式导航的时候(router-link标签),...
2019-12-07 10:05:17
132
原创 用iview标签切换vue路由组件
iview中有效果不错的标签组件,于是就有了把iview中的标签,作为vue路由链接的做法最开始,打算把router-link的tag指定为iview的Tag.结果发现这是不可行的,于是改变思路,最终实现代码如下:<Tabs class="switchTab" value="all" @on-tab-remove="tabRemove" v-model="acti...
2019-12-07 09:50:30
626
原创 回调地狱、promise
当异步操作依赖于上一个异步操作的时候,需要进行异步操作的嵌套,否则无法保证回调的顺序执行。但是采用回调嵌套,会形成回调地狱。为了解决回调地狱的问题,在ES6中新增了promise API//新建一个承诺容器var pi = new Promise(function(resolve,reject){ fs.readFile('./data/123.txt', 'utf8', function...
2019-11-21 11:31:03
70
原创 给mac下的WebStorm配置autoprefixer
autoprefixer是什么autoprefixer安装autoprefixer如果没有npm,先安排然后:npm install autoprefixer -g下一步安装postcss-clinpm install postcss-cli -g在WebStorm中配置新建一个External Tool,取个名字,填入:program:/usr/local/bin/po...
2019-11-05 11:25:35
300
1
原创 模仿豆瓣首页练习-笔记
块盒上方莫名的空白豆瓣首页的顶部由logo、搜索框、以及一些列导航图标组成。要达到的是下面这种效果:于是想到用几个行块盒来做,然后定高,排好就行了,没想到在放置搜索框的时候出了问题、实际效果如下:先忽略整体的上下留白,这一步的目的是让三个行块盒对齐,外围div的高度定为30px,然后里面每一个div的高度也设定为30px,但是可以发现,搜索框上方有一段不应该出现的空白(margin-top已...
2019-11-05 11:05:22
338
原创 Mac使用dd命令速度奇慢的解决方式
前几天给树莓派安装ubuntu系统,按照raspberry pi官网的教程,没想到翻了车。按照教程,用diskutil list命令列出全部磁盘sd卡路径是/dev/disk2教程里面关键命令是下面这行:sudo sh -c 'gunzip -c ~/Downloads/ubuntu.img.xz | sudo dd of=/dev/disk2 bs=32m'先解压文件,然后再写入sd...
2019-10-22 22:27:03
6078
1
原创 JavaScript的new关键字,到底做了什么
看到js高程第六章的时候,有一段示例代码是这样子的:function Person(name, age, job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){ alert(this.name); }; return o;}var friend...
2019-10-19 00:09:27
282
原创 笔记——KeepAlived
简介Keepalived是Linux下一个轻量级别的高可用解决方案。高可用:广义来讲,是指整个系统的高可用行;狭义的来讲就是主机的冗余和接管。它与HeartBeat实现类似的功能,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat是一个专业的、功能完善的高可用软件,它提供HA软件所需的基本功能,比如:心跳检测、资源接管,检测集群中的服务,在集群节点转移共享IP地址的所有者等等。H...
2018-12-17 22:54:32
167
原创 Spring mvc 的静态资源映射
访问资源报404的话,原因是静态资源被spring mvc的dispatcher servlet拦截。解决办法:加入静态资源映射的配置:(以图片资源为例)<mvc:resources mapping="/images/**" location="/images/" /> ...
2018-12-16 14:07:38
483
原创 杂记——可能是最通俗易懂的快速幂
看到一道很简单的求整数次幂的题目,但是看到讨论区有用快速幂做的,我居然不知道这是什么?于是学之,记之(其实这玩意在大一的计算机导论里面提到过)什么是快速幂快速幂是一种简化运算底数的n次幂的算法,理论上其时间复杂度为 O(log₂N), 而一般的朴素算法则需要O(N)的时间复杂度。简单来说快速幂其实就是抽取了指数中的2的n次幂,将其转换为时间复杂度为O(1)的二进制移位运算,所以相应地,时间复杂...
2018-11-27 00:29:18
188
原创 LeetCode 453 Minimum Moves to Equal Array Elements
题目:Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1.Example:Input:[1,2,3]Ou...
2018-11-14 11:06:21
135
原创 Grand Tour 属于欧洲贵族的浪漫成年礼
闲来无事,写一技术无关的博客吧在豪华品牌的性能车当中,经常能看到很多以GT结尾的型号,例如梅赛德斯的AMG GTR,宾利的欧陆GT,Ferrari 的GTC4Lusso,亲民一点的有宝马5系GT,3系GT等。这些车不一定有很爆炸的性能,不一定是赛道利器,但有一个共同点,他们一定是同级别性能车里面比较舒适的,调教更倾向乘坐感受,而不是极致的速度,内饰可能会用华贵的真皮实木而不是轻量级的碳纤和alc...
2018-11-13 23:03:16
4253
原创 笔记-会话技术总结
Cookie存储在客户端发送Cookie:Cookie cookie = new Cookie(name,value)//新建Cookiecookie.setMaxAge(second)//设置有效时间cookie.setPath()//设置有效路径获得Cookie: Cookie[] cookies = request.getCookies //遍历然后 cookie...
2018-11-08 15:11:07
200
原创 LeetCode 886 Possible Bipartition
题目Given a set of N people (numbered 1, 2, …, N), we would like to split everyone into two groups of any size.Each person may dislike some other people, and they should not go into the same group.F...
2018-10-25 15:38:26
512
2
原创 最近的总结?想法?毒鸡汤?
为什么会有这篇博客又是0offer的一天,迷茫,压力,不安,失落,这是我最近的主旋律。从假期开始复习准备秋招,到现在一无所获,难免让人感到焦虑。而我又是非常容易受到情绪影响的人,心情不好,什么事情都做不了,时间在一分一秒地流逝。因此给自己一个停下来思考的时间,做一个总结,显得很有必要。为何不写一篇博客呢,正如做技术总结一样,心态的变化过程,也值得总结。这篇博客可能结构很混乱,分成很多不相关的小...
2018-10-23 01:31:22
511
4
原创 关于Android P不能使用明文网络通信
在使用阿里云oss的API时,遇到了以下错误:CLEARTEXT communication to " xxxxxxxxx" not permitted by network security policy这个异常应该是oss的api调用的okHttp3抛出的,因为安卓新版本默认是不允许使用明文网络传输的,会强制让应用都使用https。文档:但是我们可以通过修改项目的网络配置来允许使用...
2018-10-09 23:45:07
2596
原创 7.0以上版本沉浸式状态栏解决
在Android7.0以上版本的手机中,发现沉浸式状态栏不好使了,用以前的写法,状态栏会有一层黑色的半透明遮罩原因在7.0以上,状态栏颜色是由系统动态运算得出的,因此我们给它设置透明色也是没用的。解决办法加入判断逻辑,通过getWindow().getDecorView()可以获取到这个DecorView类的对象,然后通过反射修改这个对象的成员mSemiTransparentStatusB...
2018-10-08 13:22:16
470
转载 android项目中values中ids.xml的作用
ids.xml——为应用的相关资源提供唯一的资源id。id是为了获得xml中的对象而需要的参数,也就是Object = findViewById(R.id.id_name)中的id_name。这些值可以在代码中用android.R.id引用到。若在ids.xml中定…ids.xml——为应用的相关资源提供唯一的资源id。id是为了获得xml中的对象而需要的参数,也就是Object = findV...
2018-10-05 13:15:49
1177
原创 居然还有这种姿势?!Gradle科学管理多个模块下依赖包的版本
如果项目有几个模块,且存在依赖关系,他们如果依赖同一个库就必须版本一致。那么就需要一个科学管理依赖包版本的小技巧了。这里记录一个刚刚从大佬那里学来的新姿势。具体思路很简单,将同一个库的版本号提取成一个变量,放在项目的build.gradle文件就可以。具体步骤以这个项目为例项目MChat攻两个模块:一个app模块,依赖另一个common模块(Library)首先,在项目的build.gr...
2018-10-02 00:07:19
1693
原创 使用Homebrew安装的软件,配置到Intellij IDEA
brew是一个mac下十分十分好用的包管理工具。这篇博客主要是解决这两个问题:如何查看brew安装软件的目录怎么把用brew安装的软件配置到Intellij IDEA(例如Tomcat)使用命令brew list即可查看用brew安装过的软件,然后brew list APP_NAME可以准确地显示软件的安装路径配置到IDEA软件安装完之后brew会有提示:很自然地,配置的时候就...
2018-10-01 18:01:11
3048
原创 再次碰到依赖冲突的问题,这次是另外一种姿势!
自己折腾的小项目进行到一半,出现了状况,在加入了Picasso的依赖之后,编译项目的时候报错:大概意思就是,有两个okio.Buffer。于是双击shift,全局搜索了一下okio,果然:于是乎展开项目的目录结构一探究竟,展开依赖包的目录,发现:bmob本身依赖了okio,而Picasso依赖okHttp,okHttp又依赖okio,所以又重新引入了一个okio(毕竟是自家的产品嘛),这...
2018-09-27 22:06:28
205
原创 惊!关于AndroidStudio你可能不知道的神奇技能
自动生成变量在有返回值的方法后面连缀上.var然后点回车,会有惊喜喔,哪怕是整个方法体作为另一个方法的参数,也可以用这种方法抽取出来,例子:...
2018-09-26 23:08:31
187
原创 Android Studio自定义文件Header(开头注释)
效果在类的开头,自动生成例如这样的注释:在每个类,或者接口,或者其他代码文件中,加入自己的名字,创建日期,以及文件基本信息等要素,对日常开发有极大的帮助。怎么实现首先,进入设置里面的File and Code Template(文件和代码模板),其中Files选项卡下面的是引用模板的代码,include下面的是具体的模板格式,两处都可以编辑,其实主要编辑的是include下的。仔...
2018-09-26 18:57:17
8059
原创 使用RxVolley框架请求网络,发送参数为json格式的post请求,遇到的一些小问题
事发经过最近在实现一个机器人聊天的功能,因为想偷懒,于是网络方面就采用了RxVolley框架来实现。接口采用的是图灵聊天机器人。但是在实现的时候,发现,图灵聊天机器人api升级之后采用了比较复杂的json请求body,安装一些网上的教程写的请求代码没办法得到正确的返回值,于是决定自己研究研究。出现错误的代码一开始的代码是这样的: params.putJ...
2018-09-26 16:43:17
1064
1
原创 惊!关于BaseAdapter你可能不知道的真相(多种type的情况下)
在实现一些app的聊天功能的时候,经常要用到一个ListView显示多种布局。很多书本或者教程都有现成的模板代码,就是在BaseAdapter里面,重写getViewTypeCount,getItemViewType,然后就在getView里面判断具体条目的类型,返回对应的View。就好像下面的代码。初学的时候非常的不解。代码中对于View 的复用,难道不会造成混乱吗?例如在应该显示左边的聊天...
2018-09-26 00:49:53
617
原创 Mac升级Mojave之后,AndroidStudio插件报错,无解,重装过程
事发经过今天,apple放出了macOS Mojave的正式版,果断升级。不料,升级之后AndroidStudio翻车了系统更新完之后,不知道什么原因,无法新建项目,也无法新建module,具体就是在选择创建Activity的时候,直接卡死,点击下一步无反应,然后启动AndroidStudio的时候回报插件错误,错误信息是某个插件的路径,也没有什么使用的信息,实在找不到解决办法的情况下,只能重...
2018-09-25 21:01:02
1123
3
原创 Android Studio解决依赖冲突
编译的时候报这个:所以人家都告诉你了,就是有多个库同时又引用了rxjava这个库,然后就不知道用拿个版本了。。。原因就是我的项目中bmob和rxvolley都用到了rxjava,只要在module的build.gradle下稍微更改下添加依赖的语句就可以了(这里直接排除掉io.reactivex包下的所有文件了)...
2018-09-21 01:38:41
1626
原创 自定义View的一个练习(中间带百分比显示的圆环形ProgressBar)
系统版本问题问题的原因在AndroidN之后,处于安全性的考虑,系统将禁止携带有file://类型Uri的Intent离开你的应用,否则应用会抛出异常。解决方法使用ContentProvider。其实准确来说是使用FileProvider,他是ContentProvider的一个子类,看名字就知道他是用来干嘛的。官方文档具体的步骤1.首先在Manifest文件注册Provider&amp;...
2018-09-21 01:35:06
393
原创 关于笔记和知识付费
笔记vs博客以前都是用mac 自带的Notes记录平时的学习积累,图个方便,手机也能看。重要的东西写成博客。慢慢就发展成懒得记了,学到新东西的时候想着,嗯写完demo今晚写篇博客,结果晚上累了便睡过去了,很多时候知识因为没有review就这样忘掉了。前两周开始用印象笔记,不得不说真的非常好用,具体怎么好用不细说,谁用谁知道,光一个搜索功能就帮了我不少,零散的小知识点小技巧用这种记录方式很好。最...
2018-09-01 22:38:32
408
原创 关于Handler和内存泄漏
Handler可能引发内存泄漏的原因首先要了解两点: 1. 非静态内部类会持有外部类的this引用。为什么呢? 内部类虽然和外部类写在同一个文件中, 但是编译完成后, 还是生成各自的class文件,内部类通过this访问外部类的成员。1 编译器自动为内部类添加一个成员变量, 这个成员变量的类型和外部类的类型相同, 这个成员变量就是指向外部类对象(this)的引用;2 编译器自动为内部类的构...
2018-08-15 01:29:39
197
原创 Git修改远程仓库地址
emmmm….不小心把仓库连接打错了,然后发现,OMG我居然不知道怎么修改方法一简单粗暴,先删除再新建:进入项目根目录git remote 查看所有的远程仓库然后 git remote rm xxx(删掉xxx远程仓库)git remote add origin xxxxxx(重新设置名为origin地址为xxxxxx的远程仓库)方法二稍微高端,用set-url命令修...
2018-07-29 15:05:20
1684
原创 jdbc连接Mysql的小问题啦
错误啦java.sql.SQLException: Unknown system variable 'query_cache_size'原因啦驱动版本和数据库版本不匹配啦解决方法啦很简单啦 改成对应版本啦 <dependency> <groupId>mysql</groupId> ...
2018-06-25 10:10:05
114
原创 对于LayoutInflater的一些理解
获取大家都知道LayoutInflater的作用是将布局填充到View中 用getLayoutInflater()方法或者getSystemService(LAYOUT_INFLATER_SERVICE)来获取 调用LayoutInflater类下的from方法,接收context返回一个layoutInflater对象接收三个参数的inflate()方法重点来了,Layo...
2018-05-31 00:07:58
195
转载 一个经典例子让你彻彻底底理解java回调机制
转载自xiaanming的博客以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式:Class A实现接口C...
2018-05-12 15:43:21
255
转载 Android EditText 实现特殊格式输入
现实中经常遇到要输入特殊格式的字符串,比如MAC地址,IP地址等,可以自动匹配需要的 格式。实现方式是通过EditText.addTextChangedListener(TextWatcher)TextWatcher实现方式如下:[java] view plain copyclass MyTextWatcher implements TextWatcher{ private bo...
2018-04-28 23:39:46
561
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人