写于2022年5月13日:
开通博客用于学习记录分享及交流。
内容参考教材[双语版C++程序设计(第2版)][(爱尔兰)Paul Kelly(P. 凯利),苏小红]。
本书的网站:http://www.hxedu.com.cn.
疫情原因线上教学,通过写博客的方式巩固所学,查漏补缺~
愿历尽千帆,归来仍是少年。
共勉。
问题: 新建工程idea启动正常,使用java -jar或者java -cp 启动报无法解析主清单属性,即找不到对应启动类的mainClass;解决方法: 1. 检查工程pom文件是否有parent,若无则补充添加;
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.7</version> <relativePath/> </parent> 2. pom文件中添加
<!--引入部署插件--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> <version>2.6.7</version> </plugin> </plugins> </build>
Nginx安装和常用命令 Nginx下载地址:http://nginx.org/en/download.html
一、安装 1.去官网下载Nginx的安装包 2.需要安装其他依赖 (1)安装pcre #下载 # 或者去pcre官网 https://ftp.pcre.org/pub/pcre/,下载 pcre包上传到服务器 wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz #解压安装包: tar -zxvf pcre-8.40.tar.gz #进入安装包目录 cd pcre-8.40 #编译安装 ./configure make && make install #查看pcre版本 pcre-config --version (2)安装 openssl 、zlib 、 gcc 依赖
# 安装 zlib gcc OpenSSL 依赖 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 3.安装Nginx 1.将nginx的安装包上传到服务器
http://nginx.org/en/download.html 下载地址
2.安装步骤
# 1.解压到某个目录下 tar -zxvf nginx-1.18.0.tar.gz -C /usr/src/ # 2.进入解压后的目录下 cd /usr/src/nginx-1.18.0/ # 3.检查nginx ./configure # 4.
1 什么是继承 继承是一种类(class)与类之间的关系,JS中没有类,但是可以通过构造函数模拟类,然后通过原型来实现继承。
为什么要使用继承呢,是因为它有如下几个优点
继承是为了实现数据共享,js中的继承当然也是为了实现数据共享。 继承是子类继承父类的特征或者行为,使子类也具有父类的属性和方法; 或者子类从父类继承方法,使得子类具有父类相同的行为 继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。 2.通过原型实现继承 原型链继承是比较常见的继承方式之一
function Parent1() { this.name = 'parent1'; this.play = [1, 2, 3] } function Child1() { this.type = 'child2'; } Child1.prototype = new Parent1(); console.log(new Child1()); 3.构造函数继承(借助 call) function Parent1(){ this.name = 'parent1'; } Parent1.prototype.getName = function () { return this.name; } function Child1(){ Parent1.call(this); this.type = 'child1' } let child = new Child1(); console.log(child); // 没问题 console.
请访问原文链接:AlmaLinux 8 -- CentOS 稳定版的替代品,查看最新版。原创作品,转载请保留出处。
作者主页:www.sysin.org
AlmaLinux,一个开源和永远免费的企业 Linux 发行版和社区。
2022 年 5 月 12 日,AlmaLinux OS 基金会很高兴地宣布 AlmaLinux OS 8.6 Stable 现已推出。就像测试版发布后的闪光一样。此稳定版本适用于 x86_64、aarch64 和 ppc64le 架构,可用于生产安装并支持您的所有计算需求和工作负载。从最近的 镜像 并加入我们在 AlmaLinux 社区聊天 中进行讨论。
我们的实时映像、Raspberry Pi、云和容器映像更新也在进行中,敬请期待更新。不要眨眼,你可能会想念他们。
发行说明和更多信息 AlmaLinux 8.6 包含 Web 控制台增强功能和一些全新的 系统角色,使系统管理更简单。安全更新包括 SCAP 安全指南、OpenSCAP 和其他软件包的上游版本以及其他改进。您可以通过查看 发行说明。
你终于要加入我们不可思议的社区了吗? 你的努力和贡献使这样的伟大版本成为可能。加入我们。请报告您在 错误跟踪器。如果您需要任何帮助、发布问题或只是想闲逛,请加入 AlmaLinux 社区聊天。联系我们 Reddit 和 Twitter 上。享受新版本的乐趣,并一如既往地快乐黑客。
下载地址 百度网盘链接:https://pan.baidu.com/s/1BVeaavG_Kh35hD3Tqy-RPg 提取码:2md8
AlmaLinux 8.6 上游来自于 Red Hat Enterprise Linux (RHEL) 8.6 Release
下午连现场mysql库时候报错:
javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:129) at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117) 这错误出现原因是现场因为三级等保要求开启了mysql的ssl验证(MySQL5.7+默认是开启SSL连接),需要我们主动配置ssl证书信息或者明确指出不适用ssl
1、明确不使用ssl 加参数 useSSL=false
启动ssl增加性能损耗,如果不是为了等保等要求,确保安全情况下,可以不开启ssl:
jdbc:mysql://172.28.77.197:3306/admin?characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false 2、启用ssl
ssl.cert.path = /home/app/cert ssl.config = true&verifyServerCertificate=true&requireSSL=true&clientCertificateKeyStoreUrl=file:${ssl.cert.path}/keystoremysql&clientCertificateKeyStorePassword=password456&trustCertificateKeyStoreUrl=file:${ssl.cert.path}/truststoremysql&trustCertificateKeyStorePassword=password123 spring.datasource.url = jdbc:mysql://1.2.3.4:3306/db?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=${ssl.config} 因为加上ssl认证后url太长了,所以提取了两个变量
ssl.cert.path表示生成的两个证书文件存放路径
ssl.config的value里根据证书生成的参数对应修改,如果不需要ssl认证值设置为false即可
3、查看mysql是否启用ssl
可以在mysql输入一下命令
show variables like '%ssl%'; have_openssl和have_ssl为yes表示mysql开启了ssl(这种没有强制)
4、强制用户启动ssl
select ssl_type from user where user = 'xx' ; 如果结果为 ANY 则表示强制用户使用ssl
GRANT USAGE ON *.* TO 'xx'@'%' REQUIRE SSL; 5、开启ssl配置
[mysqld] ssl-ca=/etc/mysql/ca-cert.
【题目描述】以软科中国最好大学排名为分析对象,基于requests库和bs4库编写爬虫程序,对2015年至2019年间的中国大学排名数据进行爬取:(1)按照排名先后顺序输出不同年份的前10位大学信息,并要求对输出结果的排版进行优化;(2)结合matplotlib库,对2015-2019年间前10位大学的排名信息进行可视化展示。(3附加)编写一个查询程序,根据从键盘输入的大学名称和年份,输出该大学相应的排名信息。如果所爬取的数据中不包含该大学或该年份信息,则输出相应的提示信息,并让用户选择重新输入还是结束查询;
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
源代码:
import requests from bs4 import BeautifulSoup as bs import pandas as pd from matplotlib import pyplot as plt def get_rank(url): count = 0 rank = [] headers = { user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36 Edg/101.0.1210.3 } resp = requests.get(url, headers=headers).content.decode() soup = bs(resp, lxml) univname = soup.find_all('a', class_=name-cn) for i in univname: if count != 10: university = i.text.replace( , ) score = soup.
Go执行一个windows命令行(cmd)命令 1、生成桌面的所有文件信息
package main import ( fmt os/exec ) func main() { c := exec.Command(cmd, /C, dir, >, C:\\Desktop\\test.txt) if err := c.Run(); err != nil { fmt.Println(Error: , err) } }
【题目描述】豆瓣图书评论数据爬取。以《平凡的世界》、《都挺好》等为分析对象,编写程序爬取豆瓣读书上针对该图书的短评信息,要求:(1)对前3页短评信息进行跨页连续爬取;(2)爬取的数据包含用户名、短评内容、评论时间、评分和点赞数(有用数);(3)能够根据选择的排序方式(热门或最新)进行爬取,并分别针对热门和最新排序,输出前10位短评信息(包括用户名、短评内容、评论时间、评分和点赞数)。(4)根据点赞数的多少,按照从多到少的顺序将排名前10位的短评信息输出;(5附加)结合中文分词和词云生成,对前3页的短评内容进行文本分析:按照词语出现的次数从高到低排序,输出前10位排序结果;并生成一个属于自己的词云图形。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
源代码:
import re from collections import Counter import requests from lxml import etree import pandas as pd import jieba import matplotlib.pyplot as plt from wordcloud import WordCloud headers = { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36 Edg/101.0.1210.39 } comments = [] words = [] def regex_change(line): # 前缀的正则 username_regex = re.compile(r^\d+::) # URL,为了防止对中文的过滤,所以使用[a-zA-Z0-9]而不是\w url_regex = re.compile(r (https?://)? ([a-zA-Z0-9]+) (\.[a-zA-Z0-9]+) (\.[a-zA-Z0-9]+)* (/[a-zA-Z0-9]+)* , re.
第7章课后小测-1
1、按字典键值从小到大排序
dt={'b':6, 'c':2, 'a':4} s=sorted(dt.items(),key=lambda x:x[0]) print(s) 2、从CSV格式文件读入数据,将由每行数据组成的列表写入ls中
fo=open(demo.csv, r) ls=[] for line in fo: line=line.replace(\n,)#去掉一行末尾的\n,还有其他选项可以,比如line[0:-1]、line.strip('\n') ls.append(line.split(,)) fo.close() 3、将列表写入文件
fo = open(demo.txt, w+) ls = ['1','2','3'] fo.writelines(ls) fo.close() 4、文件不存在,不会自动创建的是file = open(path,'rb')
5、假设test.txt文件的内容是:aaaabbbbcccc以下代码的输出结果是
f = open(test.txt, r) print(f.readline(3)) f.close() 代码的输出结果是aaa
6、不能对文件进行写操作的是f = open(demo.txt,rw)
注:“rw”的写法不对,不能同时写两种打开模式
“x”定义为创建写模式,文件不存在则创建,存在则返回异常FileExistsError
7、文件中保存的内容是:hello SCUThello world
file=open('test.txt', 'wt+') file.write('hello SCUT') file.close() file=open('test.txt', 'at+')#a的作用是追加写模式,文件存在则在文件最后追加内容 file.write('hello world') file.close() 8、描述错误的是:文件是程序的集合和抽象
应该是:函数或类是程序的集合和抽象
9、python对文件操作采用的统一步骤是:打开-操作--关闭
10、同一个文件可以既采用文本方式打开,也可以采用二进制方式打开
11、readtext()不是python对文件的读操作方法