技术文章

用栈完成 一个表达式运算

家住魔仙堡 提交于 2021-02-19 08:26:02
请问 : 计算机底层是如何运算得到结果的? 注意不是简单的把算式列出运算 , 因为我们看这个算式 7 * 2 * 2 - 5 但是计算机怎么理解这个算式的 ( 对计算机而言,它接收到的就是一个 字符串 ) 需要用到 数栈 和 符号栈 public class Calculator { public static void main(String[] args) { //根据前面老师思路,完成表达式的运算 String expression = "7*2*2-5+1-5+3-4"; // 15//如何处理多位数的问题? //创建两个栈,数栈,一个符号栈 ArrayStack2 numStack = new ArrayStack2(10); ArrayStack2 operStack = new ArrayStack2(10); //定义需要的相关变量 int index = 0;//用于扫描 int num1 = 0; int num2 = 0; int oper = 0; int res = 0; char ch = ' '; //将每次扫描得到char保存到ch String keepNum = ""; //用于拼接 多位数 //开始while循环的扫描expression while(true) { //依次得到expression 的每一个字符 ch = expression

虚拟机中的四种网络连接方式

妖精的绣舞 提交于 2021-02-19 08:23:27
VirtualBox中有4中网络连接方式: NAT Bridged Adapter Internal Host-only Adapter VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式。 要让自己(或别人)理解深刻,方法就是做比较和打比方,比较之间的不同和相同,拿熟知的事物打比方。先来一张图,通过这张图就很容易看出这4种方式的区别: 再来用文字做详细的解释(其实归结起来就是上面的那张图): 1、NAT NAT:Network Address Translation,网络地址转换 NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解: Guest访问网络的所有数据都是由主机提供的,Guest并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Guest的存在。 Guest可以访问主机能访问到的所有网络,但是对于主机以及主机网络上的其他机器,Guest又是不可见的,甚至主机也访问不到Guest。 虚拟机与主机的关系:只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。 虚拟机与网络中其他主机的关系:只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。 虚拟机与虚拟机的关系:相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。 2

OpenVAS漏洞扫描基础教程之创建用户

China☆狼群 提交于 2021-02-19 08:21:59
OpenVAS漏洞扫描基础教程之创建用户 OpenVAS 管理服务 默认情况下, OpenVAS 服务仅创建了一个名为 admin 的用户,而且是管理员用户(拥有最高的权限)。如果想要其它客户端登陆的话,不可能都以管理员身份访问,否则导致服务器出现混乱,而且不方便管理。所以,为了方便管理 OpenVAS 服务,用户可以根据需求创建不同级别的用户和组。下面将分别介绍创建用户、组及修改用户角色的方法。 OpenVAS 创建用户 ( 1 )在 OpenVAS 服务的主界面(如图 1.6 所示)依次单击 Administration|Users 命令,即可打开用户界面,如图 1.7 所示。 图 1 . 7 用户界面 ( 2 )从该界面可以看到仅有一个 admin 用户。此时,单击图中的 (新建用户)图标 ,将显示如图 1.8 所示的界面。 图 1 . 8 新建用户界面 ( 3 )在该界面可以设置用户的名称、密码、角色、组及访问权限等。其中,该界面中每个选项的含义如下所示: q Login Name :登陆名称,即用户名。 q Password :新建用户的密码。 q Roles :设置用户的角色。默认, OpenVAS 支持创建六种角色的用户,分别是 Admin 、 Guest 、 Info 、 Monitor 、 Observer 和 User 。管理员可以通过单击 (加号)图标 ,

如何使用SSH远程命令登录香橙派开发板

纵然是瞬间 提交于 2021-02-19 08:17:56
香橙派Orange Pi 系列开发板是开源的单板电脑,新一代的arm开发板,可以运行Android、Ubuntu、Debian等操作系统。CPU使用全志H3系、RK3399等芯片,拥有多种内存规格提供选择。我们可以用它搭建: 一台计算机 一个无线网络服务器 游戏机 音乐播放器 高清视频播放器 扬声器 Android Scratch 更多的各种功能,因为 Orange Pi 开发板 是开源的。 Orange Pi 开发板可以选择连接显示器、串口登录,如果使用Linux 系统,还可以选择SSH远程登录开发板,下面就来介绍下如何使用SSH远程登录香橙派开发板。 工具/原料 香橙派开发板(本文以Orange Pi PC Plus开发板为例) 烧好Ubuntu系统的TF卡(内存8G以上class10级别的正规品牌TF卡) 交叉或直联网线 安装有 ssh 登录软件的笔记本电脑 1、查看 IP 地址 为了远程登录香橙派开发板,首先需要获取开发板的 IP 地址。我们可以通过串口来查看 2、使用 xshell 新建一个 ssh 连接 名称:输入这个 ssh 连接的名字,比如板子的名字 OrangePi 主机:输入板子的 IP 地址 然后按确定就可以了 3、打开刚才新建 ssh 连接 提示是否接受主机的密钥,这里我们选择接受并保存即可 4、然后会提示输入登录的用户名,我们可以输入 root 5

如何使用SSH远程命令登录香橙派开发板

久未见 提交于 2021-02-19 08:17:33
香橙派Orange Pi 系列开发板是开源的单板电脑,新一代的arm开发板,可以运行Android、Ubuntu、Debian等操作系统。CPU使用全志H2、H3、H6、RK3399等芯片,拥有多种内存规格提供选择。 Orange Pi 开发板可以选择连接显示器、串口登录,如果使用Linux 系统,还可以选择SSH远程登录开发板,下面就来介绍下如何使用SSH远程登录香橙派开发板。 1.准备工作 香橙派开发板(本文以Orange Pi PC Plus为例),烧好 ubuntu系统的 TF 卡,电源 网线:交叉或者直联网线 笔记本电脑:需要安装有 ssh 登录的软件,如 Xshell 2.查看 IP 地址 为了远程登录香橙派开发板,首先需要获取开发板的 IP 地址。我们可以通过串口来查看。 3.使用 ssh 远程登录香橙派开发板 3.1使用 xshell 新建一个 ssh 连接 名称:输入这个 ssh 连接的名字,比如板子的名字 OrangePi 主机:输入板子的 IP 地址 然后按确定就可以了 3.2打开刚才新建 ssh 连接 提示是否接受主机的密钥,这里我们选择接受并保存即可 然后会提示输入登录的用户名,我们可以输入 root 确定后会提示我们输入密码,香橙派的默认密码都为 orangepi 如果账号和密码验证通过,就会进入 Ubuntu 系统的命令行界面

远程桌面连接(mstsc)

我只是一个虾纸丫 提交于 2021-02-19 08:17:04
更新时间:2019.09.10 [TOC] 1. 序言 有时候需要用到远程桌面连接(Microsoft terminal services client)来远程连接到其他的电脑,下面来记录一下mstsc的使用和常见问题的解决方法。 **ps:**本人使用的是win10专业版( $\color{#8B8682}{查看受支持的windows版本}$ ),但是有的版本并不支持内置的远程连接功能,像win10家庭版。忽然感受到微软深深的恶意<img src="https://img2018.cnblogs.com/blog/1684731/201909/1684731-20190907124001046-1372496816.png" alt="吐血" width="22px" height="15px" />。因此,如果使用家庭版并且想要使用远程连接,要不就装一个专业版使用系统内置的mstsc,要不就使用第三方的远程控制工具。 2. 准备工作 2.1 开启远端计算机的远程桌面功能 打开系统属性--->远程设置--->选择允许远程连接到此计算机,根据自己的需要选择是否仅允许使用NLA进行访问。 如果在使用内网进行远程连接的时候可以开启“仅允许使用网络级别身份验证(NLA)”,这样做会更加的安全<img alt="思考" width="19px" height="22px" src=

关于matlab解析json的笔记

烈酒焚心 提交于 2021-02-19 08:13:17
Matlab访问RESTful接口 MATLAB ® RESTful Web 服务函数 webread 、 websave 、 webwrite 和 weboptions 允许非编程人员使用 HTTP GET 和 POST 方法访问多个 Web 服务。 在我们的场景里只要用webread函数就可以了,webread函数从制定的web服务中读取url并返回页面内容data data = webread( ' https://www.npclo.com/api/modeling?oid=5a37186c0246a33384333cba ' ); Matlab解析Json matlab本身没有解析json数据的函数,在matalb官网论坛上可以找到两个解析json的第三方库(函数):json4mat和parse_json。 根据网上资料显示两个函数均可实现json解析,但json4mat速度更快,所以我优先尝试了json4mat,但是出现数组越界的报错。经确认,页面上返回的数据符合json格式,反复debug也没有找到原因所在,选择放弃。 然后我尝试了parse_json函数,一次成功,没有报错。但是得到的数据是struct数据,只能用鼠标点开,不知道如何自动读取具体数据。 cell和struct的转换 参考: https://blog.csdn.net/kyang624823

spark出现task不能序列化错误的解决方法

血红的双手。 提交于 2021-02-19 08:12:31
Caused by: java.io.NotSerializableException: org.apache.spark.sql.api.java.StructField"的错误 一般是因为在map、filter等的参数使用了外部的变量,但是这个变量不能序列化。特别是当引用了某个类(经常是当前类)的成员函数或变量时,会导致这个类的所有成员(整个类)都需要支持序列化。解决这个问题最常用的方法有: 1.如果可以,将依赖的变量放到map、filter等的参数内部定义。这样就可以使用不支持序列化的类;2.. 如果可以,将依赖的变量独立放到一个小的class中,让这个class支持序列化;这样做可以减少网络传输量,提高效率; 3.如果可以,将被依赖的类中不能序列化的部分使用transient关键字修饰,告诉编译器它不需要序列化。 4.将引用的类做成可序列化的。 我在scala里面调用java的程序,直接实现接口 Serializable public class LogParser extends Common implements java.io.Serializable{ 解决的 来源: oschina 链接: https://my.oschina.net/u/2510243/blog/666333

Map集合循环遍历的几种方式

拟墨画扇 提交于 2021-02-19 08:11:45
package cn.jdbc.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; /** * Map 集合的循环遍历 * @data 2018.1.21 * */ public class TestMap { public static void main(String[] args) { Map<String, Object> map = new HashMap<String, Object>(); map.put("aaa", 111); map.put("bbb", 222); map.put("ccc", 333); map.put("ddd", 444); //Map集合循环遍历方式一 System.out.println("第一种:通过Map.keySet()遍历key和value:"); for(String key:map.keySet()){//keySet获取map集合key的集合 然后在遍历key即可 String value = map.get(key).toString();// System.out.println("key:"+key+" vlaue:"+value); } /

Django REST framework视图

孤街醉人 提交于 2021-02-19 08:11:05
Django REST framework视图 学习序列化的时候发现有大量的冗余代码,所以我们要使用Django REST framework里的视图减少我们的代码 DRF中的request 在Django REST Framework中内置的Request类扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等。 比如,区别于Django中的request从request.GET中获取URL参数,从request.POST中取某些情况下的POST数据。 在APIView中封装的request,就实现了请求数据的解析: 对于GET请求的参数我们通过request.query_params来获取。 对于POST请求、PUT请求的数据我们通过request.data来获取。 学习序列化时的部分 from rest_framework.views import APIView from rest_framework.response import Response from .models import * from django.shortcuts import HttpResponse from django.core import serializers from rest_framework import serializers class