![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
江湖人称黑哥
这个作者很懒,什么都没留下…
展开
-
异或的一点应用
异或的介绍:异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。用前四个字节保存现在的状态,记作 new用后四个字节保存之前的状态,记作 old(四个字节可以保存32个状态,1代表开启,0代表关闭)把new和old进行异或,得到的结果记作 change,位数为1的位代表 状态改变的位只读change 状态为1 的位对应的 new 的位,就是改变的状态应用:保存机器状态...原创 2020-12-31 14:42:22 · 122 阅读 · 1 评论 -
github:寻找相关项目小技巧
查找guihub开源项目:in:name spring boot 快速查找有关spring boot名字的项目stars:>1000 项目星星大于1000的项目pushed:>2020-09-20 查找在那个日期之后更新的项目forks:>2000 fork次数大于2000language:java 语言是java...原创 2020-11-04 15:43:54 · 125 阅读 · 0 评论 -
开源软件的各大开源协议
原创 2020-10-22 13:50:05 · 642 阅读 · 0 评论 -
jsonString转实体类
JSONObject jsonObject = JSONObject.parseObject(body); JSONArray jsonArray = new JSONArray(); Object object = jsonObject.get("msg"); if(object instanceof JSONObject) { jsonArray.add(object); } else if(object instanceof JSONArray) { jsonArray =原创 2020-09-03 11:23:24 · 739 阅读 · 0 评论 -
java 各种遍历方式对比与总结
java 各种遍历方式对比与总结本人不才,最近优化项目代码,涉及到这一块,特发文章,仅作记录一、ArrayArray(数组)是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。Array获取数据的时间复杂度是O(1),但是要删除数据却是开销很大,因为这需要重排数组中的所有数据, (因为删除数据以后, 需要把后面所有的数据前移)缺点: 数组初始化必须指定初始化的长度, 否则报错二、list:List—是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式,它继承C原创 2020-08-28 18:01:40 · 558 阅读 · 1 评论 -
JAVA CAS原理深度分析
看了一堆文章,终于把JAVA CAS的原理深入分析清楚了。感谢GOOGLE强大的搜索,借此挖苦下百度,依靠百度什么都学习不到!参考文档:http://www.blogjava.net/xylz/archive/2010/07/04/325206.htmlhttp://blog.hesey.net/2011/09/resolve-aba-by-atomicstampedreference.htmlhttp://www.searchsoa.com.cn/showcontent_69238.htmht转载 2020-08-05 10:32:16 · 153 阅读 · 0 评论 -
使用反射获取枚举实例
@Getterpublic enum DeviceStatus { NORMAL(0,"正常"), ERROR(1,"错误") ; private final Integer code; private final String name; DeviceStatus(Integer code, String name) { this.code = code; this.name = name; }原创 2020-08-03 17:58:33 · 694 阅读 · 0 评论 -
vim界面被锁住
场景:使用vim的时候,偶尔会碰到vim莫名其妙的僵在那里好像卡住了。在界面上输入什么都没有反应。甚至Ctrl+insert、Shift+insert也没有反应。解决方法:其实我们是习惯性跟window界面一样使用Ctrl+S来保存文件,而在vim下面,Ctrl+S是用来说住窗口的,这时候只需要Ctrl+Q(quit)来解锁就好了...原创 2020-04-24 17:31:12 · 2094 阅读 · 0 评论 -
这可能是目前最好用的p2p外网访问内网软件(免费内网穿透)
内网穿透在实际生活中,我们经常会在内网里部署服务让外网访问内网应用,比如Apache,Tomcat,数据库,微信小程序的开发以及企业的一些管理软件(OA、CRM、ERP),还有远程桌面等等的外网都是无法直接访问内网的。有些方式可以通过设置路由器虚拟服务器开放一些端口供外网访问,但由于运营商的原因,这些IP有时候并不是直接的IP,更多的时候这些IP都是动态的,简单说就是今天给你的IP是15.63...转载 2020-04-09 14:13:11 · 4609 阅读 · 1 评论 -
termux一些基础配置(记录)
第一步,重新挂载,使得有读写/system目录的权限(在root权限下)mount -o remount,rw /system有时候会失败,这时候可以用mount -o rw,remount /第二步,更换为清华源sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/...原创 2020-03-26 15:29:50 · 1602 阅读 · 0 评论 -
termux编译go程序
安装go环境apt install golang配置go mod 代理export GOPROXY="https://goproxy.io"检查设置有没有生效go env原创 2020-03-26 15:17:20 · 2089 阅读 · 0 评论 -
Ubuntu19.10 mysql8.0设置root密码和远程连接
第一步,下载mysqlapt-get install mysql-server第二步,输入mysql进入服务mysqlmysql第三步,如果进入不了,可能是mysql服务没有开,开启mysqlservice mysql start第四步...原创 2020-03-18 18:42:56 · 2588 阅读 · 1 评论 -
go的交差编译
gox 是一个交叉编译的辅助工具,项目地址在 https://github.com/mitchellh/gox使用 go get github.com/mitchellh/gox 进行安装后会在 $GOPATH/bin 目录下生成 gox.exe,为了方便以后使用,最好拷到 c:\go\bin 目录下。然后进入到项目目录,执行 gox 即可一次性完成所有平台的编译。$ goxNumber...原创 2020-03-14 18:06:26 · 189 阅读 · 0 评论 -
termux开启ssh服务与连接(用户密码登录)
结果:termux开启ssh这个问题也是耗费了我不少时间,结果最后发现是最低级的错误,用xshell连接的时候,输入的端口是22,后面才知道termux的默认端口是8022,但还是用xshell的命令行输入端口为8022去连接,我还以为是8022去连接但显示的是20端口,然后浪费了很多时间,都开始砸键盘了。千万不要相信网上千篇一律的termux不能用密码登录!!!第一步,安装openssh并打...原创 2020-03-14 17:48:28 · 13353 阅读 · 0 评论 -
深入理解Java-GC机制
Hello,大家好,我是Steafan,在经历了惊心动魄的阿里电面之后,我又回来了。今天我们来谈谈Java主流虚拟机-HotSpot的GC实现机制,本篇文章默认使用HotSpot虚拟机进行介绍,如果没有特殊说明,其都为HotSpot虚拟机中的特性。Java与C++之间有一堵由内存动态分配和垃圾收集技术所围城的“高墙”,墙外面的人想进去,墙里面的人却想出来。说起垃圾收集,大部分人都把这项技术当...转载 2020-03-14 16:43:54 · 147 阅读 · 0 评论 -
Ubuntu 19.10 开启ssh服务(详细过程)
Ubuntu开启个ssh竟然花了我一个多小时,主要是一开始看的教程步骤不详细,然后我开启的是一个一万多的主机,开关机都挺慢的,在这里记录下详细步骤,方便自己以后查看第一步,查看ssh是否已经开启sudo ps -e | grep ssh如果最后返回是sshd,证明ssh已经开启,跳到第四步第二步,如果没有显示,试着开启ssh服务sudo /etc/init.d/ssh start...原创 2020-03-14 14:52:49 · 4853 阅读 · 1 评论 -
linux常用命令(备忘录)
ls 只能看到文件列表,看不到以 "."开头的隐藏文件,需要命令:ls -a原创 2020-03-11 17:46:48 · 171 阅读 · 0 评论 -
Ubuntu 19.10 系统设置开机自启动脚本(frpc内网穿透服务)
这个问题我搞了一天多(加上写shell脚本一些错误和运行权限的问题)总结经验:查找问题的时候注意解决方法的时间!!!我近乎把网上能找到的方法都试了一遍,就登录自启动那个方法依然是有效的,到了最后,突然灵机一动发现是版本的问题,才找到了方法。原因:ubuntu 16.10 开始不再使用 initd 管理系统,改用 systemd …所以在 Ubuntu 19 系统不能像其它 Ubuntu 16...原创 2020-03-14 11:37:07 · 2392 阅读 · 0 评论 -
面试题: Tomcat是什么??
Tomcat是Servlet的容器原创 2020-03-10 17:45:21 · 497 阅读 · 0 评论 -
gin统一返回 状态码
返回错误信息func generateErrors(err error, key string) map[string][]string { if err == nil { return nil } if key == "" { key = "system" } if vErr, ok := err.(service.ValidateErrors); ok { ret...原创 2020-03-05 10:45:39 · 2482 阅读 · 0 评论 -
gin结合go-redis根据ip完成访问频率限制
import ( "time" "github.com/go-redis/redis")// Limiter 定义属性type Limiter struct { // Redis client connection. rc *redis.Client}// 根据redisURL创建新的limiter并返回func NewLimiter(redisURL string) (...翻译 2020-02-29 11:52:51 · 2876 阅读 · 0 评论 -
观察者模式
要点:观察者模式定义了对象之间一对多的关系。 主题(也就是可观察者)用一个共同的接口来跟新观察者观察者和可观察者之间用松耦合方式结合(loosecoupling),可观察者不知道观察者的细节,只知道观察者实现了可观察者接口。使用此模式时,你可从被观察者出推(push)或拉(pull)数据(然而,推的方式被认为更“正确”。)有多个观察者时,不可以依赖特定的通知次序。 Java有多种观察...原创 2019-11-02 16:12:34 · 107 阅读 · 0 评论 -
设计模式
要点笔记:知道OO基础,并不足以让你设计出良好的OO系统。 良好的OO设计必须具备可复用、可扩充、可维护三个特性。 模式可以让我们建造出具有良好OO设计质量的系统。 模式被认为是历经验证的OO设计经验。 模式不是代码,而是针对设计问题的通用解决方案。可把它们应用到特定的应用中。 模式不是被发明,而是被发现。 大多数的模式和原则,都着眼于软件变化的主题。 大多数的模式都允许系统局部...原创 2019-10-21 11:20:12 · 81 阅读 · 0 评论 -
ECLIPSE常见的使用技巧
eclipse是比较智能化的IDE,提供很多快捷键帮助大家快速实现编码如果是刚开始使用eclipse,可以跳过这个阶段,因为需要有一些实践操作,才能更加明显的体会到这些快捷键的好处。大约使用eclipse开发了一周左右,就可以回头来看看这些快捷键的用法了,那个时候更能体会到这些快捷方式的好处,收获也更多。一、批量修改 Alt + Shift +R二、快速输入主方法...转载 2019-07-18 17:43:29 · 248 阅读 · 0 评论 -
学习笔记:JAVA元注解@interface(@Target,@Documented,@Retention,@Inherited)
学习笔记:JAVA元注解jdk1.5起开始提供了4个元注解,用来定义自定义注解的注解,它们分别是:@Target:指定注解使用的目标范围(类、方法、字段等),当注解类型声明中没有 @Target元注解,则默认为可适用所有的程序元素。如果存在指定的 @Target元注解,则编译器强制实施相应的使用限制。关于程序元素(ElementType)是枚举类型,共定义8种程序元素,如下:ElementT...原创 2019-06-21 10:49:39 · 464 阅读 · 1 评论 -
1086: 【基础】精挑细选的钢管
Description:小王是公司的仓库管理员,一天,他接到了这样一个任务:从仓库中找出一根钢管。这听起来不算什么,但是这根钢管的要求可真是让他犯难了,要求如下:1、 这根钢管一定要是仓库中最长的;2、 这根钢管一定要是最长的钢管中最细的;3、 这根钢管一定要是符合前两条的钢管中编码最大的(每根钢管都有一个互不相同的编码,越大表示生产日期越近)。今天刷算法题时,看到这道题,心血来潮想要创...原创 2018-10-15 21:34:59 · 2355 阅读 · 3 评论 -
读书笔记④:Java的异常处理
马士兵老师说,第三章面向对象是最艰难的,我看了将近两天终于把45个视频刷完,尤其到了后期的十几个视频,感觉难度有点上涨,在这里稍微整理一下: 1、java.lang包是提供利用 Java 编程语言进行程序设计的基础类。里面的类可以不加前缀直接引用,查看api的时候,只要是没有前缀直接引用的类都首先查找java.lang包,里面有比较重要的Object 2、Object类是所有jav...原创 2018-09-15 17:53:44 · 103 阅读 · 0 评论 -
笔记two:面向对象的思想(1)
今天跟着马士兵老师的视频学了一天的面向对象的思想,说实话,有点头昏脑涨哈哈。 马士兵老师重点讲了内存的占用和释放。 栈内存和堆内存: 栈内存会为形式参数、局部变量(成员变量)、临时变量分配存储空间,当方法结束的时候,栈内存会释放。 堆内存会为对象开辟存储空间,对象将被复制给引用变量,当堆上的对象没有被引用变量所引用的时候,将会被垃圾回收机制在某种时刻回收。 ...原创 2018-09-14 21:27:54 · 154 阅读 · 0 评论 -
lombok和JPA的死递归,造成StackOverflowError
问题原因:JPA是一个封装的很棒的框架,在需求需要很多复杂查询的时候,不适合用JPA。因为它的封装太棒了,以致于增强了表和实体类之间的耦合。不过在一些简单查询的部分,它真的太好用了。而关于这个Bug,就不单单是JPA自身的问题了,究其原因是我在实体类中,使用了lombok框架的@Data,这是一个使用注解,在编译时修改语法树并且自动生成Getter、Setter方法并且会实现toStrin...原创 2019-07-19 17:08:10 · 652 阅读 · 0 评论 -
推荐:一个不错的Java学习网站
链接:http://how2j.cn?p=98874我最近在学习的一个网站,里面从基础到框架全都有,知识点虽然感觉有些不够深入,但好在体系很完整,个人对这个网站很满意,我在里面还补了一些之前忽略的基础知识。...原创 2019-07-22 13:58:51 · 188 阅读 · 0 评论 -
深入分析 Java 中的中文编码问题(转载)
Java 中需要编码的场景前面描述了常见的几种编码格式,下面将介绍 Java 中如何处理对编码的支持,什么场合中需要编码。I/O 操作中存在的编码我们知道涉及到编码的地方一般都在字符到字节或者字节到字符的转换上,而需要这种转换的场景主要是在 I/O 的时候,这个 I/O 包括磁盘 I/O 和网络 I/O,关于网络 I/O 部分在后面将主要以 Web 应用为例介绍。下图是 Java 中处...转载 2019-09-23 10:28:54 · 88 阅读 · 0 评论 -
SpringBoot的启动原理解析之@SpringBootApplication分析
今天开始阅读springboot源码,查看了不少博客,小弟不才,稍微整理一下,若有写得不足之处,劳请各位大神指正。首先下面是一个简单的启动类@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(A...原创 2019-10-08 21:44:46 · 419 阅读 · 1 评论 -
Linux nano 命令大全
用法: nano [选项] [[+行,列] 文件名]... 选项 GNU 长选项 意义 -h, -? --help 显示此信息 +行,列 从所指列数与行数开始 -A --smarthome ...转载 2019-10-08 22:03:19 · 1488 阅读 · 0 评论 -
Spring Boot在开发时实现热部署(开发时修改文件保存后自动重启应用)(spring-boot-devtools)
热部署是什么大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的Class文件,这个文件里记录着和代码等对应的各种信息,然后Class文件将被虚拟机的ClassLoader加载。而热部署正是利用了这个特点,它监听到如果有Class文件改动了,就会创建一个新的ClaassLoader进行加载该文件,经过一系列的...转载 2019-10-09 14:30:12 · 2365 阅读 · 1 评论 -
面试题
1.自我介绍这个不用说了,自己介绍一下自己。2.数据库MySql和SQLServer以及Oracle的区别?----1.Oracle:最贵,功能最多,安装最不方便,Oracle环境里的其他相关组件最多,支持平台数量一般,使用中等方便,开发中等方便,运维中等方便,不开源,速度最慢,最安全。----2.Microsoft SQL Server 2014:中等贵,功能最少,安装中等方...原创 2019-10-09 14:37:51 · 94 阅读 · 0 评论 -
学习笔记one:Java基础语法与c语言的相同与差别
1、类与对象:Java的面向对象的思想与c的面向过程的思想差别无疑是最大的,而类可以当做是C中的结构体,对象可以看做是结构体的一个成员。 2、类是描述一类对象的模板,具有这类对象的属性(类变量和实例变量)和行为(方法)。 3、方法是C语言中的自定义函数,在类中定义一个方法去完成对象的一些抽象的行为。 4、类变量(静态变量)与实例变量的区别,静态变量除了被声明是常量外很少使用,在不生产对...原创 2018-09-13 20:53:34 · 1653 阅读 · 1 评论