曼松王子山“站立贡茶”——皇家贡茶园
云南位处边陲闭塞,崇山峻岭、原始村落和众多奇怪的民族风俗,总是令外界的朋友们感到很是神秘。云南最边陲的曼松村寨,更是一个远离城镇,与世隔绝的深山老林里的小村寨,这里居住着香堂族,育种出了历史上响当当的“站立贡茶”,创造了最为辉煌的过去,至今仍值得引以为傲、津津乐...
2024-01-10如何判断Linux系统安装在VMware上
如何判断当前Linux系统是否安装在VMware上面呢? 因为公司大部分服务器位于VMware上,也有小部分系统部署在物理机上面。今天老大要求统计一下VMware和物理机上服务器的数量,个人简单测试、验证了一下,当然也测试验证了多台服务器,但是限于手头的VMware版本以及Linux版本,不代表所有环境都是正确...
2024-01-10linux中gdb的入门使用教程
前言gdb是linux下非常好用的一个调试工具,虽然它是命令行模式的调试工具,但是它的功能强大到你无法想象,这里简单介绍下gdb的使用方法,需要的朋友们下面来一起看看详细的介绍吧。断点在代码的指定位置中断,使程序在此中断。break <function> 在进入指定函数时停住break <linenum> 在指定行号停...
2024-01-10Node.js 中如何收集和解析命令行参数
前言在开发 CLI(Command Line Interface)工具的业务场景下,离不开命令行参数的收集和解析。接下来,本文介绍如何收集和解析命令行参数。收集命令行参数在 Node.js 中,可以通过 process.argv 属性收集进程被启动时传入的命令行参数: // ./example/demo.js process.argv.slice(2); // 命令行执行如下命令 node ....
2024-01-10Java语言描述存储结构与邻接矩阵代码示例
存储结构要存储一个图,我们知道图既有结点,又有边,对于有权图来说,每条边上还带有权值。常用的图的存储结构主要有以下二种:邻接矩阵邻接表邻接矩阵我们知道,要表示结点,我们可以用一个一维数组来表示,然而对于结点和结点之间的关系,则无法简单地用一维数组来表示了,我们...
2024-01-10深入理解Java之HashMap源码剖析
一、HashMap概述HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。值得注意的是HashMap不是线程安全的,如果想要线程安全的H...
2024-01-10java反射之方法反射的基本操作方法
本文接上文“java反射之获取类的信息方法(推荐)”,利用反射(invoke)来获取一个类中的方法来执行。1、定义一个类,包含三个名称相同,参数不同的方法class A{ public void print(){ System.out.println("Hello,World"); } public void print(int a,int b){ System.out.println(a+b); } public void print(String a,String b){ S...
2024-01-10Java微信公众平台开发(12) 微信用户信息的获取
前面的文章有讲到微信的一系列开发文章,包括token获取、菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关联,所以在这里我们就采用openid去获取用户微信信息,并实现一个简单场景应用:当微信新...
2024-01-10Java JDK动态代理的基本原理详细介绍
JDK动态代理详解本文主要介绍JDK动态代理的基本原理,让大家更深刻的理解JDK Proxy,知其然知其所以然。明白JDK动态代理真正的原理及其生成的过程,我们以后写JDK Proxy可以不用去查demo,就可以徒手写个完美的Proxy。下面首先来个简单的Demo,后续的分析过程都依赖这个Demo去介绍,例子采用JDK1.8运行。JDK...
2024-01-10深入剖析java中的集合框架
解析:如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象,那么可以使用Java集合框架。如果启用集合的删除方法,那么集合中所有元素的索引会自动维护。集合完全弥补了数组的缺陷。02.集合框架的内容 集合框架都包含三大块内容:对外的接口,接口的实现和对集合运算的...
2024-01-10Java对数组实现选择排序算法的实例详解
一. 算法描述 选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。以下面5个...
2024-01-10使用Enumeration和Iterator遍历集合类详解
前言在数据库连接池分析的代码实例中,看到其中使用Enumeration来遍历Vector集合。后来就找了一些资料查看都有哪些方法可以遍历集合类,在网上找到了如下的使用Enumeration和Iterator遍历集合类的实例。不过这个实例中提到了Enumeration比Iterator的效率更高,其实并不是这样子的,该实例是的时间测试太片...
2024-01-10Struts从零开始五、Struts中验证数据实例
一、Struts的ActionForm的表单验证 ActionForm类用于在视图层和控制层之间传递HTML表单数据。控制层可以从ActionForm Bean中读取用户输入的表单数据,也可以把来自模型层的数据存放到ActionForm Bean中,然后把数据返回给视图。即ActionForm Bean从HTML表单中获取用户输入的数据并将传递给Action类,也可以把...
2024-01-10Apache Shiro 两种姿势绕过认证分析(CVE--17523)
作者:jweny@360云安全文章首发于安全客:https://www.anquanke.com/post/id/2309350x01 漏洞描述Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。当它和 Sp...
2024-01-10PhpStudy 后门分析
作者:Hcamael@知道创宇404实验室时间:2019年9月26日背景介绍2019/09/20,一则杭州警方通报打击涉网违法犯罪专项行动战果的新闻出现在我的朋友圈,其中通报了警方发现PhpStudy软件被种入后门后进行的侦查和逮捕了犯罪嫌疑人的事情。用PhpStudy的Web狗还挺多的,曾经我还是Web狗的时候也用过几天,不过...
2024-01-10gvim在窗口最大化后出错是怎么回事?
在安装完vim-airline插件后,最大化gvim窗口(windows10下)提示:这是怎么回事?回答:没有设置编码格式的问题。_vimrc中设置下编码格式为utf-8即可。set encoding=utf-8并不想自问自答,无奈等待期间正好有了答案。...
2024-01-10C语言为什么无法include另一个源代码文件
第一个程序try1#include<stdio.h>#include"try2.c"int main(){ int i; scanf("%d",&i); printf("%d\n",jc(i));}第二个程序 try2#include<stdio.h>int jc(int a){ int b=a; while(a-->1) { b*=a; } return b;}报错:||=== Build file: "no target" in "no pr...
2024-01-10C++ 程序步问题
如何查看程序步独立于所选用的实例特征,,就是这么分辨,,,当前程序步是否独立于实例特征回答:当前程序步是否独立于实例特征根据你贴的程序步的定义,程序步的执行时间一定独立与实例特征。你想问的应该是,如何判断一条语句,或者一个程序片段的运行时间是否独立与实例特征。...
2024-01-10在visual studio code 上使用浏览器自动刷新插件livereload
这个livereload在sublime上使用是没有任何问题的,在visual studio code的插件库中也有它,安装后无法使用,主要变现为点击浏览器的无法在浏览器侦听编辑器中的livereload,如图:图中的网址为自己本地host重定向的地址,先说一下,这一切在sublime中是完全正常的使用的,在编辑器中好像还说只能用35729端口,...
2024-01-10IOS8以上键盘出不来
IOS8以上 有概率键盘出不来,什么原因导致的或者有什么办法解决。谢谢这个情况并不是在一个地方 只要有输入框键盘出来的地方 都有概率 虽然概率很小 。回答:虚拟机吗?试一下command+k...
2024-01-10访问七牛下载链接下载apk出现{"error":"download token auth failed"}
同一个资源有时候能下载有时候不能下载(目前发现不能下载的就当前一个),key是上传之后存在我们mysql表里的,我下载的时候从表里取key,然后拼接下载链接。func (mac *Mac) Sign(data []byte) (token string) {h := hmac.New(sha1.New, mac.SecretKey)h.Write(data)sign := base64.URLEncoding.EncodeToString(h.Sum(nil))return fmt.Sprintf("%s:...
2024-01-10