mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-08-10 00:41:37 +08:00
Compare commits
5 Commits
a1a79a39fd
...
b0ec356d24
Author | SHA1 | Date | |
---|---|---|---|
|
b0ec356d24 | ||
|
68c76e499a | ||
|
c576be1661 | ||
|
c2be094dae | ||
|
e3ae3dbc60 |
@ -83,6 +83,14 @@ public class RpcRequest implements Serializable {
|
||||
|
||||
`static` 修饰的变量是静态变量,位于方法区,本身是不会被序列化的。 `static` 变量是属于类的而不是对象。你反序列之后,`static` 变量的值就像是默认赋予给了对象一样,看着就像是 `static` 变量被序列化,实际只是假象罢了。
|
||||
|
||||
官方说明如下:
|
||||
|
||||
> A serializable class can declare its own serialVersionUID explicitly by declaring a field named `"serialVersionUID"` that must be `static`, `final`, and of type `long`;
|
||||
>
|
||||
> 如果想显式指定 `serialVersionUID` ,则需要在类中使用 `static` 和 `final` 关键字来修饰一个 `long` 类型的变量,变量名字必须为 `"serialVersionUID"` 。
|
||||
|
||||
也就是说,`serialVersionUID` 只是用来被 JVM 识别,实际并没有被序列化。
|
||||
|
||||
**如果有些字段不想进行序列化怎么办?**
|
||||
|
||||
对于不想进行序列化的变量,可以使用 `transient` 关键字修饰。
|
||||
|
@ -147,7 +147,7 @@ Kafka、Dubbo、ZooKeeper、Netty 、Caffeine 、Akka 中都有对时间轮的
|
||||
|
||||
时间轮简单来说就是一个环形的队列(底层一般基于数组实现),队列中的每一个元素(时间格)都可以存放一个定时任务列表。
|
||||
|
||||
时间轮中的每个时间格代表了时间轮的基本时间跨度或者说时间精度,加入时间一秒走一个时间格的话,那么这个时间轮的最高精度就是 1 秒(也就是说 3 s 和 3.9s 会在同一个时间格中)。
|
||||
时间轮中的每个时间格代表了时间轮的基本时间跨度或者说时间精度,假如时间一秒走一个时间格的话,那么这个时间轮的最高精度就是 1 秒(也就是说 3 s 和 3.9s 会在同一个时间格中)。
|
||||
|
||||
下图是一个有 12 个时间格的时间轮,转完一圈需要 12 s。当我们需要新建一个 3s 后执行的定时任务,只需要将定时任务放在下标为 3 的时间格中即可。当我们需要新建一个 9s 后执行的定时任务,只需要将定时任务放在下标为 9 的时间格中即可。
|
||||
|
||||
|
@ -243,7 +243,7 @@ Maven 远程仓库可以分为:
|
||||
|
||||
- **中央仓库** :这个仓库是由 Maven 社区来维护的,里面存放了绝大多数开源软件的包,并且是作为 Maven 的默认配置,不需要开发者额外配置。另外为了方便查询,还提供了一个[查询地址](https://search.maven.org/),开发者可以通过这个地址更快的搜索需要构件的坐标。
|
||||
- **私服** :私服是一种特殊的远程 Maven 仓库,它是架设在局域网内的仓库服务,私服一般被配置为互联网远程仓库的镜像,供局域网内的 Maven 用户使用。
|
||||
- **其他的公共仓库** :有一些公共仓库是未来加速访问(比如阿里云 Maven 镜像仓库)或者部分构件不存在于中央仓库中。
|
||||
- **其他的公共仓库** :有一些公共仓库是为了加速访问(比如阿里云 Maven 镜像仓库)或者部分构件不存在于中央仓库中。
|
||||
|
||||
Maven 依赖包寻找顺序:
|
||||
|
||||
@ -387,6 +387,7 @@ Maven 能够基于 `pom.xml` 所包含的信息,自动生成一个友好的站
|
||||
## Maven 插件
|
||||
|
||||
Maven 本质上是一个插件执行框架,所有的执行过程,都是由一个一个插件独立完成的。像咱们日常使用到的 install、clean、deploy 等命令,其实底层都是一个一个的 Maven 插件。关于 Maven 的核心插件可以参考官方的这篇文档:https://maven.apache.org/plugins/index.html 。
|
||||
本地默认插件路径: `${user.home}/.m2/repository/org/apache/maven/plugins`
|
||||
|
||||

|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user