springboot第50集:File类,IO流,网络编程,反射机制周刊

ea99d446d0d67bd2ec666d616cc0ef15.png

image.png

FileReader、FileWriter的使用

FileInputStream、FileOutputStream的使用

71ec607416b46dd1e9ba132326f257dd.png
image.png
69fef6822f49248d4e5ebe6610ca85c8.png
image.png
64cba6b27992f04248871e0e2b7066c6.png
image.png
bfacaf3617776178bae1bc9817362464.png
image.png
f55f6859c18fb79d89120f0fdc6eadbc.png
image.png
6e75a2ca3663dc46865eec9b82567a55.png
image.png
993dcd4273ccdc233f4bd081bd4783c0.png
image.png
4056d4a1786025c568c7da0d86e0dc42.png
image.png
27594eaaaa2f8d316756d8e80cccf081.png
image.png
ca4e86e84e2cbbe2fc8ddde9e5ad9bff.png
image.png
fcaa71bcd2c42f3f28d93104822ee278.png
image.png
71acd968116a479b251a19ec3a3f10b7.png
image.png

服务器内存优化是一个复杂的过程,通常需要综合考虑应用程序的性能需求、硬件资源、运行环境以及操作系统等因素。以下是一些建议来优化服务器内存:

1. 使用合适的硬件和配置:

  • 考虑使用更大容量的内存,以满足应用程序的需求。

  • 选择更高性能的内存和处理器,以提高服务器整体性能。

2. 调整 Java 虚拟机 (JVM) 参数:

  • 根据应用程序的需求,调整 JVM 的内存分配参数,例如 -Xms(初始堆大小)和 -Xmx(最大堆大小)。

  • 选择合适的垃圾回收器,根据应用程序的性能需求进行调优。

3. 使用内存分析工具:

  • 使用工具(例如 VisualVM、YourKit、MAT 等)来分析应用程序的内存使用情况,识别潜在的内存泄漏或大对象。

  • 使用内存分析工具来查看对象的引用关系,以便及时释放不再需要的对象。

4. 优化数据库访问:

  • 缓存频繁访问的数据,减少数据库查询次数。

  • 使用数据库连接池来管理数据库连接,避免频繁创建和销毁连接。

5. 使用合适的数据结构和算法:

  • 使用合适的数据结构和算法,以减少内存占用。

  • 避免不必要的数据复制和对象创建。

6. 减少不必要的线程和进程:

  • 评估应用程序中的线程和进程数量,确保它们的数量是合理的。

  • 使用线程池来管理线程,避免过多的线程创建和销毁。

7. 使用缓存:

  • 使用适当的缓存机制来存储计算结果、频繁使用的数据,以减轻对数据库或其他资源的访问压力。

8. 优化代码:

  • 优化代码以减少内存占用,避免过度使用全局变量和静态变量。

  • 避免创建过多的临时对象,尤其是在循环中。

9. 监控和调优:

  • 使用监控工具来实时监测服务器的内存使用情况。

  • 基于监控数据进行调优,及时发现并解决性能问题。

10. 升级应用程序和组件:

  • 使用最新版本的应用程序和组件,以获取性能优化和 bug 修复。

请注意,内存优化是一个持续的过程,需要根据实际应用程序的需求进行不断调整和改进。在进行任何优化之前,请确保使用性能测试来评估效果,并注意潜在的副作用。

13f8f862212f94d2d757900ba1279af8.png
image.png
89f2ecebd4d70b253433722cb6910ee8.png
image.png
7f7906f795fef6dcb84063dd697969e0.png
image.png
64e3e0db18579d491e3fecaec46a2a36.png
image.png
c40d9d34d4d77de6cd78e3f873ad996e.png
image.png
182a33cabb952f12d83181755baf4e84.png
image.png
3169f646115fbee14d8f0bb5058c1b25.png
image.png
ab7e666dc3e42764393e166eb069e7b5.png
image.png
4239f4542ad20b4936c9b1296ceaf19d.png
image.png
c430bfcec8cc01c576da7607a87fbc31.png
image.png
1374ce57a720d631f171fab45d69edbb.png
image.png
b17ddcbe619e9a37014948428e9156d0.png
image.png
289f3062671fb5dcc2e5e4ce356f7b7b.png
image.png
@Test
public void test1() throws IOException {
    // 创建File对象
    File file1 = new File("xxx.txt");
    // 创建流对象
    FileInputStream fis = new FileInputStream(file1);
    InputStreamReader isr = new InputStreamReader(fis);
    // 读入操作
    char[] cBuffer = new char[1024]
    int len;
    while((len = isr.read(cBuffer)) != -1) {
        String str = new String(cBuffer, 0, len);
    }
    //关闭资源
    isr.close();
}
8aa81650255aab2d38c3bc01218011bd.png
image.png
95b06fd15b33b6fd388398f511f35603.png
image.png
4df8d41fae953af4eda1957e76d55656.png
image.png
e25bb5a573b56675c56995766e6a64cb.png
image.png
62e58b4e8cf3cba423026ec05ba766cf.png
image.png
2ca2892bbaa0129785a41f655f8d29d7.png
image.png
4d91215f77368bbcbaa7c600ae76546a.png
image.png
// 日志工具
public class Logger {
    // 记录日志的方法
    public static void log(String msg) {
        try {
            // 指向一个日志文件
            PrintStream out = new PrintStream(new FileOutputStream("log.txt", true));
            // 改变输出方向
            System.setOut(out);
            // 日期当前时间
            Date nowTime = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
            String strTime = sdf.format(nowTime);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
022726f363d5c686b5c4be074c137cdd.png
image.png
2d5b15016e17c145caf38b195be716a3.png
image.png
7eb63f90ea0c5f9c80d1923cb03e9da8.png
image.png

网络编程

b5e0ce161d67a03b3bc97acaa250704b.png
image.png
0b1fdd2ae27de47f9cef832d7c3454a1.png
image.png
345b11b5d43cd0f6955bb1beba0aa83e.png
image.png
bde8b728ad6bae70a27f757384310f27.png
image.png
87b06102ceb1ed324629a12a7c92cfc1.png
image.png
7b25c5384abf0870d49ab2c42bfb01b0.png
image.png
5fd290bf3072380f8f9e30e14bdf6975.png
image.png
57e70ce46c986355cb1356a92e5bce71.png
image.png
e08d348c22ff9bdaccef4e6b5e5f471c.png
image.png
15937366efe25d1b9b5a77ebf9441c2b.png
image.png
4c284440e7f6a5f6538bf40e53b34422.png
image.png
ece102859ac2ffa3f6919e685bf64877.png
image.png
4a694a0163999a89c13e90bca9845a98.png
image.png
2f75dac51a5c1311e89529e028057588.png
image.png

由于你的主机平台是 linux/arm64/v8,而镜像 nacos/nacos-server:v2.1.2 是为 linux/amd64 构建的,所以你遇到了平台不匹配的问题。

要解决这个问题,你可以使用 --platform 选项明确指定平台,并选择与你的主机平台相匹配的镜像。在这种情况下,你应该使用 ARM64 架构的 Nacos 镜像。

以下是如何使用 --platform 选项拉取并运行适用于 ARM64 的 Nacos 镜像的示例:

docker pull --platform linux/arm64/v8 nacos/nacos-server:v2.1.2
docker run --name nacos-standalone -e MODE=standalone -d -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:v2.1.2

Docker部署sentinel Mac Docker 部署 sentinel

docker pull bladex/sentinel-dashboard:1.7.0
docker run --name sentinel -d  -p 8858:8858  bladex/sentinel-dashboard:1.7.0

这段代码使用了 Pinia 插件 pinia-plugin-persistedstate,它的作用是在 Pinia 应用中实现状态的持久化。具体来说,它使用浏览器的本地存储(localStorage)或者 sessionStorage 来存储 Pinia 存储对象的状态,使得在页面刷新或重新加载后,状态能够被恢复。

具体的功能包括:

  1. 状态自动存储: 当 Pinia 存储对象的状态发生变化时,这个插件会自动将状态保存到浏览器的本地存储中。

  2. 页面加载时状态恢复: 在应用加载时,插件会尝试从本地存储中恢复之前保存的状态,以便保持应用的状态不受刷新的影响。

这对于需要在用户刷新页面或关闭浏览器后保留某些状态的场景非常有用。例如,如果你有一个需要持久化的用户登录状态或用户的个性化设置,使用这个插件可以很方便地实现这个功能。

使用方法示例:

import { createPinia } from 'pinia';
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';

const pinia = createPinia();

// 使用插件
pinia.use(piniaPluginPersistedstate);

// 创建存储对象等其他 Pinia 配置
// ...
env: { browser: true, node: true, es6: true },
  • browser: true: 表示代码将在浏览器环境中运行。ESLint 在检查代码时会考虑浏览器特定的全局变量和 API。

  • node: true: 表示代码将在 Node.js 环境中运行。ESLint 在检查代码时会考虑 Node.js 环境的全局变量和 API。

  • es6: true: 表示代码将使用 ECMAScript 2015(ES6)语法。ESLint 在检查代码时会考虑 ES6 的语法规则。

加群联系作者vx:xiaoda0423

仓库地址:https://github.com/webVueBlog/JavaGuideInterview

相关推荐

  1. IOS面试题编程机制 51-55

    2024-01-16 14:46:01       40 阅读
  2. IOS面试题编程机制 46-50

    2024-01-16 14:46:01       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-16 14:46:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-16 14:46:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-16 14:46:01       82 阅读
  4. Python语言-面向对象

    2024-01-16 14:46:01       91 阅读

热门阅读

  1. Go+快速开始详细指南

    2024-01-16 14:46:01       47 阅读
  2. Memory Deduplication Attacks

    2024-01-16 14:46:01       44 阅读
  3. 2024年湖北省职称评审申报条件是什么?

    2024-01-16 14:46:01       65 阅读
  4. Linux第三次课后作业

    2024-01-16 14:46:01       51 阅读
  5. SpringBoot整合Netty+Websocket实现消息推送

    2024-01-16 14:46:01       45 阅读
  6. SparkSQL和Hive语法差异

    2024-01-16 14:46:01       50 阅读
  7. app开发——安卓主要模块记录

    2024-01-16 14:46:01       55 阅读
  8. bash入门

    2024-01-16 14:46:01       46 阅读
  9. LESS mixin 生成类名 控制间距

    2024-01-16 14:46:01       51 阅读
  10. linux如何创建文件教程分享

    2024-01-16 14:46:01       57 阅读
  11. 施工企业工程管理信息化、智能化需求分析

    2024-01-16 14:46:01       55 阅读