tantan的博客

Notes, ideas, and observations

给定一个整数数组,判断是否存在重复元素。

如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。

思路: 先差分, 然后把所有0和相邻同号的数字(之一)去掉, 剩下的元素数量+2既是最终答案

注意: 元素个数为0, 元素个数为1, 差分后有0出现

决定开始刷leetcode了

目标: 每天一道如果每日一题是easy, 就加一道hard 如果每日一题是easy, 就加一道medium

#Linux 内核提权

  • 获取内核版本

#为什么需要 CORS? CORS 是为了保护谁?

CORS 标准允许服务器指定谁可以访问该服务器上的资源, 以及该如何访问这些资源

Spring学习

#IoC容器

Visio 画图如何添加自定义连接点

在工具栏选中"连接点"

Java Spring 框架学习

Spring框架,它最主要的功能就是管理一堆使App(应用)发挥功能的类,这些作为整个App的基石、主干的类,就叫做bean。

#Java 包(Package), Jar 和模块(Module)的区别

  • 包 (Package)

    • 是 Java 源文件的集合, 包含 Class/Interface/Annotation 的定义

    • 与文件系统中的目录对应

    • 主要目的是防止命名冲突

  • Jar (Java Archive File)

    • 是编译后的 Java 代码(.class)的压缩包

    • 实际上是一个 zip 格式文件

    • 对 Jar 的操作用jar命令, 其语法类似 Linux 下的tar

      • 创建 Jar 包: jar cvf test.jar test

      • 解压 Jar 包: jar xvf test.jar

      • 列举 Jar 包的内容: jar tvf test.jar

  • 模块 (Module)

    • 是 Java 语言内置的一种管理组件之间依赖关系的方法, 在 Java 9 被引入

    • Module 解决的问题:

      • 在 Java 9 之前, 主要使用 package 作为封装方式,使用 Jar 作为模块, 封装方式由 package 和访问修饰符 (private, protected, public,包私有) 控制

        • 任何模块都能访问其他模块的 public 的代码,不同 Jar 下的同名包可以相互访问包私有的代码。

        • 无法控制非平台开发者对平台内部包的访问,如应用代码可以访问 sun.misc、com.sun.security 这样和具体平台绑定的包。

        • 没有明确的依赖信息,模块开发者无法设置必须的依赖,模块使用者不清楚该模块必须依赖哪些模块。只能使用外部的工具,如 Maven、Gradle、OSGI 等。

    • Module 的优势

      • 明确的依赖配置,JPMS 会在编译和运行之前检查当前环境是否满足依赖的要求。JPMS 会检查版本冲突,即当有两个模块暴露了相同的包名时,系统会抛出异常。JPMS 支持传递性依赖。

      • 强大的封装,模块可以明确指定哪些包能暴露给哪些模块,JPMS 不允许代码使用反射的方式访问不对外开放的包。

      • 性能优化,JPMS 完全清楚哪些模块是需要的,所以不需要的模块不会被 JVM 载入。

    • Module 的不足:

      • 缺乏对模块的版本的支持
    • 特点:

      ![](https://frezcirno.github.io/static/images/2020-12-04-java-module.jpg)
      
0%