两款不错的AI代码补全插件

https://www.codota.comhttps://www.aixcoder.com

Objects.equals(a,b)和a.equals(b)

Objects.equals(a,b)解析首先查上源码:public static boolen equals(Object a,Object b){ return(a==b)||(a!=null&&a.equals(b))可以看到源码种有一个判空,以防止null值作为参数时报空指针异常。a.equals(b)解析a.equals(b)方法的源码:public static boolen equals(Object obj){ return(this==obj) }其并没有判空操作,当null值调用这个方法就会报空指针异常。因此才建议使用equals时常量放在前面调用,括号里写变量,或者使用Objects.equals方法

Java学习+面试指南JavaGuide

来自GitHub:https://github.com/Snailclimb/JavaGuide

JS获取当前地址网址参数

1,获取当前窗口的url; 结果:http://localhost:61768/Home/Index?id=2&age=18 var` `url = window.location.href;2,获取当前窗口的主机名; 结果:localhost:61768 var host = window.location.host;3,获取当前窗口的端口; 结果:61768 var port = window.location.port;4,获取当前窗口的路径 ; 结果:/Home/Index  var pathname = window.location.pathname;5,获取当前文档的Url;结果:http://localhost:61768/Home/Index?id=2&age=18  var URL = document.URL;6,获取参数;结果:?id=2&age=18  var search = window.location.search;7,设置或获取 URL 的协议部分;结果:http  var protocol = window.location.protocol8,设置或获取 href 属性中在井号“#”后面的分段  var hash = window.location.hash分割url提取参数var search = window.location.search;var age = getSearchString('age', search); //结果:18var id = getSearchString('id', search); //结果:2//key(需要检索的键) url(传入的需要分割的url地址,例:?id=2&age=18)function getSearchString(key, Url) { var str = Url; str = str.substring(1, str.length); // 获取URL中?之后的字符(去掉第一位的问号) // 以&分隔字符串,获得类似name=xiaoli这样的元素数组 var arr = str.split("&"); var obj = new Object(); // 将每一个数组元素以=分隔并赋给obj对象 for (var i = 0; i < arr.length; i++) { var tmp_arr = arr[i].split("="); obj[decodeURIComponent(tmp_arr[0])] = decodeURIComponent(tmp_arr[1]); } return obj[key];}原文链接:https://www.cnblogs.com/qianxundaozhu/p/11584900.html

几种CI持续集成工具简介

Travis CI首先要介绍的Travis CI是一个广泛使用的CI工具,因为它简直是Github爱好者的福音,而且用户份额很大。其支持绝大部分主流编程语言,包括但不限于:C、Java、Python、PHP等等。目前有超过90万的开源项目、60万的用户在使用Travis CI来作为他们的持续集成工具。Travis CI最大的特色和便利店是其与开源社区Github兼容得非常好,它可以极其方便地帮你为Github上的开源项目仓库快速地拉起一个持续集成防护网,而且对于开源项目完全免费,不花一分钱,这对学习者非常友好。而且Travis CI的用法也不复杂,也不需要你写什么复杂代码,它是用过 yml配置文件的形式来指定Travis CI要做的事情,来满足你的流程规划,先做什么,再做什么,最后做什么,挺方便。Jenkins大名鼎鼎的Jenkins简直如雷贯耳,国内很多的通信大厂、互联网大厂都正在使用中!Jenkins是一款开源的 CI&CD 工具,工具本身是Java写的,然而却支持各种编程语言项目的自动化任务,包括构建、测试、部署等。Jenkins一直是开源CI&CD软件领导者, 安装简易、配置简单、提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。Jenkins 支持各种运行方式,可通过系统包安装、也可以作为Java程序安装,甚至可以通过Docker来安装。而且Jenkins在企业级开发中可以非常便捷地与SVN、Git等代码管理工具无缝对接!如今已经步入2.0时代的Jenkins系统,其最大的特色便是加入了Pipeline流水线功能,Pipeline的加持,让Jenkins系统对项目做持续集成时变得更加灵活和强大。必须要说的是,Jenkins系统现在确实越来越庞大,越来越“重”了,如果真是个小项目那它来做持续集成有点浪费了。Circle CICircleCI 功能上和上面介绍的两个工具其实也差不多,但是使用起来可能更加“轻量”一些,这对学习者来说还是非常友好的!Circle CI也支持GitHub、Bitbucket等平台上的项目,只要你项目的代码有变更,就会自动抓取,根据你的配置,提供运行环境,执行测试、构建和部署等一系列自动化操作。Drone CIDrone CI与上面提到的诸如Jenkins等系统相比, 它也算是一个更加轻量级的CI工具,无论是工具本身的安装、部署,还是利用它做一些自动化工作流程的构建,都会简洁一些,更加好上手一些。Drone CI工具的使用,基本上也就是几行配置文件的事情,就像下面这样,不烦心其他工具除了前文提到的这四个主流工具,其他还有诸如像:flow.ciCodeShipSemaphore CI等等工具和网站,思想都差不多,都可以帮我们完成持续集成的目标!作者:CodeSheephttps://www.bilibili.com/read/cv4147684出处: bilibili

适合Java初学者的Spring Boot实战文章合集Spring-Boot-In-Action

来自b站大佬codesheep的文章合集仓库:https://github.com/hansonwang99/Spring-Boot-In-Action

利用阿里Teambition搭建个人网盘 TeambitionShare网盘直链解析

简述下流程:首先你要有Teambition账号,登录后创建项目,在网址栏复制project/后的一串字符(下文称为项目ID),安装以下开源项目到你的虚拟主机或Windows电脑,访问后设置项目id、Teambition的cookie等信息即可。源码PHP的,所以只需要PHP虚拟主机即可。TeambitionShare开源地址:https://github.com/FlxSNX/TeambitionShareGitee上的Fork地址:https://gitee.com/cwayteam/TeambitionShare.git当然windows电脑亦可直接运行node.js版本:https://hik.lanzous.com/iz4skkictqf解压后直接运行即可。

安卓安装xapk等多应用包教程

SAI一款可以安装非. apk格式的小工具,非典型 apk文件的相关介绍可参考少数派文章:https://sspai.com/post/60228 Google play SAI:https://474b.com/file/19167328-443529268酷安下载:https://www.coolapk.com/apk/com.aefyr.sai背景支持「多 APK」特性的应用越来越多,一些与之对应的第三方分发方式也逐渐成型。以 Netflix 的安装包为例:我们在 APKMirror 能够下载到一个后缀名为 .apkm 格式的安装包,在 ApkPure、Aptoide 这类网站上则能够下载到一个后缀名为 .xapk 格式的安装包。因此这款app可以完成你对这些格式软件的安装

几个常用正则

匹配非特殊字符串:([\\u2E80-\\u9FFF]|\\w|[,,\\.。()])*匹配手机号:1[34578][0-9]{8,10}匹配任意字符:[\s\S]+?匹配汉字:[\u4e00-\u9fa5]{0,}匹配邮箱:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*匹配网址:[a-zA-z]+://[^\s]*

一个讲解开源项目系列文章库

无意中看到的,存个书签吧:https://github.com/HelloGitHub-Team/Article