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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/413147.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3开发移动端H5页面中video无交互自动播放完美解决方案

链接 官网:https://jsmpeg.com/ github:https://github.com/phoboslab/jsmpeg 官方例子:https://jsmpeg.com/perf.html 在线video转ts文件:https://convertio.co/zh/mp4-ts/ 踩坑 一、不用使用任何npm、yarn等安装 npm i jsmpe…

【Go面试向】rune和byte类型的认识与使用

【Go】rune和byte类型的认识与使用 大家好 我是寸铁👊 总结了一篇rune和byte类型的认识与使用的文章✨ 喜欢的小伙伴可以点点关注 💝 byte和rune类型定义 byte,占用1个字节,共8个比特位,所以它实际上和uint8没什么本质区别,它表示…

Android 事件机制探讨(1)

事件的传递主要有三个方法:dispatchTouchEvent(事件分发)、onInterceptTouchEvent(事件拦截)、onTouchEvent(事件消费)。如下图: 仔细看的话,图分为3层,从上往下依次是Activity、ViewGroup、View事件从左上角那个白色箭头开始&…

python2实现数据库表定时全量同步sftp

python2实现数据库表定时全量同步sftp 需求 周边系统需要通过sftp接口,将本系统数据库的8张表吐给sftp,文件名为txt,提供的字段用#号分隔(逗号存在分隔不开的情况),8张表采用全量每天同步。 环境 操作系统centos7.…

HarmonyOS应用开发者初级认证试题库(鸿蒙)

目录 考试链接: 流程: 选择: 判断: 单选: 多选: 考试链接: 开发者能力认证-职业认证-鸿蒙能力认证-华为开发者学堂 (huawei.com)https://developer.huawei.com/consumer/cn/training/dev-…

一款自动化提权工具

免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。…

k8s学习-Deployment

Kubernetes通过各种Controller来管理Pod的生命周期 。 为了满足不同业 务 景 , Kubernetes 开发了Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job等多种Controller。我们⾸先学习最常用Deployment。 1.1 Kubectl命令直接创建 第一种是通过kubectl命令直接…

【JavaEE进阶】 关于应用分层

文章目录 🎋序言🍃什么是应⽤分层🎍为什么需要应⽤分层🍀如何分层(三层架构)🎄MVC和三层架构的区别和联系🌳什么是高内聚低耦合⭕总结 🎋序言 在我们进行项目开发时我们如果一股脑将所有代码都…

使用Qt连接scrcpy-server控制手机

Qt连接scrcpy-server 测试环境如何启动scrcpy-server1. 连接设备2. 推送scrcpy-server到手机上3. 建立Adb隧道连接4. 启动服务5. 关闭服务 使用QTcpServer与scrcpy-server建立连接建立连接并视频推流完整流程1. 开启视频推流过程2. 关闭视频推流过程 视频流的解码1. 数据包协议…

文件上传进阶(三)值得关注的3种类型漏洞

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 0、前置说明和绕过原理 0.1、环境说明 请移步《文件上…

高效视频剪辑:视频合并让视频焕然一新,添加背景音乐更动听

随着社交媒体和数字内容的普及,视频剪辑已成为一项常用的技能。除了基本的剪辑技巧外,添加合适的背景音乐也是提升视频质量的方法。下面来看云炫AI智剪的高效视频剪辑技巧——如何批量合并视频,添加动听的背景音乐。 视频合并后的效果展示&a…