这周总的来说,还算不错。最初几天都在搞JavaWeb方面的知识,每天看视频的同时,用到markdown写笔记,晚上用hexo+git提交到自己的博客。充实且开心。到了后面基本都是建模的琐事了,抽象的数学模型很让人烦恼。但好在一切仍在一步步向前迈进。
1. 我用HEXO搭建的博客,欢迎大家访问,之后会增添评论留言功能的。
-
教程的话网上很多,基本都是基于hexo+GitHub+git实现的。不需要什么技术含量的。大家有空了亦可以自己试试
-
我这个的话是自己加了域名,后面打算是移植到自己的服务器上面来。
-
有几点,大家如果可以的话,最好一步到位,直接部署到自己的服务器上面来,外加域名。学生的话。买服务器还是很便宜的。一个十几块钱。域名普通的,一年也四五六十元。后面自己弄着。也会舒服一点。
-
大家亦可自行捣鼓一下,可玩性还是很高的,做一个简易的自己的博客,也能提高自己学习的趣味性,提高生产力。
-
搭建之后基本用几条简单的命令行,就可以完成博客的上传提交了,另提一下,如果可以,多多尝试markdown叭。程序员利器。后面再专门再介绍一下markdown。
2. JavaWeb学习
-
整理一下遇到的问题
- IDEA JSP 没有自动补全
- IDEA JSP 文件修改后需要重启tomcat(调整为热部署即可)
- Java 的(string)与 .toString
- A.toString , A不能为null
- (String)A , A不能为int
- next()与nextline()
- next()会以空格为分隔符
- nextline()整行
- Javabean错误,不要将jar包放到jre中,一个项目一个配置
- IDEA 与 Eclipse的区别,体现在工作区和Model之上。希望大家找到自己适宜的IDE
-
Java JDBC 操作的基本模板:
private static final String URL = "";
private static final String USERNAME = "";
private static final String PWD = "";
public static void update() {
Statement statement = null;
Connection connection = null;
try {
// 加载具体驱动类
Class.forName("");
// 与数据库建立连接
connection = DriverManager.getConnection(URL, USERNAME, PWD);
/*
发送SQL执行命令(增删改、查),,获取操作数据的对象
获取操作数据库的对象(Statement//preparedStatement//callablestatement)
*/
statement = connection.createStatement();
String sql = "";
int count = statement.executeUpdate(sql);
// 处理结果
if (count > 0) {
System.out.println("操作成功");
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (statement != null && connection != null) {
//先打开的后关闭
statement.close();
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
3. 最小生成树(Prim算法,Python实现)
- 因为数学建模培训中的算法作业布置到这个问题,所以去研究了一下。仅供参考
- 一个很棒的B站Up主,动画描述算法实现:最小生成树(Kruskal(克鲁斯卡尔)和Prim(普里姆))算法动画演示
# -*- coding: utf-8 -*-
# @Time : 2019/7/26 21:29
# @Author : 奥利波德
# @FileName: demo1.py
# @Software: PyCharm
# @Blog :https://blog.csdn.net/qq_44265507
import sys
if __name__=='__main__':
max_value = sys.maxsize
row0 = [0, 2, 8, 1, max_value, max_value, max_value, max_value]
row1 = [2, 0, 6, max_value, 1, max_value, max_value, max_value]
row2 = [8, 6, 0, 7, 5, 1, 2, max_value]
row3 = [1, max_value, 7, 0, max_value, max_value, 9, max_value]
row4 = [max_value, 1, 5, max_value, 3, 0, max_value, 8]
row5 = [max_value, max_value, 1, max_value, 3, 0, 4, 6]
row6 = [max_value, max_value, 2, 9, max_value, 4, 0, 3]
row7 = [max_value, max_value, max_value, max_value, 8, 6, 3, 0]
primgraph = [row0, row1, row2, row3, row4, row5, row6, row7]
chararray = ['V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8']
charlist = []
charlist.append(chararray[0])
mid = [] #mid[i]表示生成树集合中与点i最近的点的编号
lowcost = [] #lowcost[i]表示生成树集合中与点i最近的点构成的边最小权值 ,-1表示i已经在生成树集合中
lowcost.append(-1)
mid.append(0)
n = len(chararray)
for i in range(1,n): #初始化mid数组和lowcost数组
lowcost.append(primgraph[0][i])
mid.append(0)
sum = 0
for _ in range(1,n): #插入n-1个结点
minid = 0
min = max_value
for j in range(1,n): #寻找每次插入生成树的权值最小的结点
if(lowcost[j]!=-1 and lowcost[j]<min):
minid = j
min = lowcost[j]
charlist.append(chararray[minid])
print(chararray[mid[minid]]+'——'+chararray[minid]+'权值:'+str(lowcost[minid]))
sum+=min
lowcost[minid] = -1
for j in range(1,n): #更新插入结点后lowcost数组和mid数组值
if(lowcost[j]!=-1 and lowcost[j]>primgraph[minid][j]):
lowcost[j] = primgraph[minid][j]
mid[j] = minid
print("sum="+str(sum))
print("插入结点顺序:"+str(charlist))
4. 印象笔记、Markdown
- 安利一下印象笔记,我之所以使用它主要是因为,它支持Mardown语法,其次支持Pc端与手机端的互通,并且相对比较轻便,分类条理也清晰。但是弊端就是不支持Mardown笔记直接导出Md文件。希望之后会有吧。就用不着每次写完,然后再复制出去新键Md文件了。印象笔记官网
- Markdown标签语言,个人觉得就是知音,简洁,排版简易,一切都可通过标签实现,双手只管着在键盘上跳动,输出一篇篇简约大方的Md文章、笔记。新手一分钟熟练使用Markdown
- 一图以示之
6. 总结
- Java没有Python快乐
- 做事认真点吧、分清工作生活、别拖延就更好了
- 可以偶然的休息休息、但是要记得自己还仍在路上
- 提高效率、努力、加油