classloader(1)
java 中的ClassLoader 用于动态加载java程序运行时所需要的资源:包括要装配进jvm的class字节码文件以及一些其他资源文件。
Java中的几种ClassLoader
BootStrapClassLoader
关于BootStrapClassLoader的作用
java里class是被java.lang.ClassLoader加载的,那么,问题是,谁来加载ClassLoader呢?
–>>There is where the bootstrap or primordial class loader comes into play.
BootStrapClassLoader 是其他CLassLoder的顶级parent,其实现是jvm的一部分,被编写在jvm本地代码中,并不以class的形式存在java里,因此它也会随着jvm的不同而不同。并且在java里面被代表为null。
BootstrapCLassLoader负责加载:
java8以及之前:
jdk的核心类,比如 %JAVA_HOME%/jre/lib下的 rt.jar和其中的其他核心 ...
java-modularity
CONCEPT
在java9,java引入了一种不同于,或者可以说是在 package 之上的一个新的抽象层–> JPMS。
什么是module。 module是一系列相关的package与resource的集合
module的两种表现形式: jar与已编译项目
Module-Properties
name : Module的name命名方式与package相同,goupId反写。
requires | uses Module所依赖的其他模块 | 服务。所有模块都直接或者间接依赖java.base。
exportsModule公开的可以被其他模块依赖的 package
provides Module 提供的服务
open<module level> | opens<package level> 其他module对私有包的反射权限
Module-Type
系统Module: 包括根据javaSE标准实现的java开头的module和 jdk内部使用的module
应用级别Module: 具有module-info.java描述文件的我们自定义 ...
nginx
安装
手动编译
下载源码 源码
编译安装 make && install
yun + rpm包
查看 linux 发行版本
1234567[]$ lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarchDistributor ID: CentOSDescription: CentOS Linux release 7.9.2009 (Core)Release: 7.9.2009Codename: Core
对应rpm包下载地址 nginx rpm 包
三种安装方式
线上下载 rpm 包 然后安装 (要自己解决依赖问题)
1sudo rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.2-1.el7.ngx.x86_64.rpm
离线 通过下载好的 rpm文件 使用 yum 安装 (无须手动解决依赖问题)
1yum install nginx-1.22.0-1.el7.ngx.x86_ ...
ssh
ssh 公钥认证登录 public key authentication
what and why
比简单的用户名-口令登录要安全,他提供极长密码无法提供的密码强度
由一对 公钥(public key) 私钥(private key) 组成
使用非对称加密算法, rsa dsa ed25519
公钥(public key)
公钥用于被拷贝到目标服务器上,任何拥有其他者公钥的服务器都可以加密数据,但只有持有相应私钥的人才能正确解密数据。一旦服务器收到用户发送的公钥并且认为该公钥可信,服务器就会在 authorized_keys 文件中标记该公钥可信,此类密钥(authorized 中的公钥们 )称为 授权密钥。
私钥(private key)
私钥应仅被用户自己保留,只有持有与目标服务器上公钥对应的私钥才能通过身份认证,被称为 身份密钥。
用ssh来进行 公钥认证登录
用户在本地创建密钥对,使用 ssh-keygen ssh-keygen -t <encrypt algorithm> -f <fileName> -b <keySi ...
wiki_note
0、Git 使用中的"坑点"
0.0第一次推送报错
在gitee创建远程仓库后,并且自动创建了README.md文件后,在本地提交文件时,会报如下错误
1error: failed to push some refs to ‘https://gitee.com/
原因:本地文件目录中没有远程仓库初始化时的README.md文件,导致推送出错
解决办法:将README.md文件拉取到本地
:git pull --rebase origin master
1、一些文件配置
1.0
返回类
** Code.java **
Result.java
1.1 loback-spring.xml 文件配置
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455<?xml version="1.0" encoding="UTF-8"?><configuration> ...
正则表达式_语法学习_10_(嵌入条件)
一、回溯引用判断
到目前为止
123"?(匹配前一个字符,或者表达式,如果存在的话)""?=(向前匹配,如果存在的话)""?<=(向后匹配,如果存在的话)"
条件语句:
1(?(backreference)true-reges)
例一
目的:
123"需要把一段文本里的<IMG>标签全都找出来;不仅如此,如果某个<IMG>""标签是一个链接(被括在<A>和</A>标签之间)的话,你还要把整个链""接标签匹配出来。"
分析:
123451,所要匹配的文本中,<img></img>标签是无论如何都要求被匹配出的内容2,<A></A>标签则成对出现,当且仅当有前者的时候,后者才可出现3,因此条件语句的"backreferencr"为"(<[Aa]\s+[^>]+\s*)>",此"backreferen ...
正则表达式_语法学习_9(前后查找)
一、向前查找
概述:向前查找就是指定了一个必须匹配但不在结果中返回的模式
语法形式:其实就是一个以?= 开头的子表达式,需要被匹配的文本跟在"?"之后
提示:
123提示 有些正则表达式文档使用术语“消费”(consume)来表述“匹配和返回文本”的含义。在向前查找里,被匹配的文本不包含在最终返回的匹配结果里,这被称为“不消费”。
例子:
分析:
1234".+"匹配至少一个字符,这对应着URL的协议名,显然我们也只需要协议名,并不需要再往后的内容,也是说说我们只要消费协议名,因此我们就可以使用向前查找,"?=:"匹配到":",但是并不消费":",也就是不会返回匹配到的结果,
注意:
12345向前查找(和先后查找)匹配其实本身是有返回结果的,只不过,这个结果的返回长度永远是0而已,因此,前后查找模式有时也被叫做,零宽度(zero-width)匹配操作
二、向后查找
语法: (?<=)
例子
向前查找和向后查找的结合
直接上例子
12345问题解决了。(?<=<[ ...
正则表达式_语法学习_7(使用子表达式-回溯引用)
一、 回溯引用匹配
功能:\n 即代表着第n个子表达式所匹配的内容
例一:
目的:**匹配出HTML中成对出现的标题标签(到,以及配对的 如下图
分析
12345第一个字句:"([1-9])"匹配的是这一组标题标签的数字部分,而最后的"\1"正代表着相同的数字内容,所以只有第一个(即第二行被成功匹配)其余两对标签则因为开始和结束标签中的数字不相等而不被匹配由此可以看出,回溯引用指的是模式的后半部分去引用在前半部分中定义的子表达式
注意:
12回溯引用匹配通常从1开始计数(\1、\2,等等)。在许多实现里,第0个匹配(\0)可以用来代表整个正则表达式。
二:回溯引用在替换操作上的应用
目的:将文本中的邮件地址更改为可点击链接
使用:$n
分析
12第一个子表达式匹配出了一个电子邮箱地址,$1便代表着那第一个子表达式匹配出的内容
正则表达式_语法学习_6(位置匹配)
一、单词边界
目的:** 匹配单个单词**
使用元字符:\b
作用:
12345\b到底匹配什么东西呢?正则表达式引擎不懂英语(事实上,它不懂任何人类语言),也不知道什么是单词边界。简单地说,\b匹配的是一个这样的位置,这个位置位于一个能够用来构成单词的字符(字母、数字和下划线,也就是与\w相匹配的字符)和一个不能用来构成单词的字符(也就是与\W相匹配的字符)之间。
例一
没有使用:\b
使用之后
二、字符串边界
目的:对所要匹配的字符串(在一行的)的开头和(一行的)结尾做出限制
使用元字符:^ 和$
直接上例子
仔细分析:
1234567891011121314首先,"<"匹配第一个字符,随便后的转移之后的"?"匹配第二个字符,xml类似,重点:".*"将匹配零个或者多个字符,而这里注意,"."是一个贪婪行字符,如果其后不加"?"进行修饰为"懒惰型字符",那么会出现意想不到的后果, 上图中这绝不是我们 ...
正则表达式_语法学习_5
有多少个匹配
一 、匹配一个或者多个字符
例一
目的 :匹配文本中的邮箱地址
**使用元字符+ **
用法 :
在字符或者字符集后面简单的加上一个“+“,则可匹配 至少一个符合该字符模式的字符
正则表达式 :[\w.]+@[\w.]+\.\w+
注意:
12345注意 细心的读者可能已经注意到了:我们没有对字符集合[\w.]里的.字符进行转义。尽管如此,它还是把原始文本里的.字符匹配出来了。一般来说,当在字符集合里使用的时候,像.和+这样的元字符将被解释为普通字符,不需要被转义——但转义了也没有坏处。[\w.]的使用效果与[\w\ .]是一样的。
二 、 匹配零个或者多个字符
例二
目的 :
12345匹配出合法的邮箱地址(邮箱地址开头不能以`.` 开头,所以我们的正则表达式需要 可以去匹配出第一个字母或数字,同时”@“前面也可以只有那**一个**合法字符,而不需要再出现 多个字母数字,也就是**第一个**合法字符之后的 **字符**是可(**多**)有可**无**的)
使用元字符:*
用法与+一致
正则表达式: \w[\w.]*@[\w.]+\.[\w]+
三 : 匹配零个 ...