Archlinux BspWM 外接显示器
了解123man xrandr # 查看帮助xrandr # 获取显示器接口信息 显示配置非必要 1vim /etc/X11/xorg.conf.d/10-monitor.conf 12345678910111213Section "Monitor" Identifier "eDP-1-1" Option "Primary" "true" Option "DPMS" "true" Option "PreferredMode" "1920x1080_60.00"EndSectionSection "Monitor" Identifier "HDMI-0" Option "DPMS" "true" Option...
ArchLinux 触摸板调教
开始之前OS:Archlinux WM:bspwm 安装触摸板驱动sudo pacman -S xf86-input-libinput 配置文件 1sudo vim /etc/X11/xorg.conf.d/30-touchpad.conf 1234567Section "InputClass" Identifier "touchpad" Driver "libinput" MatchIsTouchpad "on" Option "Tapping" "on" Option "TappingButtonMap" "lmr"EndSection 写入配置之后记得重新启动一下 配置触摸板手势安装配置 libinput-gestures 1sudo pacman -S...
Postman 但是 React
0x00要求创建一个前后端分离项目,并使用Postman测试后端API 0x01 分析开始之前 Postman的大名早有所耳闻,以前没有使用它只因为觉得它的功能有些许鸡肋(请求响应而已) 所以我决定写一个Postman的子集(t4t-api),并用它来做一些简单的接口测试。 创建一个前后端项目,为了快速创建项目,前端使用React框架,后端使用SpringBoot。 Postman的界面主要分为三个区域:(1)请求发起区域(2)结果显示区域(3)历史记录区域 下面的前端项目也采用这种功能布局。 0x02 前端1.创建一个React项目 2.经过一晚上的努力,看看效果 0x03 后端项目这里的后端项目采用我以前写好的几个项目: 1.文件上传下载项目(还没写完) 页面大概长这样 用手机扫描二维码就可以打开网页,然后点击“Browse”就可以选择要上传的文件,然后点击“UPLOAD”上传。 要测的主要就是这两个接口: GET请求返回二维码 GET请求返回html 2.SpringMVC 学习项目 前面测了GET,这里测试POST: 0x04...
React 中的 hook
HookReact中的Hook是React 16.8版本引入的新特性,它可以让函数组件拥有类组件的一些特性,例如状态管理和生命周期方法。使用Hook可以使代码更加简洁、易于理解和维护。 React中常用的Hook包括: useState:用于在函数组件中添加状态管理功能。 useEffect:用于在函数组件中添加生命周期方法。 useContext:用于在函数组件中使用上下文。 useReducer:用于在函数组件中使用Reducer进行状态管理。 useCallback:用于在函数组件中缓存回调函数,避免不必要的重新渲染。 useMemo:用于在函数组件中缓存计算结果,避免不必要的重复计算。 useRef:用于在函数组件中创建可变的引用对象。 使用Hook可以使函数组件具有更多的能力,同时也可以提高代码的可读性和可维护性。 useStateuseState是React中最基础的Hook之一,它可以让函数组件拥有状态管理的能力。使用useState需要先导入: 12import React, { useState } from...
Java 更多"特性"
不仅仅是语言特性SPIJava SPI(Service Provider Interface)是一种机制,它允许在运行时动态地替换接口的实现。这种机制允许开发人员编写一组接口,然后由不同的实现提供者提供不同的实现。SPI机制是Java标准库中的一部分,可以用于扩展Java应用程序的功能,而无需修改代码。SPI机制通过类加载器机制实现,它允许应用程序在运行时动态地加载和卸载实现。在Java中,SPI机制主要用于服务发现、插件机制等场景。 一个常见的例子是Java数据库连接(JDBC)。JDBC是一种标准的API,它定义了一组接口,用于访问各种不同类型的数据库。然而,不同的数据库供应商会提供不同的JDBC驱动程序来实现这些接口。在Java中,可以使用SPI机制来动态地加载和使用这些不同的JDBC驱动程序,而不需要在代码中显式地指定使用哪个驱动程序。这样,应用程序就可以在运行时根据需要选择不同的数据库驱动程序,而不需要修改代码。 Java AgentJava Agent是一种Java应用程序,它可以在运行时监控和修改Java应用程序的行为。Java...
Java 语言特性
基本特性Java语言的特性包括: 简单易学:Java语言的语法与C++类似,但是去掉了一些复杂的特性,使得Java更加容易学习和使用。 面向对象:Java是一种纯面向对象的编程语言,所有的数据类型都是对象,所有的操作都是方法调用。 平台无关性:Java程序可以在不同的平台上运行,只需要安装相应的JVM即可。 安全性:Java提供了严格的安全机制,防止恶意代码对系统造成破坏。 自动内存管理:Java自动进行垃圾回收,程序员不需要手动管理内存。 多线程支持:Java提供了多线程支持,可以方便地实现并发编程。 异常处理:Java提供了异常处理机制,可以有效地处理程序中出现的错误。 开放性:Java是一种开放的编程语言,有大量的开源库和框架可供使用。 高性能:Java虚拟机(JVM)可以将字节码转换为本地机器码执行,具有较高的性能。 动态性:Java支持动态加载和卸载类,可以在运行时动态地修改程序行为。 版本的新特性Java历代版本的新特性如下: Java 1.0:Java语言首次发布,包括基本的面向对象特性和网络编程API。 Java...
Linux 三剑客
正则表达式菜鸟 MDN re 含义 * 匹配前面的子表达式零次或多次 . 匹配除换行符(\n、\r)之外的任何单个字符 ? 匹配前面的子表达式零次或一次 + 匹配前面的子表达式一次或多次 ^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结束位置 [] 匹配所包含的任意一个字符 [^] 匹配未包含的任意字符 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符 {n} n 是一个非负整数。匹配确定的 n 次 {n,m} m 和 n 均为非负整数,其中n <= m。匹配 [n, m] 次 x|y 匹配 x 或 y 修饰符 含义 i ignore - 不区分大小写 g global - 全局匹配 m multi line - 多行匹配 s 特殊字符圆点 . 中包含换行符 \n grepgrep [OPTION...] PATTERNS [FILE...] awk菜鸟 awk — pattern scanning and processing...
Java 数据库框架
Java 数据库访问框架JDBCJDBC(Java Database Connectivity)是Java语言中用于连接和操作数据库的API。JDBC提供了一组标准接口,使得Java程序可以与各种关系型数据库进行交互,如Oracle、MySQL、SQL Server等。 JDBC的工作原理是通过驱动程序(Driver)来实现与数据库的连接。驱动程序是一个Java类库,它包含了与特定数据库通信所需的代码和协议。在使用JDBC时,需要先加载相应的驱动程序,然后通过驱动程序建立与数据库的连接,最后执行SQL语句或存储过程等操作。 JDBC的主要功能包括: 建立与数据库的连接:通过DriverManager类的getConnection()方法建立与数据库的连接。 执行SQL语句:通过Statement或PreparedStatement对象执行SQL语句,如查询数据、插入数据、更新数据等。 处理结果集:通过ResultSet对象处理查询结果集,如获取查询结果、遍历结果集等。 事务管理:通过Connection对象控制事务的提交、回滚等操作。 JDBC是Java...
Java实现文件上传下载
Java实现文件上传下载开始之前使用Linux,比较麻烦的一点就是和手机共享文件(下载电脑上的,上传手机上的), 目前存在的选择有: QQ,微信 优点:简单,安装即用 缺点:基于wine,慢,不稳定容易崩溃 Kde connection 优点:功能强大 缺点:依赖多,不稳定(连接不上),仅限于局域网 所以我就想用Java实现一个文件上传下载的小工具 简单的需求 启动程序会打开一个网页 网页显示二维码,手机浏览器扫描二维码在手机上打开相同网页 网页分为 “文件上传” 和 “文件下载” 两个部分 “文件上传” 用户选择手机上的文件上传 “文件下载” 显示电脑上的文件,并提供下载 设计我想的是使用快速原型,先实现基本的需求(文件上传和下载)再在基础功能上添加新的功能或者使得程序更易用 为了简单起见,我使用 SpringBoot 作为开发框架,我想想让程序能跑起来,再把它变得轻量快速 程序使用 MVC 架构 V : 负责和用户交互,提供文件上传下载的接口 异步获取二维码 C : 处理文件上传下载 M : 生成二维码 实现结果
网络编程模型
网络编程模型网络编程模型的核心: 服务器如何管理连接 服务器如何处理请求 以上两个设计点最终都和操作系统的 I/O 模型及进程模型相关 I/O模型:阻塞 、非阻塞、同步 、异步 进程模型:单进程、 多进程、多线程 PPC (Process per Connection) 父进程接受连接(图中accept) 父进程“fork”子进程(图中fork) 子进程处理连接的读写请求(图中子进程read、业务处理、write) 子进程关闭连接(图中子进程中的close) PPC 模式实现简单,比较适合服务器的连接数没那么多的情况(eg. pgsql) 而互联网兴起后,服务器的并发和访问量从几十剧增到成千上万,这种模式的弊端就凸显出来了,主要体现在如下几个方面: ...






