![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
科普
文章平均质量分 54
分享
howeres
这个作者很懒,什么都没留下…
展开
-
Java 命令 jmap、jstack、jstat and JFR
jstat原创 2022-07-01 10:38:24 · 599 阅读 · 0 评论 -
idea 远程调试代码
idea 的远程调试功能, 非常适合测试环境下 (快速调试 + 减轻电脑压力 + 方便联调)原创 2022-06-09 22:04:50 · 942 阅读 · 0 评论 -
Gson、FastJson、Jackson 序列化区别
FastJson 和 Jackson 类似, 使用 getter 方法来序列化成 json串.而 Gson 是通过反射, 访问属性来序列化成 json串. 不需要 getter/setter三者的序列化都跟 setter 没有关系原创 2022-06-08 10:25:28 · 238 阅读 · 0 评论 -
匿名内部类与局部变量
这里所说的“匿名内部类”主要是指在其外部类的成员方法内定义,同时完成实例化的类,若其访问该成员方法中的局部变量,局部变量必须要被final修饰。原因是编译程序实现上的困难:内部类对象的生命周期会超过局部变量的生命周期。局部变量的生命周期:当该方法被调用时,该方法中的局部变量在栈中被创建,当方法调用结束时,退栈,这些局部变量全部死亡。而内部类对象生命周期与其它类一样:自创建一个匿名内部类对象,系统为该对象分配内存,直到没有引用变量指向分配给该对象的内存,它才会死亡(被JVM垃圾回收)。所以完全可能出现的一种原创 2022-06-08 09:08:21 · 773 阅读 · 0 评论 -
编写 Maven 插件,以及 Maven 插件默认绑定 phase 的原理
0. 前言因为之前好奇 maven 插件可以不设置绑定 phase 周期,执行时会自动绑定一个默认的 phase 周期。而这个周期具体是哪个 phase 只有去插件的官网上才能查到(文章末尾会讲在项目中查看默认绑定的方法)。所以我萌生出一个想法,自己写一个插件!1. 编写插件和正常编写一个maven项目类似。总共分两个关键步骤:打包方式设置为<packaging>maven-plugin</packaging>,加入两个插件所需依赖。 <groupId&原创 2022-03-05 03:08:39 · 1764 阅读 · 3 评论 -
sh -c 的原因
我们再不同的地方看到这个命令加在shell命令前,比如Dockerfile:FROM openjdk:12-alpineMAINTAINER icyfenixENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \ JAVA_OPTS="" \ PROFILES="default"ADD /target/*.jar /bookstore.jarENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /bookstor原创 2021-11-24 22:15:04 · 3854 阅读 · 0 评论 -
外键的优缺点
外键的优点:降低开发成本,借助数据库自身触发器来保持数据一致性并更新。将数据库设计人员和开发人员职责分离。外键的缺点:需要数据库软件内部维护。把事务交给DB来完成。增、删、更新都会进行 check 耗费资源。因为外键会请求关联表进行加锁,所以会导致死锁。...原创 2021-09-03 15:31:46 · 1380 阅读 · 0 评论 -
OKR 使用指南
OKR 全称 Objectives and Key Result.做为 KPI 的同类工具,与KPI不同点在于:KPI 是主管设定目标,然后需要去判断完成情况。这样做在有成熟经验的传统行业,按部就班的环境下有较高的管理效果。而 OKR 则是为了适应新兴行业,如互联网行业这类需求多变,考核目标时常变换时提出的考核方式。一句话形容 OKR 就是,有较强的自我管理能力。因为 OKR 的本质其实是自己既设定目标,又判断完成情况。(另一种形式的周报)步骤设置要完成的对象(TBD,to be done),在草原创 2021-09-03 15:26:08 · 216 阅读 · 0 评论 -
hexo 本地安装
npm install hexonpx hexo init ./site# npx: your-package will be automount)解释:npx命令是执行本地命令。npm install 不加-g 代表本地安装,本地安装的意思就是再当前目录(或指定目录)生成一个node_module里面包含了你要安装的组件以及组件的本地命令。(组件在package.json里面声明,package.json根据npm init生成)其中,npx hexo init命令类似于npm install原创 2021-09-03 14:47:07 · 84 阅读 · 0 评论 -
TTY和CLI
TTY = TeleTYpe, 又称Teletypewriter = Termianl = Virtual ConsoleCLI = Command-line InterfaceConsole = super terminal, admin, only oneShell = provide CLI or GUI, between Interface and Kernel原创 2021-09-03 14:33:58 · 87 阅读 · 0 评论 -
内部类与静态类(又名静态嵌套类、静态内部类)
只有内部类能声明为静态类。静态内部类的使用场景:(例如:Builder 模式)当外部类需要使用内部类。内部类无需外部类资源。内部类可以单独创建。初始化不同:// 静态内部类 (StaticNestedClass)Ant inner = new Insect.Ant();// 普通内部类1 (InnerClass)Insect outer = new Insect();Ant inner = outer.new Ant();// 普通内部类2 (InnerClass)Inse.原创 2021-08-25 19:17:58 · 346 阅读 · 0 评论 -
super关键字与this对象引用
子类调用super.getClass();和this.getClass();结果是一样的,都是子类对象。Object类的getClass()方法返回的是该对象的运行时类,一个对象的运行时类是该对象通过new创建时指定的类。super是访问父类成员的一个桥梁,不是对象的引用。而this表达的是当前类对象的引用,Object o = super;是错误的。super关键字子类覆盖了父类的某个成员变量,则用super来访问父类非private的成员变量和成员方法。(子类会继承父类的所有非private.原创 2021-08-24 18:44:16 · 167 阅读 · 0 评论 -
JavaSE 程序打包(jar包)
插件:apache-maven-shade 的打包;</plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.1</ve.原创 2021-08-23 01:25:53 · 531 阅读 · 0 评论 -
java什么时候用基本类型
无需通过new关键字来创建。(封装类型需new关键字)需要高效的存取的字段。存储方式及位置不同,基本类型是直接存储变量的值保存在堆栈中能高效的存取,封装类型需要通过引用指向实例,具体的实例保存在堆中。默认有初始值,基本类型的的初始值视具体的类型而定,比如int类型的初始值为0,boolean类型为false(除了char,其余类型基本为0或者 0.0)(注意是指基本类型在实体类里面的时候)用到比如泛型和反射调用函数.,就需要用包装类了集合类组合使用时只能使用包装类型如果允许null值,则必然要用.原创 2021-08-22 19:23:43 · 256 阅读 · 0 评论 -
@RequestParams装载等
@RequestParams 可以不写, 基本类型不赋值会报500错误, 可以写成包装类型, 或者改用Bean传值. (Bean的int类型会给默认值0)@RequestBody 这个通常是专门为了application/json和application/xml等设置的, 后面可以直接写bean(@RequestParam(value="myParam") List<String> myParams)实际上是:myparam=myValue1&myparam=myValue2原创 2021-08-22 17:19:03 · 231 阅读 · 0 评论 -
哈希值与哈希碰撞
哈希碰撞一、什么是哈希?哈希(hash)就是讲不同的输入,映射成独一无二、固定长度的值,既哈希值。我们可以理解为商品的条形码。任何商品都会有一个固定长度而又固定的条码。它的作用就类似于哈希。哈希值长度可自己设定,哈希值一般比较长,并且由数字加字母组成,有n(26+10)种组合,可以有比较大的冗余。但毕竟哈希是通过算法算出来的。如果哈希值长度和数据总量不匹配。两个不同的输入,得到了同样的哈希值,那就发生了哈希碰撞。二、如何防止哈希碰撞?防止哈希碰撞最有效的方法,就是扩大哈希值的取值空间。16个转载 2021-08-22 17:05:14 · 1786 阅读 · 0 评论 -
Java的布尔型并不一定占4位
作为基础类型,boolean与Java 虚拟机有关。在oracle的jvm中(HotSpot 1.8),根据编译后的 class 字节码,boolean变量的长度为4 Byte。boolean数组中每个boolean长度为1 Byte。不同jvm的实现实际上会有不同,以上结论仅限于hotSpot 版本在定义变量 boolean a = false的时候: 0: iconst_0 1: istore_1是将int类型的0压入栈顶。之后将int类型的值,存入第一个int类型的转载 2021-08-22 17:01:20 · 307 阅读 · 0 评论 -
Java 浮点数存储标准 IEEE754
Double b1 = 0.3;Float b2 = 0.3f;Integer.toBinaryString(Float.floatToRawIntBits(b2));Long.toBinaryString(Double.doubleToRawLongBits(b1));上面是java的获取IEEE 754的 2进制代码;指数部分全0和全1,是专门提出来,全0拿来存x -> 0的正数或者负数,或者0,全1拿来存正或者负无穷大...原创 2021-08-22 16:29:58 · 1143 阅读 · 1 评论 -
跨域与同源策略
Same-origin policy也就是同源策略;是为了防止假冒网站冒充源网站,对网站进行了一些限制,主要有Cookie、LocalStorage 和 IndexDB 无法读取、DOM 无法获得、AJAX 请求不能发送,同时还规定,提交表单不受同源政策的限制。最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源"。所谓"同源"指的是"三个相同"。协议相同(http)、域名相同(www.amazon.com)、端口相同(80);但有时,我们就需要去跨网站请求,这就需要用.原创 2021-04-03 02:04:41 · 818 阅读 · 0 评论 -
Maven 的 Scope 范围与 DependencyManagement
compile (v. 编译): 全流程都在;test: junit, 只出现在测试中;provided: servlet_api, 出现在编译时需要, 运行时用别人的 (容器已经有了), 不打进 war 包, 最终都有包用;runtime: jdbc, devtools, 会打进 war 包, 与compile类似, 与 provide 区别主要如下:能否 import出现在 war 包中compile11runtime1provid..原创 2021-03-18 17:11:46 · 2133 阅读 · 1 评论 -
WSL2 安装
一、控制中心 - 程序 - 启用于关闭 Windows 功能虚拟机平台 开启基于 Linux 系统的子系统 开启二、微软应用商店中搜索 Ubuntu三、去官网下载内核安装四、启用 WSL 2$ wsl -l #查看已安装Linux版本$ wsl --set-version Ubuntu18.04 2 #Ubuntu18.04为我的Linux版本。$ wsl --set-default-version 2 #该命令命令可以在以后安装 Linux 的时候默认启用 WSL2。五、换源更新原创 2021-03-10 15:20:21 · 4321 阅读 · 0 评论 -
docker-compose 的入门使用
安装:https://docs.docker.com/compose/install/#install-composesudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composesudo l原创 2020-12-07 16:21:28 · 450 阅读 · 0 评论 -
通过git的方式使用SVN(附原SVN命令)
安装:sudo apt install git-svn (windows不用下载,自带)使用:git svn clone svn://323.2322.23 # 克隆代码git svn rebase # 拉取代码git svn log [-v] # 日志 [详情]git add/commit # 提交git svn dcommit [-n] # push [检查]...............原创 2021-03-03 11:20:14 · 3167 阅读 · 0 评论 -
Spring版本号缩写 SR RC GA 代表的意思
版本号代表的意思:(SR1,SR2)>(RC1,RC2)>PRE(M1,M2)>GA>SNAPSHOT修正版 candidates milestone Generally Availability SNAPSHOT原创 2020-09-17 16:37:30 · 965 阅读 · 0 评论 -
查看系统内核版本
三种通用方式:#1$ uname -a#2$ hostnamectl 或者 $ hostnamectl |grep -i kernel#3$ cat /proc/version原创 2020-09-10 10:31:42 · 494 阅读 · 0 评论 -
[反射] 获取JavaBean实体类的读写 getter / setter 方法
public DriverInfoPO convertPOToVO(DriverInfoVO vo) { Field[] declaredFields = vo.getClass().getDeclaredFields(); for (Field field:declaredFields){ PropertyDescriptor propertyDescriptor = new PropertyDescriptor(field.getName(), vo.getClas原创 2020-09-01 09:17:51 · 1479 阅读 · 1 评论 -
用 Dockerfile 构建、发布
导出命令:docker save -o calico_cni.tar.gz calico/cni-o:指定保存的镜像的名字;calico_cni.tar.gz:保存到本地的镜像名称;calico/cni:镜像名字,通过"docker images"查看[root@rocketmq-nameserver4 dev]# ll导入命令:docker load -i calico_cni.tar.gzdocker load --input rocketmq.tar或 docker load <原创 2020-08-19 20:50:43 · 338 阅读 · 0 评论 -
Emmet 速写 HTML 标签和 CSS 选择器 (速查链接)
Emmet官网提供的速查表: https://docs.emmet.io/cheat-sheet/推荐vscode安装:Mithril Emmet插件(有演示)看完官网, 再敲一遍, 写html再也不单调了!Y_Cheng写的博客讲的很清楚, 可以对比着看: https://blog.csdn.net/qq_33744228/article/details/80910377...原创 2020-08-18 18:06:23 · 180 阅读 · 0 评论 -
Mysql 的空间几何对象数据
存放:st_geomfromtext(‘POINT(longitude latitude)’),大小写均可。INSERT INTO gxdc_company_park (location) VALUES(ST_GeomFromText(#{location,jdbcType=VARCHAR}));获取:st_astext(column_name)数据类型有:Geometry, Point, Multipoint, LineString, MultiLineString, Polygon, Mu.转载 2020-11-02 15:30:45 · 503 阅读 · 0 评论 -
Lambda 表达式之从 foreach(out::println) 到自定义输出
List<String> str1 = new ArrayList<>();str1.add("hello");str1.add("world");//下面就是lambda表达式之“::”的应用了str1.forEach(System.out::println);//两种方式等效str1.forEach((item)->{ System.out.println(item);});这个双冒号的原理就是将左边的System.out类联合forEach的参数传入,原创 2020-08-16 19:37:43 · 1866 阅读 · 0 评论 -
非对称加密RSA算法
加密技术一般分为对称加密和非对称加密两种RSA算法为非对称加密,采用的是模运算(modular arithmetic)原理,本质类似于求余运算 (对于负数有些许不同)。过程分析字母含义:encrypt加密 decrypt解密 cipher密文 m原文 c密文加密过程:memodN≡c 其中(e,N)为公钥;解密过程:cdmodN≡m 其中(d,N)为私钥;化简为:medmodN=m => mkΦ(N)+1modN=m => d=(kΦ(N)+1)/eΦ(N)为欧拉函数,原创 2021-01-09 07:45:04 · 618 阅读 · 1 评论 -
不同 Linux 发行版差异
RedHat系列(~/centos/fedora)Debian系列(~/Ubuntu)安装包格式rpm -参数dpkg -参数包管理工具yum install/remove/updateapt-get install/remove/updatewget下载工具wget --versionwget --version原创 2020-07-14 16:37:58 · 255 阅读 · 0 评论 -
Docker操作
Docker迁移GitLab仓库GitLab操作创建备份恢复备份Docker操作GitLab操作本节参考 huarda的简书。操作前, 请务必保持两个仓库版本一致。创建备份gitlab-rake gitlab:backup:create使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1393513186_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1393513186是备份创建的日期.恢复备份停止原创 2020-07-14 15:32:21 · 259 阅读 · 1 评论 -
初学Vue, 关于data内的数据not defined的问题
初学Vue, 关于data内的数据not defined的问题代码如下:<!--view层 模板--><div id="app" v-cloak> <p>{{msg}}</p> <div>{{info.name}}</div> <div>{{info.grade.level}}</div> <a :href="info.url">click me!</a&原创 2020-07-04 12:47:39 · 7737 阅读 · 0 评论