java中的default关键字详解
1 简介default关键字和Java中的public、private等关键字一样,都属于修饰符关键字,可以用来修饰属性、方法以及类,但是default一般用来修饰接口中的方法。
2 原因出现该关键字的原因是,由于接口在Java中定义之初,有一个缺点,那就是,如果定义了一个接口,接口中又定义了N个方法,那么某个具体的类在实现该接口时,需要实现接口中的所有方法,不管是否需要用到接口中的方法。如果接口中的某个方法被default关键字修饰了,那么具体的实现类中可以不用实现方法。
3 举例说明12345interface Person { default void show() { System.out.println("this is show"); }}
Student类可以不用实现Person接口中的show()方法。
123class Student implements Person { //可以不用实现show()方法}
3.1 解决冲突如果实现类实现了个多个接口, ...
git回滚到指定commit
某个分支如果想回到之前的某次提交(commit),可以使用下面的操作:
12$ git reset --hard <commit_id> //回滚到指commit$ git push -f origin <branch_name> //强制推送到远程分支
写在最后欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
Windows Docker Desktop 无法启动报错 Docker Desktop is shutting down 的可能解决办法
之前docker都可以正常启动的,后来就无法启动了,且一直报错 Docker Desktop is shutting down。
网上查了一下,发现一个可能的解决办法,删除 AppData\Roaming\Docker\settings.json,然后就能正常启动。不过我看了一下 docker 的启动日志,发现有个叫 locked-directories 的文件好像有点问题,所以我索性直接把整个 AppData\Roaming\Docker 目录删了,然后立刻就好了……
这里还有一些其他的解决方案,也供参考:https://forums.docker.com/t/solved-docker-failed-to-start-docker-desktop-for-windows/106976/5————————————————版权声明:本文为CSDN博主「元无心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/HermitSun/article/details/123523768
写在最后欢迎大家关注鄙 ...
a java bug about long type
代码:
123456789101112131415161718192021222324public class Per { Long target; public Long getTarget() { return target; } @Override public String toString() { return "Per{" + "target=" + target + '}'; } public void setTarget(Long target) { this.target = target; } public static void main(String[] args) throws InterruptedException { Per p ...
Git 修改已提交 commit 的信息
1 使用背景在使用git的时候,经常会用到一个命令,那就是git commit -m 'msg',但是这个msg还是有要求的,那就是在push代码的时候,msg不能少于5个字符(中英文都算一个字符),但是在执行git commit的时候,这个msg是可以写任意个字符的,也就是说当你commit的时候,没有写够5个字符,那么在push的时候,就会提示不能push,所以就需要用到修改已提交 commit 的信息。
2 方法2.1 修改最后一次提交 commit 的信息12345678# 修改最近提交的 commit 信息$ git commit --amend --message="modify message by daodaotest" --author="jiangliheng <jiang_liheng@163.com>"# 仅修改 message 信息$ git commit --amend --message="modify message by daodaotest"# 仅修改 autho ...
php上传文件
在PHP中,只需要通过几行代码,就能完成上传单个和多个文件的处理。
PHP文件上传功能允许上传二进制和文本文件。 此外,您可以通过PHP身份验证和文件操作功能完全控制要上传的文件。
1 PHP $_FILESPHP全局$_FILES包含文件的所有信息。 在$_FILES全局变量的帮助下,我们可以得到文件名,文件类型,文件大小,临时文件名和与文件相关的错误。
这里,我们假设文件名是filename。请参考下表 -
变量名称
描述
$_FILES['filename']['name']
返回文件名称
$_FILES['filename']['type']
返回文件的MIME类型
$_FILES['filename']['size']
返回文件的大小(以字节为单位)
$_FILES['filename']['tmp_name']
返回存储在服务器上的文件的临时文件名。
$_FILES['filename']['er ...
phh中的$和$$的区别,以及引用&的用法?
1 $和$$定义$var(一个美元)是一个正常变量,名称为:var,存储任何值,如:string,integer,float等。$$var(两个美元)是一个引用变量,用于存储$var的值。为了更好地理解$和$$之间的区别,下面来看看一些例子。
2 示例2.1 示例11234567<?php $x = "abc"; $$x = 200; echo $x."<br/>"; echo $$x."<br/>"; echo $abc;
运行结果:abc200200
在上面的例子中,我们为变量x赋值为:abc。引用变量$$x的值分配为200。现在我们打印出变量:$x,$$x和$abc。由此可以看出:$$x和$abc的值是相同的,即:因为 $x的值为abc,所以 $$x(${$x})计算后为$abc。
2.2 示例212345678910<?php$name = "Cat";${$name} = "Dog"; ...
IDEA 中 project窗口,不显示项目工程目录,解决方法
问题在IDEA编辑器中,有时会出现项目工程目录不显示的情况,如下图:
产生原因一般为配置文件*.iml出错了。
解决途径方法1:若知道出错的具体位置与原因,用文本编辑器打开*.iml文件,找到出错位置,修复。方法2:清除配置,重新生成配置。
关闭IDEA,
删除项目文件夹下的.idea文件夹和*.iml文件
重新用IDEA工具打开项目
Reference
https://www.jianshu.com/p/1cdda8632b76
写在最后欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
nginx配置以及rewrite规则
1 location正则写法语法规则: location [=||*|^~] /uri/ { … }
= 开头表示精确匹配
^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
~ 开头表示区分大小写的正则匹配
~* 开头表示不区分大小写的正则匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
/ 通用匹配,任何请求都会匹配到。多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考):首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
例子,有如下匹配规则:
123456789101112131415161718192021222324location = / { #规则A } location = /login ...
Linux系统源码安装PHP以及相关问题总结
1 安装依赖12345# 添加epelyum install epel-releaseyum update# 添加依赖包yum -y install systemtap-sdt-devel libxml2 libxml2-devel openssl-devel libcurl-devel enchant-devel libpng-devel libicu-devel libmcrypt-devel recode-devel net-snmp-devel libtidy-devel autoconf readline-devel libtidy-devel aspell-devel unixODBC-devel libicu-devel libc-client-devel freetype-devel libXpm-devel libpng-devel install libvpx-devel enchant-devel libcurl-devel libc-client-devel openldap-devel openldap postgresql-devel curl-devel ...