URLConnection/JNI
目录
URLConnection
SSRF
JNI安全基础
构建动态链接库供Java调用
JNI-定义native方法
JNI-生成类头文件
JNI-编写C/C++本地命令执行实现
主函数调用
URLConnection
在java中,java抽象出来了一个URLConnection类,它用来表示应用程序以及与URL建立通信连接的所有类的超类,通过URL类中的 openConnection 方法获取到URLConnection的类对象。
Java中URLConnection支持的协议可以在sun.net.www.protocol看到。
gopher协议在jdk1.8+就被禁止了
package com.cxk.url;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;public class urlconnection {public static void main(String[] args) throws IOException {URL url = new URL("file:///E://123.txt");//打开和url之间的连接URLConnection connection = url.openConnection();//设置请求参数connection.setRequestProperty("user-agent","javasec");connection.setConnectTimeout(1000);connection.setReadTimeout(1000);//创建实际连接connection.connect();//获取响应头字段信息列表connection.getHeaderFields();//获取URL响应connection.getInputStream();StringBuilder response = new StringBuilder();//可变字符串BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine())!=null){response.append("/n").append(line);}System.out.println(response.toString());}
}
大概流程就是通过URL建立一个对象,然后建立连接,设置一些配置,最后获得相应流,这里的StringBuilder和StringBuffer差不多,两者都可以进行多次修改,并且不产生新的使用对象。StringBuilder类相较于StringBuffer有速度优势。但在要求线程安全的情况下,必须使用StringBuffer。 如果用String的话太繁琐,因为String不可变。
SSRF
SSRF(Server-side Request Forge, 服务端请求伪造)。 由攻击者构造的攻击链接传给服务端执行造成的漏洞,一般用来在外网探测或攻击内网服务。
简述就是,执行者通过服务器发现可以访问一些敏感的数据。
比如上面的new URL() 中我们可以控制就可以读取/etc/passwd配置信息等。
JNI安全基础
java是基于c语言实现的,也就是底层是C的原理毕竟java在c后产生的,Java底层的很多API都是通过JNI(Java Native Interface)
来实现的。通过JNI
接口C/C++
和Java
可以互相调用(存在跨平台问题),这和前面的命令执行也是用了Native也就是c实现的呗。
构建动态链接库供Java调用
JNI-定义native方法
首先java中如果想要调用native方法需要在类中定义一个native方法。
这点和java中的接口差不多,都需要一个其他的类来实现这个接口。
package com.cxk.Jni;public class JNITest {public native void sayHello();}
这里定义了native void就是没参数,因为只是为了简单的看出功能,sayHello方法需要c来实现。
JNI-生成类头文件
这个就可以理解为java和c之间连接的桥梁不能缺少。
完整的步骤如下:
- 生成一个class ,javac JNITest
- java com.cxk.Jni.JNITest 命令,这里不能在包内因为里面有引用路径。
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_cxk_Jni_JNITest */#ifndef _Included_com_cxk_Jni_JNITest
#define _Included_com_cxk_Jni_JNITest
#ifdef __cplusplus
extern "C" {
#endif
/** Class: com_cxk_Jni_JNITest* Method: sayHello* Signature: ()V*/
JNIEXPORT void JNICALL Java_com_cxk_Jni_JNITest_sayHello(JNIEnv *, jobject);#ifdef __cplusplus
}
#endif
#endif
这个文件一定不要修改,
JNIEXPORT void JNICALL Java_com_cxk_Jni_JNITest_sayHello
无参 JNICALL想到与引用后面的,java 包.文件.方法
(JNIEnv *, jobject);这里需要注意java中的类型和c中的不同,所以需要转换JNI安全基础_「Java Web安全」 - 网安 参考连接
JNI-编写C/C++本地命令执行实现
如上,我们已经生成好了头文件,接下来我们需要使用C/C++编写函数的最终实现代码。
com_cxk.Jni.JNITest.cpp
示例:
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <string>
#include"com_cxk_Jni_JNITest.h"
using namespace std;JNIEXPORT void JNICALL Java_com_cxk_Jni_JNITest_sayHello(JNIEnv *env, jobject obj)
{cout<<"hello world!"<<endl;
}
这里仅仅是一个输出的功能。
后使用g++
命令编译成动态链接库,前提是您需要提前装好编译环境如:gcc/g++
。
x86_64-w64-mingw32-g++ -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" -shared -o cmd.dll com_cxk_Jni_JNITest.cpp
这样就生成了一个cmd.dll文件,cmd随机的
还有关键的一步,把cmd.dll文件放到system32中,这样电脑才能找到
C:\Windows\system32
主函数调用
package com.cxk.Jni;public class JNITest {public native void sayHello();public static void main(String[] args) {System.load( "E:\\2022java-servlet\\11\\javassist-learn\\src\\main\\java\\cmd.dll" );System.loadLibrary("cmd");JNITest tNative = new JNITest();tNative.sayHello();}
}
总结:JNI可以实现对操作系统底层的调用,JNI可以用来提高调用的速度,它是直接和操作系统的内存进行交互,而省去了JVM和操作系统进行内存交换的步骤;JNI的另一个使用场景就是某些核心类库的实现可能需要跨包调用或者需要绕过其他Java安全性检查,如Java中的sun.misc.Unsaef实现,所以会引起很多安全的漏洞。
相关文章
- linux 内存泄漏排查--多种工具介绍
目录 1.工具 2.valgrind 2.1.Valgrind 安装 2.2.valgrind 使用 2.3.valgrind常见的命令行选项如下: 2.4.日志分析 3.mtrace 3.1.使用 3.2.注意 3.3.结果分析 4.bcc工具里面的memleak-bpfcc 4.1.命令安装 4.2.源码安装 4.3.结果分析 4.4.辅助命令 5.Sani…...
2023/3/28 16:40:11 - Pytorch构建自己的数据集
1.Pytorch内置的Dataset Pytorch中内置了许多数据集,我们可以从torchvision库中进行导入。比如,我们可以导入Fashion-MNIST数据集 import torch from torch.utils.data import Dataset from torchvision import datasets from torchvision.transforms …...
2023/3/28 16:39:01 - 【3月比赛合集】20场可报名的「创新应用」和「程序设计」大奖赛,任君挑选!
CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号同时会推送最新的比赛消息,欢迎关注! 更多比赛信息见 CompHub主页 或 点击文末阅读原文 以下信息仅供参考,以比赛官网为准 目录 创新应用…...
2023/3/28 16:37:34 - 经典文献阅读之--LOCUS 2.0(LiDAR为中心的多传感器LSLAM)
0. 简介 在20年DARPA地下挑战赛中CoSTAR队伍提出了LOCUS这个深度学习模块,在两年后LOCUS2.0出世,LOCUS 2.0包括一种新的基于法线的广义迭代最近点(GICP)公式,该公式减少了点云对齐的计算时间,一种自适应体…...
2023/3/28 16:35:26 - NDK FFmpeg音视频播放器四
NDK前期基础知识终于学完了,现在开始进入项目实战学习,通过FFmpeg实现一个简单的音视频播放器。 音视频一二三节已经实现了音视频播放,本节主要是通过Profiler来检测工程存在的内存泄漏问题。 主要内容如下: 1.项目native层内存泄…...
2023/3/28 16:32:21 - 短视频App开发方案IOS架构
简介 随着社交媒体的兴起和短视频的日益普及,开发短视频App已成为一个赚钱的好主意。iOS开发人员在创建这些应用程序方面非常有需求,因为这需要一组独特的功能和设计。在本文中,我们将探讨在iOS上开发短视频App的不同方法,并提供…...
2023/3/28 16:31:47 - 小黑仿生轮腿机器人(一)-本体说明及运动控制
一、本体说明 1. 机器人整体描述 小黑仿生轮腿机器人是一款全向仿生轮腿,具备麦克纳姆轮底盘的运动特性的同时,还具备了部分四足仿生机器人的运动特性。通过4个麦克纳姆轮和腿部动作的配合,可以在运动中改变机身的姿态,适应不同的…...
2023/3/28 16:31:18 - 衡量一款工程监测振弦采集仪是否好用的标准是什么呢?
衡量一款工程监测振弦采集仪是否好用的标准是什么呢? 长期在工地上使用的仪器,由于不同工况,使用的环境各不同,以及要应对各种恶劣天气,一般都要立杆建机箱机柜来安装保护,选择一款合适的仪器就显得很重要…...
2023/3/28 16:30:54 - 【FPGA-DSP】第二期:开发准备
目录 1. System Generator安装 1.1 system generator的安装 1.1.1 vivado安装System Generator 1.1.2 System Generator配置 2. 启动 本章节首先介绍FPGA进行DSP开发所需要的软件环境,及其安装方式。 DSP学习教程参考B站视频 1. System Generator安装 Sys…...
2023/3/28 16:30:24 - 性能优化之代码层 js
一、条件判断的使用建议 if else的写法 如果只有一两个条件的判断,通常if-else处理条件的时间会比switch更快,当判断条件多到两个以上时,因为在大多数时候,switch处理单个条件的时间比if-else更快,所以switch更加适合…...
2023/3/28 16:25:33 - 【论文指导】计算机毕业设计,摘要如何写?15篇案例把你安排明白
作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…...
2023/3/28 16:24:35 - 三个步骤帮你决定你今天吃什么(附20多个免费可用的高质量 API 推荐)
写在最前 今天吃什么?已经成了每天的生活难题,但是你一定不知道,世界上有一种非常好玩的 API 叫做 “今天吃什么”! 是的,它是专门为吃饭困难户而诞生的,它可以随机返回 n 个菜式供你选择,又或…...
2023/3/28 16:23:55 - 毕业的大学生需要考PMP证书吗?
大学生在学习期间如何能考一些证书,对于后续的工作和技能提升都是很有帮助的,很多时候大学生在校园里的时间都很多,如很能考取一个证书是非常好的选择,PMP证书的满足条件一个是学历,一个是经验,或许对于大学…...
2023/3/28 16:19:32 - Java ---import语句
(一)import语句的作用 在编写程序是,除了自己编写类外,我们可能会使用到Java提供的许多类,这样避免了我们重头开始写,这也是面向对象编程的一个重要方面。 一句话: 使用import语句可以引入包中…...
2023/3/28 16:17:09 - 信息系统项目管理师 第18章 项目绩效域
1.干系人绩效域 1.目标: 1. 与干系人建立高效的工作关系 2. 干系人认同项目目标 3. 支持项目的干系人提高了满意度,并从中收益 4. 反对项目的干系人没有对项目产生负面影响 2.促进干系人参与步骤 1. 识别 2. 理解和分析 3. 优先级排序 4. 参与 5. 监督 3.干系人…...
2023/3/28 16:16:57 - MobTech|如何使用秒验
什么是秒验? 秒验是MobTech公司提供的一款实现一键验证功能的产品,从根源上降低企业验证成本,有效提高拉新转化率,降低因验证带来的流失率,3秒完成手机号验证(一键登录)。 秒验主要整合了三大…...
2023/3/28 16:15:13 - yum升级gcc版本
yum升级gcc版本一、centos7升级gcc版本 4到10二、其它问题1、 其它版本如何安装?2、执行完第三步后发现常用命令失效一、centos7升级gcc版本 4到10 1、安装centos-release-scl yum install centos-release-scl -y2、安装devtoolset yum install devtoolset-10-gc…...
2023/3/28 16:14:16 - JDBC数据库驱动的下载与安装与连接
目录 JDBC数据库驱动下载 Intellij IDEA安装JDBC驱动 在使用 JDBC 之前,需要下载相应的 JDBC 驱动程序,该驱动程序应该与你使用的数据库的版本相对应。可以在数据库官网上找到相应的 JDBC 驱动程序。 JDBC数据库驱动下载 点击官方链接 MySQL :: MySQ…...
2023/3/28 16:13:23 - css设置超出几行显示省略号(单行、多行),兼容数字英文不换行问题,兼容中文字符隔空换行问题
1、单行文本超长显示省略号 /* css */ p{overflow: hidden;/*超出部分隐藏*/text-overflow:ellipsis;/* 超出部分显示省略号 */white-space: nowrap;/*规定段落中的文本不进行换行 */width: 100px;/*需要配合宽度来使用*/ }2、多行文本显示省略号 /* css */ p{ display: -we…...
2023/3/28 16:12:27 - 9、操作系统——线程的相关属性(1)
目录 一、线程相关属性的API 1、线程的特殊属性 2、设置线程的属性 3、注意事项 二、线程属性变量的使用步骤 三、相关的API 1、pthread_attr_init/pthread_attr_destroy(初始化、销毁线程属性变量) 2、pthread_attr_setdetachstate、pthread_attr_getdetachstate&…...
2023/3/28 16:10:17 - README.md文件生成目录结构里的树形内容分布结构
README.md文件生成目录结构里的树形内容分布结构 目的:获取目录与文件的关系结构图,如下图所示:前期准备:安装依赖使用treer命令生成目录结构其他方式README.md文件所在的路径如下: 目的:获取目录与文件的关系结构图,如下图所示: 前期准备: 去官网下载Node.js并安装…...
2023/3/28 16:08:51 - 数据库(做题)
该文章不适合学习数据库,适合考证,遇到实际问题的,不要在这儿浪费时间。切记切记 软考之数据库一、概念数据模型(下午题常考)二、结构数据模型关系模型1、关系模型中基本术语2、关系模型中的关系完整性约束3、关系代数…...
2023/3/28 16:06:18 - 欧拉数(自然对数底e)的推导史
欧拉数的推导史(自然对数底e) (The History of the Derivation of Euler’s Number) 摘要 本文按时间顺序(chronological)总结了许多鼓舞人心的(inspiring)辛勤工作的数学家的作品,他们在数学领域辛勤耕耘,带来了欧拉数的收获,也被称为Nap…...
2023/3/28 16:03:24 - 聚类算法层次聚类
###cluster.py #导入相应的包 import scipy import scipy.cluster.hierarchy as sch from scipy.cluster.vq import vq,kmeans,whiten import numpy as np import matplotlib.pylab as plt #生成待聚类的数据点,这里生成了20个点,每个点4维: pointsscipy.randn(20,4) #加一…...
2023/3/28 16:02:44 - 详解HTTP请求与响应基础及实例
详解HTTP请求与响应基础及实例 一、HTTP的请求与响应 二、HttpServletRequest和HttpServletResponse对象获取HTTP响应和请求 一、HTTP的请求与响应 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本…...
2023/3/28 15:59:53 - 面试准备2023
C基础 面向过程 1,关键字 Static: https://blog.csdn.net/weixin_44966641/article/details/122149739 const: https://blog.csdn.net/qq_40337086/article/details/125519833 2,指针与引用 *&的使用: https://b…...
2023/3/28 15:56:54 - GORM 基础 -- CRUD 接口(二)
1、Update 1.1 保存所有字段 Save将在执行update SQL时保存所有字段 db.First(&user)user.Name "jinzhu 2" user.Age 100 db.Save(&user) // UPDATE users SET namejinzhu 2, age100, birthday2016-01-01, updated_at 2013-11-17 21:34:10 WHERE id111…...
2023/3/28 15:56:43 - 强引用和弱引用区别
强引用 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: Object strongReference new Object();当内存空间不足时,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会…...
2023/3/28 15:56:18 - 磁盘空间不足怎么办?4招快速清理空间
案例:磁盘空间不足怎么办? “家人们看看我!我的电脑使用了不到两年,现在总是显示磁盘空间不足,有时候想保存些文件都无法保存,遇到这种情况我应该怎么清理我的磁盘呢?快给我出出主意吧ÿ…...
2023/3/28 15:55:49 - linux 环境变量设置方法总结(PATH/LD_LIBRARY_PATH)
1. PATH: 可执行程序的查找路径 查看当前环境变量: echo $PATH 设置: 方法一: export PATHPATH:/XXX 但是登出后就失效 方法二:修改~/.bashrc或~/.bash_profile或系统级别的/etc/profile 1. 在其中添加例如export PATH/opt/ActivePython-2.7/bin:$…...
2023/3/28 15:52:45
最新文章
- linux 内存泄漏排查--多种工具介绍
目录 1.工具 2.valgrind 2.1.Valgrind 安装 2.2.valgrind 使用 2.3.valgrind常见的命令行选项如下: 2.4.日志分析 3.mtrace 3.1.使用 3.2.注意 3.3.结果分析 4.bcc工具里面的memleak-bpfcc 4.1.命令安装 4.2.源码安装 4.3.结果分析 4.4.辅助命令 5.Sani…...
2023/3/28 16:40:11 - Pytorch构建自己的数据集
1.Pytorch内置的Dataset Pytorch中内置了许多数据集,我们可以从torchvision库中进行导入。比如,我们可以导入Fashion-MNIST数据集 import torch from torch.utils.data import Dataset from torchvision import datasets from torchvision.transforms …...
2023/3/28 16:39:01 - 【3月比赛合集】20场可报名的「创新应用」和「程序设计」大奖赛,任君挑选!
CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号同时会推送最新的比赛消息,欢迎关注! 更多比赛信息见 CompHub主页 或 点击文末阅读原文 以下信息仅供参考,以比赛官网为准 目录 创新应用…...
2023/3/28 16:37:34 - 经典文献阅读之--LOCUS 2.0(LiDAR为中心的多传感器LSLAM)
0. 简介 在20年DARPA地下挑战赛中CoSTAR队伍提出了LOCUS这个深度学习模块,在两年后LOCUS2.0出世,LOCUS 2.0包括一种新的基于法线的广义迭代最近点(GICP)公式,该公式减少了点云对齐的计算时间,一种自适应体…...
2023/3/28 16:35:26 - NDK FFmpeg音视频播放器四
NDK前期基础知识终于学完了,现在开始进入项目实战学习,通过FFmpeg实现一个简单的音视频播放器。 音视频一二三节已经实现了音视频播放,本节主要是通过Profiler来检测工程存在的内存泄漏问题。 主要内容如下: 1.项目native层内存泄…...
2023/3/28 16:32:21 - 短视频App开发方案IOS架构
简介 随着社交媒体的兴起和短视频的日益普及,开发短视频App已成为一个赚钱的好主意。iOS开发人员在创建这些应用程序方面非常有需求,因为这需要一组独特的功能和设计。在本文中,我们将探讨在iOS上开发短视频App的不同方法,并提供…...
2023/3/28 16:31:47 - 小黑仿生轮腿机器人(一)-本体说明及运动控制
一、本体说明 1. 机器人整体描述 小黑仿生轮腿机器人是一款全向仿生轮腿,具备麦克纳姆轮底盘的运动特性的同时,还具备了部分四足仿生机器人的运动特性。通过4个麦克纳姆轮和腿部动作的配合,可以在运动中改变机身的姿态,适应不同的…...
2023/3/28 16:31:18 - 衡量一款工程监测振弦采集仪是否好用的标准是什么呢?
衡量一款工程监测振弦采集仪是否好用的标准是什么呢? 长期在工地上使用的仪器,由于不同工况,使用的环境各不同,以及要应对各种恶劣天气,一般都要立杆建机箱机柜来安装保护,选择一款合适的仪器就显得很重要…...
2023/3/28 16:30:54 - 【FPGA-DSP】第二期:开发准备
目录 1. System Generator安装 1.1 system generator的安装 1.1.1 vivado安装System Generator 1.1.2 System Generator配置 2. 启动 本章节首先介绍FPGA进行DSP开发所需要的软件环境,及其安装方式。 DSP学习教程参考B站视频 1. System Generator安装 Sys…...
2023/3/28 16:30:24 - 性能优化之代码层 js
一、条件判断的使用建议 if else的写法 如果只有一两个条件的判断,通常if-else处理条件的时间会比switch更快,当判断条件多到两个以上时,因为在大多数时候,switch处理单个条件的时间比if-else更快,所以switch更加适合…...
2023/3/28 16:25:33 - 【论文指导】计算机毕业设计,摘要如何写?15篇案例把你安排明白
作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…...
2023/3/28 16:24:35 - 三个步骤帮你决定你今天吃什么(附20多个免费可用的高质量 API 推荐)
写在最前 今天吃什么?已经成了每天的生活难题,但是你一定不知道,世界上有一种非常好玩的 API 叫做 “今天吃什么”! 是的,它是专门为吃饭困难户而诞生的,它可以随机返回 n 个菜式供你选择,又或…...
2023/3/28 16:23:55 - 毕业的大学生需要考PMP证书吗?
大学生在学习期间如何能考一些证书,对于后续的工作和技能提升都是很有帮助的,很多时候大学生在校园里的时间都很多,如很能考取一个证书是非常好的选择,PMP证书的满足条件一个是学历,一个是经验,或许对于大学…...
2023/3/28 16:19:32 - Java ---import语句
(一)import语句的作用 在编写程序是,除了自己编写类外,我们可能会使用到Java提供的许多类,这样避免了我们重头开始写,这也是面向对象编程的一个重要方面。 一句话: 使用import语句可以引入包中…...
2023/3/28 16:17:09 - 信息系统项目管理师 第18章 项目绩效域
1.干系人绩效域 1.目标: 1. 与干系人建立高效的工作关系 2. 干系人认同项目目标 3. 支持项目的干系人提高了满意度,并从中收益 4. 反对项目的干系人没有对项目产生负面影响 2.促进干系人参与步骤 1. 识别 2. 理解和分析 3. 优先级排序 4. 参与 5. 监督 3.干系人…...
2023/3/28 16:16:57 - MobTech|如何使用秒验
什么是秒验? 秒验是MobTech公司提供的一款实现一键验证功能的产品,从根源上降低企业验证成本,有效提高拉新转化率,降低因验证带来的流失率,3秒完成手机号验证(一键登录)。 秒验主要整合了三大…...
2023/3/28 16:15:13 - yum升级gcc版本
yum升级gcc版本一、centos7升级gcc版本 4到10二、其它问题1、 其它版本如何安装?2、执行完第三步后发现常用命令失效一、centos7升级gcc版本 4到10 1、安装centos-release-scl yum install centos-release-scl -y2、安装devtoolset yum install devtoolset-10-gc…...
2023/3/28 16:14:16 - JDBC数据库驱动的下载与安装与连接
目录 JDBC数据库驱动下载 Intellij IDEA安装JDBC驱动 在使用 JDBC 之前,需要下载相应的 JDBC 驱动程序,该驱动程序应该与你使用的数据库的版本相对应。可以在数据库官网上找到相应的 JDBC 驱动程序。 JDBC数据库驱动下载 点击官方链接 MySQL :: MySQ…...
2023/3/28 16:13:23 - css设置超出几行显示省略号(单行、多行),兼容数字英文不换行问题,兼容中文字符隔空换行问题
1、单行文本超长显示省略号 /* css */ p{overflow: hidden;/*超出部分隐藏*/text-overflow:ellipsis;/* 超出部分显示省略号 */white-space: nowrap;/*规定段落中的文本不进行换行 */width: 100px;/*需要配合宽度来使用*/ }2、多行文本显示省略号 /* css */ p{ display: -we…...
2023/3/28 16:12:27 - 9、操作系统——线程的相关属性(1)
目录 一、线程相关属性的API 1、线程的特殊属性 2、设置线程的属性 3、注意事项 二、线程属性变量的使用步骤 三、相关的API 1、pthread_attr_init/pthread_attr_destroy(初始化、销毁线程属性变量) 2、pthread_attr_setdetachstate、pthread_attr_getdetachstate&…...
2023/3/28 16:10:17 - README.md文件生成目录结构里的树形内容分布结构
README.md文件生成目录结构里的树形内容分布结构 目的:获取目录与文件的关系结构图,如下图所示:前期准备:安装依赖使用treer命令生成目录结构其他方式README.md文件所在的路径如下: 目的:获取目录与文件的关系结构图,如下图所示: 前期准备: 去官网下载Node.js并安装…...
2023/3/28 16:08:51 - 数据库(做题)
该文章不适合学习数据库,适合考证,遇到实际问题的,不要在这儿浪费时间。切记切记 软考之数据库一、概念数据模型(下午题常考)二、结构数据模型关系模型1、关系模型中基本术语2、关系模型中的关系完整性约束3、关系代数…...
2023/3/28 16:06:18 - 欧拉数(自然对数底e)的推导史
欧拉数的推导史(自然对数底e) (The History of the Derivation of Euler’s Number) 摘要 本文按时间顺序(chronological)总结了许多鼓舞人心的(inspiring)辛勤工作的数学家的作品,他们在数学领域辛勤耕耘,带来了欧拉数的收获,也被称为Nap…...
2023/3/28 16:03:24 - 聚类算法层次聚类
###cluster.py #导入相应的包 import scipy import scipy.cluster.hierarchy as sch from scipy.cluster.vq import vq,kmeans,whiten import numpy as np import matplotlib.pylab as plt #生成待聚类的数据点,这里生成了20个点,每个点4维: pointsscipy.randn(20,4) #加一…...
2023/3/28 16:02:44 - 详解HTTP请求与响应基础及实例
详解HTTP请求与响应基础及实例 一、HTTP的请求与响应 二、HttpServletRequest和HttpServletResponse对象获取HTTP响应和请求 一、HTTP的请求与响应 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本…...
2023/3/28 15:59:53 - 面试准备2023
C基础 面向过程 1,关键字 Static: https://blog.csdn.net/weixin_44966641/article/details/122149739 const: https://blog.csdn.net/qq_40337086/article/details/125519833 2,指针与引用 *&的使用: https://b…...
2023/3/28 15:56:54 - GORM 基础 -- CRUD 接口(二)
1、Update 1.1 保存所有字段 Save将在执行update SQL时保存所有字段 db.First(&user)user.Name "jinzhu 2" user.Age 100 db.Save(&user) // UPDATE users SET namejinzhu 2, age100, birthday2016-01-01, updated_at 2013-11-17 21:34:10 WHERE id111…...
2023/3/28 15:56:43 - 强引用和弱引用区别
强引用 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: Object strongReference new Object();当内存空间不足时,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会…...
2023/3/28 15:56:18 - 磁盘空间不足怎么办?4招快速清理空间
案例:磁盘空间不足怎么办? “家人们看看我!我的电脑使用了不到两年,现在总是显示磁盘空间不足,有时候想保存些文件都无法保存,遇到这种情况我应该怎么清理我的磁盘呢?快给我出出主意吧ÿ…...
2023/3/28 15:55:49 - linux 环境变量设置方法总结(PATH/LD_LIBRARY_PATH)
1. PATH: 可执行程序的查找路径 查看当前环境变量: echo $PATH 设置: 方法一: export PATHPATH:/XXX 但是登出后就失效 方法二:修改~/.bashrc或~/.bash_profile或系统级别的/etc/profile 1. 在其中添加例如export PATH/opt/ActivePython-2.7/bin:$…...
2023/3/28 15:52:45