介绍下树莓派没办法连接显示器和键盘的情况下怎样安装Ubuntu Server 22, 以及如何确定树莓派的 IP 地址并登陆进去等一些实用小技巧. 聪明的你还可以用这些学到的新技巧去扫描你的网络。
准备软件:
- SDFormatter 5.0.2 用来格式化闪存卡
- Raspberry Pi Imager 用来烧录镜像
- Ubuntu Server 22.0.4 操作系统镜像文件
介绍下树莓派没办法连接显示器和键盘的情况下怎样安装Ubuntu Server 22, 以及如何确定树莓派的 IP 地址并登陆进去等一些实用小技巧. 聪明的你还可以用这些学到的新技巧去扫描你的网络。
准备软件:
写博客或者笔记的时候,会经常要将图片上传至腾讯云对象存储COS上面,需要用QQ登录腾讯云再手动上传,稍显麻烦。 看了下腾讯云开放API,对接很简单。
首先创建一个子账号,然后在访问管理-访问密钥-API密钥管理
里面创建一对新密钥SecretId/SecretKey。复制保存下来。
COS有很多语言实现的SDK,Python版本的地址:https://cloud.tencent.com/document/product/436/12269
首先pip安装:
1 | pip install -U cos-python-sdk-v5 |
PyQt5工具可以快速实现简单的界面开发,包括界面设计、布局管理以及业务逻辑实现(信号与槽)。 简单说就是使用PyQt5工具可以快速画一个控件摆放整齐、界面整洁有序、布局合理的界面。
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和JConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具, 每一种工具都有其自身的特点, 用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测, 先通过一个表格形式简要介绍下这几个命令的作用和使用方法。
命令 | 作用 |
---|---|
jps | JVM进程ID查询工具 |
jstat | JVM统计信息监测工具 |
jstack | 查看某个Java进程内的线程堆栈信息 |
jmap | jmap导出堆内存,然后使用jhat来进行分析 |
jhat | jmap导出堆内存,然后使用jhat来进行分析 |
hprof | hprof能够展现CPU使用率,统计堆内存使用情况 |
VisualVM是功能最强大的运行监控和故障处理工具之一,曾经很长一段时间是Oracle官方主力发展的虚拟机故障处理工具。 它除了常规的运行监视、故障处理外,还提供性能分析(Profiling)。VisualVM不需要被监视程序基于特殊Agent去运行, 因此它的通用性极强,对应用程序实际性能影响很小,使得它能直接应用在生产环境中。
从JDK9开始,不再打包到JDK中,需要单独下载。
JHSDB是一款基于服务性代理实现的进程外调试工具。可以在一个独立的JVM进程里分析其他HotSpot虚拟机内部数据。 或者从HotSpot虚拟机进程内存中dump出来的转储快照里还原它的运行状态细节。
该工具从JDK9的时候开始提供,随JDK一起发布,无需另外下载。
JConsole是一款基于JMX的可视化监控和管理工具,它主要功能是通过JMX的MBean对系统进行信息收集和参数动态调整。 JMX是一种开放性的技术,不仅可以用于虚拟机本身管理,还可以运行于虚拟机上的软件中,很多中间件都通过JMX实现监控管理。
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 按照《Java虚拟机规范(第2版)》的规定,Java虚拟机所管理的内存将包括以下几个运行时数据区域。
来个图更加直观点,如下图所示:
在JDK1.8 Hotspot移除了永久代用元空间(Metaspace)取而代之, 这时候字符串常量池还在堆, 运行时常量池还在方法区, 只不过方法区的实现从永久代变成了元空间(Metaspace) ,元空间使用的是直接内存,跟JVM内存无关。
字符串常量池中同时存在字符串常量和字符串引用。直接赋值和new String("xxx")
构造函数都可能导致常量池中生成字符串常量;
而intern()方法会尝试将堆中对象的引用放入常量池。
字符串的创建和使用几种典型常见。
REST API都是要对外提供服务的,那么文档是必须的。Swagger是一个简单但功能强大的API表达工具。 它具有地球上最大的API工具生态系统,数以千计的开发人员,使用几乎所有的现代编程语言, 都在支持和使用Swagger。使用Swagger生成API,我们可以得到交互式文档,自动生成代码的SDK以及API的发现特性等。
2.X版本已经发布,Swagger变得更加强大。值得感激的是,Swagger的源码100%开源在github。
使用Swagger不纯粹是为了生成一个漂亮的API文档,也不纯粹是为了自动生成多种语言的代码框架, 重要的是,通过遵循它的标准, 可以使REST API分组清晰、定义标准。
通过Swagger生成API 文档有两种方式:
Swagger Editor
编写API文档的Yaml/Json定义。虽然第一种方式最方便,不用编写swagger配置文件,但是对代码污染太严重了。所以在项目里面我选择第二种方式, 另外我也不实用Swagger UI来展示API文档,页面太花哨了。 这里我选择swagger2markup将其转换为AsciiDoc或MarkDown格式。