自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

写代码的林克

唯不争,故天下莫能与之争

  • 博客(152)
  • 资源 (2)
  • 收藏
  • 关注

原创 欢迎与我交流

CSDN改版之后,博客左侧的个人自定义栏目无法显示了。如果对于我的博客有任何问题,都可以在博客下方留言,也欢迎关注我的个人微信公众号,佛系更新。GitHub个人博客邮箱: [email protected]...

2019-08-08 00:02:44 380

原创 JS的console对象的一些小技巧

在学习 JS 的过程中,我们常用console.log输出日志到浏览器控制台,今天就来看看console对象的一些使用小技巧。在浏览器中,console对象是window对象上的一个属性,我们可以在控制台打印出window对象或者使用window.hasOwnProperty('console')来进行证明,我们一般是直接引用 console 使用。基本使用1.打印不同级别的日志JS 定义了不同的日志级别,我们可以使用不同的方法输出不同级别的日志,他们之间的区别主要在于控制台的展示形式以及我们可.

2021-08-01 22:25:31 704

原创 几款提升开发体验的VSCode插件推荐

今天推荐几款通用的VSCode插件给大家。对于轻量级的文本或代码编辑器,最开始用过Notepad++,后来换了Sublime和Atom,最后换成了VSCode。作为一款微软出品的编辑器,最吸引我的是轻量级、启动快,扩展丰富,尤其是扩展丰富,目前前端代码开发,以及常规的代码文件编辑修改,我都是用VSCode来完成的,如果你还没有尝试过,强烈推荐,顺便贴一个下载地址:https://code.visualstudio.com/今天就推荐几款通用的VSCode插件给大家,可以极大提升大家的使用体验和效率。.

2021-03-07 22:37:12 1350

原创 AndroidStudio更新4.1无法启动问题解决方法

最近AndroidStudio4.1正式版本发布,点了更新提示先更新插件,然后可能是更新过程中重启了AndroidStudio,结果导致再次打开时直接无法启动了。启动时报错信息如下:java.lang.NoSuchMethodError: com.intellij.ide.plugins.PluginManagerCore.getEnabledPluginRawList()Ljava/util/List;看报错信息跟插件也有一点关系,搜索了一下找到一种解决方法,亲测有效。直接在命令行执行如下命.

2020-10-18 10:47:30 7563 11

原创 一场setTag引发的血案与思考

今天讲一个Android中由于setTag使用不慎引发的血案以及一些思考。故事背景如上图,app这个Module通过远程依赖aar的方式依赖了IM这个Module。在app这个Module中有如下的代码:View view = findViewById(R.id.view);view.setTag(R.id.root_position);这个 root_position 是声明在...

2019-09-12 01:26:34 1103

原创 kotlin小悟-这个继承有点不一样

今天聊聊kotlin中关于构造函数的一个话题。我们知道,在kotlin中构造函数分为主构造函数和从构造函数,关于详细的内容,可以点击下面的文章链接了解。Kotlin系列之主构造方法和初始化语句块Kotlin系列之从构造方法前置知识我们经常会写这样的代码://父类open class Father{}// 子类class Son: Father(){ }注...

2019-09-02 00:15:42 299

原创 kotlin小悟-安全调用符

今天看看kotlin中的安全调用符的一个注意点。之前的文章已经讲过ktlin中的安全调用符,可以点击查看。知识点kotlin中的安全调用符 ?. 是线程安全的。代码验证我们打开IDEA写下面一段代码:class Sample(var name: String?){ fun test(){ if(name != null){ print...

2019-08-30 00:30:26 744

原创 Git系列之简介与安装配置

从今天起,将会陆续更新一个Git从入门到进阶的系列文章。我个人觉得Git的使用不仅仅限于程序员,只要是涉及到协作与版本管理的地方,Git都应该算是一个不错的选择。哪怕你已经使用过一段时间的Git,我相信我的文章也会对你有那么一点点启发,一点点帮助,其实,这就够了。你可以通过思维导图快速了解文章的主要内容,以决定是否需要继续阅读。简介先放上Git的官方地址 https://git-s...

2019-05-04 23:00:41 300

原创 Kotlin系列之数组与集合

今天说说kotlin中的数组和集合。我们前面说过kotlin是一门更加纯粹的面向对象的语言,所以kotlin中的数组与集合与Java中会有一些不同,但是为了性能考虑,同时因为kotlin的最终编译产物是运行在JVM之上的,还为了保持kotlin与Java良好的互操作性,所以kotlin的最终编译产物又在尽可能接近Java的编译产物。对象数组我们在之前的代码中看到kotlin的main函数...

2019-03-09 15:59:40 1098

原创 kotlin系列之基本类型

今天一起来看看kotlin中的基本类型,包括基本的数据类型和其他一些特殊的与Java不同的类型。基本数据类型在Java中数据类型被分为基本数据类型和引用数据类型。在kotlin中所有的数据类型都是引用数据类型。与Java中的数据类型对应,kotlin中的数据类型有如下几种:数据类型java中的类型kotlin中的类型整数byte short int longBy...

2019-03-03 22:18:56 465

原创 Kotlin系列之可空类型的处理

在前面的文章中,我们已经看到了kotlin为了解决NPE问题作出的一些努力。这篇文章我们继续学习kotlin中与可空类型处理相关的一些知识。非空断言在程序的编写过程中有这样一种场景,我们已经在前一个函数中对一个可空类型的变量进行了检查,之后我们在接下来的函数中使用这个变量,我们其实已经很明确地知道这个变量前面已经进行了判空处理,后续不可能为空,但是编译器无法清楚地推测出来,这时候在编译器眼...

2019-02-20 22:57:06 707

原创 Jupyter Notebook报错Initializing libiomp5.dylib, but found libiomp5.dylib already initialized.

今天使用Jupyter Notebook老是报服务会挂掉,查看控制台,主要的报错是下面这句Initializing libiomp5.dylib, but found libiomp5.dylib already initialized.简单理解这个就是重复加载了动态链接库,解决方法有下面两种:方法一:在Python程序的开头加上下面两句:import osos.environ["K...

2019-01-09 21:45:31 4169

原创 Kotlin系列之类型可空性

作为一个程序员,最常见的问题恐怕就是NPE了吧,有时候即使很小心的编码,还是避免不了出现NPE,在Kotlin中,它力争把这个在运行时常常出现的问题在编译器解决掉,让我们写出更加健壮不易崩溃的代码。Java的类型系统存在的问题在说kotlin之前,我们先谈谈Java中的类型系统。什么是类型呢?通俗来讲其实就是对所有我们要表示的数据确定一个具体的分类。比如,我们把12这个数据分为int这个分类...

2019-01-06 18:56:32 658

原创 Kotlin系列之带接收者的Lambda

今天来看看Kotlin中关于lambda的两个函数with和apply,我们将其称为带接收者的lambda,不了解为什么会这么命令,看完下面的实例你应该就可以理解了。注意,上面也已经说了,with和apply其实是两个函数,虽然它们看起来像是关键字。with函数简单使用我们在Java中经常会写下面这样的代码:public String getRes() { StringBui...

2018-12-30 00:20:24 2340

原创 Kotlin系列之序列

今天来一起学习下Kotlin中的序列。在开始之前,先说一下我们定义的演示数据,后面数据定义的代码就不重复出现了。//Person数据类data class Person(val name: String, val age: Int) val personList = listOf(Person("小红", 22), Person("小明", 23), ...

2018-12-03 23:12:15 802

原创 VSCode常用快捷键

一、光标移动1. 以单词为粒度移动光标Option + 左右方向键2. 移动光标到行首或行尾Command + 左右方向键3. 以代码块括号为粒度移动光标Command + Shift + \4. 移动光标到文档首尾Command + 上下方向键二、文本选择对于上面的光标移动快捷键,再配合Shift键,就可以实现文本的选择。三、文本删除1. 删除光标右侧内容Com...

2018-11-19 23:29:17 627 2

原创 VSCode命令行常用快捷操作

一、VSCode基本设置1. 打开命令面板F1 或 Command + Shift + P2. 将VSCode安装到系统环境变量打开命令面板,搜索PATH,选择在PATH中安装code命令,然后重启终端就可以生效,以后在命令行就可以通过code命令直接打开VSCodev3. 打开VSCode自带的终端Ctrl + `二、VSCode命令行文件操作相关快捷键1. 打开某个文件...

2018-11-17 15:53:37 16906

原创 Kotlin系列之集合的函数式API

几乎各种语言都对集合操作提供了方便的库函数,Kotlin也不例外,今天就来说说Kotlin中与集合操作相关的函数式API。在开始之前先说一下这里的演示数据,后面演示数据的代码将不再重复出现://数字集合val numList = listOf(1, 2, 3, 4, 5, 6)//People数据类data class People(val name: String, val ag...

2018-10-08 23:05:07 646

原创 apktool反编译后回编失败解决方法

今天用apktoool反编译apk,然后回编回去的时候报错失败了。具体情况是这样的。apktool版本:2.3.4使用下面的命令反编译apk:apktool d dou2.apk -o test然后修改完成后使用下面的命令回编译cd testapktool b .然后在回编译的时候报错信息如下:W: ~/Downloads/dou2/./res/color/a77.xml:4:...

2018-10-07 20:46:34 11291 10

原创 Ubuntu18.04安装MySQL后普通用户无法登录

使用下面的命令在Ubuntu18.04上安装MySQL。sudo apt install mysql-serversudo apt install mysql-clientsudo apt install libmysqlclient-dev然后发现在普通用户shell下无法使用root用户名登录MySQL。切换到root的shell后可以无需密码登录到MySQL。sudo sumy...

2018-09-20 01:19:17 5625 2

原创 nginx实现单主机多域名映射

最近遇到的一个小问题,记录了一下解决过程,写出来分享给大家。背景因为前段时间买了腾讯云3年的云服务器,准备偶尔写点后台代码放上去。正好最近也在计划写个小程序,用这个云服务器作为后台。但是微信小程序必须要求使用已经备案的域名和80端口,但是只有一台云服务器,一个80端口,如果我想用这台云服务器作为多个小程序的后台,那就不能满足需求了。想着要是能够将多个子域名都解析到我的云服务...

2018-09-12 01:30:02 1715

原创 Kotlin系列之Lambda表达式(3)

今天一起来看看Kotlin中与Lambda相关的成员引用的内容。定义先说说什么是成员引用,这里的引用指的就是变量引用,就相当于Java中的引用概念。成员的概念这里包含了成员变量和成员方法。这都是很官方的的说法。说白了,就是类里面的变量和函数。所以我们这篇文章讨论的就是如果一个成员函数或者变量已经被定义好了,我们如何使用Lambda表达式的语法,将它传递给另一个函数。成员...

2018-09-01 09:39:46 344

原创 Git下载GitHub项目的指定文件夹

有些时候,我们可能不需要下载整个项目,只需要下载其中的几个文件夹。可以使用下面的命令。首先打开Git的命令行终端,即Git Bash。然后在GitHub上切换到指定的目录,比如我这里要下载的img目录 https://github.com/codekongs/FileExplorer/tree/master/img 然后,我们将目录里面的tree/master/ 换成 trunk,然后...

2018-08-26 17:32:53 2475

原创 java.sql.SQLException: Unknown system variable 'query_cache_size'解决方法

这个问题是因为你的MySQL Connector的jar包和数据库不匹配造成的。 我的数据是是使用MySQL8.x的版本,但MySQL Connector使用的jar包是6.x的,所以会报上面的错误。 解决方法就是去maven仓库下载与数据库版本对应的jar包,下载地址:http://mvnrepository.com/artifact/mysql/mysql-connector-java...

2018-08-20 23:30:24 3343

原创 Ubuntu16.04禁用ipv6

今天在腾讯云服务器上运行一个mysql的docker镜像,运行完成后老是连接失败。分析发现,虽然我填写的是我服务器的ip地址,但是连接出错的报错信息却提示连接到另一个ip地址失败,猜测应该是ipv6问题。 使用下面的命令查看3306端口情况:sudo lsof -i:3306输出如下: 基本确认就是ipv6的问题。分析应该是docker在启动时会优先使用ipv6,所以解决方...

2018-08-19 11:37:29 1760

原创 Kotlin系列之Lambda表达式(2)

上一篇文章讲到了最基本的Lambda表达式,今天这篇文章继续讲Lambda表达式中的在作用域中访问变量。Java中的内部类访问变量当我们在函数内部使用匿名内部类时,我们可以在匿名内部类内使用函数的参数和函数内的局部变量。当我们在使用Lambda表达式时,我们也可以访问这个函数的参数和使用那些在Lambda表达式之前定义的变量。下面先看一个在Java中匿名内部类中访问函数参数...

2018-07-29 17:38:17 714

原创 Kotlin系列之Lambda表达式(1)

今天开始后续的几篇Kotlin的文章会介绍Kotlin中Lambda表达式相关的内容。什么是Lambda表达式在Java8中引入了Lambda表达式,这是最令Java开发者激动和期待的一个功能。那究竟什么是Lambda表达式呢?Lambda表达式本质上是可以传递给其他函数的一小段代码,我们在之前的Java或者Kotlin中,一个函数的参数可以是一种简单的基本数据类型变量或一...

2018-07-11 00:54:53 428

原创 Kotlin系列之对象表达式

今天学习一下Kotlin中的对象表达式。对象表达式,是一种代替Java中的匿名内部类的方法。下面看看具体的用法,以及它与Java匿名内部类之间的区别。代替Java匿名内部类我们都知道Java的匿名内部类,这里给一个最简单的匿名内部类的Java代码示例:String[] fileList = new File("./").list(new FilenameFilter(...

2018-07-06 00:17:40 930

原创 Kotlin系列之伴生对象

上一节中说到了对象声明,这次我们聊聊对象声明的一种特殊情况,对象声明在一个类内部,也就是标题所说的伴生对象。伴生对象最简单直白的理解就是与一个类相伴而生的对象,由于它处于类内部,所以必然和包含它的类存在某种联系。基本用法伴生对象使用关键字companion来声明,看起来就像是在object关键字前面加的一个修饰符。它的一般格式如下:class 外部类名{ com...

2018-07-02 23:20:51 2610

原创 Kotlin系列之对象声明

隔了比较久的一段时间了,继续来学习一点Kotlin,今天说说Kotlin中的对象声明。我们都知道在Java中,必须先有类,然后才能new出对象,也就是声明类和创建对象是两个分开的步骤,并有先后次序。在Kotlin中,我们可以使用object关键字在声明定义一个类的同时创建出一个对象,也就是我们标题所说的对象声明,下面就来一起看看对象声明的相关知识点。基本用法对象声明的基本格...

2018-07-02 00:10:35 1289

原创 Java实现超简单验证码识别

闲来想实现程序模拟登陆一个系统,说白了,就是写个简单的爬虫,但是无奈,遇到了数字图片验证码,在查阅了一些方案以后,遂决定自己手写代码实现验证码识别,分享一下整个过程。图片验证码是什么图片验证码,这个大家应该都见过。最普遍的图片验证码就是一张图片上面有4-6个歪歪扭扭的数字字母,图片还有点看不清楚,但是基本可以肉眼识别出上面的数字字母。那为什么要有这个东东呢?其实验证码的出现...

2018-06-09 23:03:49 14781 5

原创 Spring报错 Failed to read candidate component class: file Caused by: java.lang.IncompatibleClassChange

今天写一个SpringMVC的小例子,遇到一个很怪异的问题。先说说开发环境:IDEA+SpringMVC+Gradle 先看看我的build.gradle文件引入的包:dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile group: 'org.spr...

2018-05-05 21:42:48 2012

原创 smali文件格式分析

smali文件是apktool将dex文件解析成更直观易读的一种文件形式。除了apktool之外,baksmali工具也可以将dex文件转为smali文件。 今天就来学习一下smali文件的格式,让我们可以读懂smali代码。编辑生成简单的待测试的apk我们做一个简单的测试apk,页面就一个输入框,一个按钮,点击按钮,将输入框中的内容用Toast展示出来。 代码如下:pac...

2018-03-14 23:11:28 1765

原创 Java虚拟机与Dalvik虚拟机对比

Dalvik虚拟机的特点体积小,占用内存空间小专有的DEX可执行文件格式,体积更小,执行速度更快常量池采用32位索引值,寻址类方法名、字段名、常量更快基于寄存器架构,并拥有一套完整的指令系统提供了声明周期管理、堆栈管理、线程管理、安全和异常管理以及垃圾回收等功能所有的Android程序都运行在Android系统进程里,每个进程对应着一个Dalvik虚拟机实例Java虚拟机...

2018-03-12 22:48:32 721

原创 Android逆向基本工具使用

adb命令网络adb <1>手机打开开发者模式的usb调试<2>数据线连接手机到PC<3>连接手机adb tcpip 5555adb connect <手机ip><4>拔掉数据线注:断开adb disconnect安装apkadb install -r xxx.apk卸载apk...

2018-03-08 22:48:23 517

原创 Kotlin系列之数据类和类委托

今天聊聊Kotlin中的数据类和类委托。在Java中是没有数据类和类委托的概念的。但是简单一点说数据类就是我们常说的Java中的Bean,它只是单纯为了表示数据而存在,就是一个方便的数据容器,而类委托表面看来就是主要实现将一个类委托给另一个类,具体内容我们往下看。Kotlin中的数据类上一节的代码中我们讨论了Kotlin中的通用对象方法,我们演示用的类就可以看作是一个数据类。代...

2018-03-07 23:05:08 864

原创 Kotlin系列之通用对象方法

今天我们来说说Kotlin中的通用对象方法。什么是通用对象方法呢?其实就是所有对象都拥有的方法,再进一步说,就是toString()、equals()和hashCode()。今天就来看看Kotlin中的这几个方法。老规矩,先来稍微提一下在Java中这三个方法的一些知识点,再对比着来看。Java中的通用对象方法在Java中,这几个方法都是Object的方法。 toStr...

2018-03-06 22:26:54 1581

原创 Kotlin系列之接口中的属性

今天我们看看如何让在Kotlin的接口中声明属性。在前面的文章中我们已经介绍过Kotlin中的接口,这里我们先复习一下,然后再重点说说Kotlin中的接口如何声明属性。Kotlin中的接口下面是一段Kotlin中接口声明的代码,帮助大家复习一下。Kotlin代码package ktinterface Clickable{ fun click() ...

2018-03-06 00:03:47 5822 1

原创 Kotlin系列之从构造方法

上一节说到了Kotlin中的主构造方法和初始化语句块,今天来看看Kotlin中的从构造方法。在Java中的问题在Java中,我们有时候为了用不同的参数来创建一个对象,就会声明多个构造方法,也就是构造方法的重载。然后我们可能会让某些构造方法的某些参数为默认值。在Java中是没有主构造方法和从构造方法的概念的,都叫构造方法,就像下面这样。Java代码public cla...

2018-03-05 00:11:50 1042

原创 Kotlin系列之主构造方法和初始化语句块

前面我们已经说过类和接口的知识点,今天来看看Kotlin中的主构造方法和初始化语句块。我们知道在Java中也存在构造方法的概念,也有初始化块的概念。所以今天还是拿Kotlin和Java进行对比学习。Java中的构造方法和初始化块在Java中构造方法有以下几点的规则。 1 . 构造方法没有返回值,方法名必须与类名相同2 . 如果没有显式声明构造方法,Java会给我们生成一个默

2018-02-07 13:12:39 4344 2

free video to gif converter(mp4转gif工具)

该工具是将MP4录屏视频方便转为gif动画的得力工具

2016-10-28

Genymotion-ARM-Translation.zip

Genymotion-ARM-Translation.zip,可以解决Genymotion虚拟机不能运行RAM结构的APP的问题

2016-05-24

空空如也

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

TA关注的人

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