记录一下IDEA项目提交到GitHub的整体操作:(主要是清晰每一步的作用,而不是死记硬背)
step1:
IDEA的GitHub连通配置。(这个就在setting-git那里,但一般配置一次就不再需要了,pass)
step2:
将本地的项目连接到GitHub。 VCS — Import into Version Control (会让你创建一个仓库)
然后再将项目切实地与该仓库连接。VCS — Import into Version Control — Create Git Repository
(有一次没有Create,右键项目甚至没有git操作)
阅读Servlet的源码
一. 前言
在写SSM项目的过程中,遇到了一些小问题,不知道如何解决。其实对于框架的很多问题,很多时候都是因为框架的封装性,然后自身没有理解框架的内部逻辑而导致的。于是这次想花点时间好好读一下Servlet的源码,这样可以更好地理解JavaWeb底层,遇到问题也能更加地游刃有余。当然此次阅读源码只是比较浅显的,先看官方文档,然后在有目的性地读一部分源码来感受文档的内容。如果要认真看那肯定要看很久,目前还没这个时间。
首先是Servlet API包含了两个软件包,javax.servlet和javax.servlet.http,为什么会有两个呢,因为早先设计该规范的人认为Servlet是一种服务模型,不一定要依赖于某种网络协议之上,于是就抽象出了一个javax.servlet,同时再提供一个基于HTTP协议上的接口拓展。但目前看来,似乎还没有发现有其他协议上实现的Servlet技术。
在vscode配置Java环境遇到的问题
之前一直把vscode当作一个sublime的强化版,仅仅把它当作一个编辑器而已。虽然一直也清楚这是一个很好的IDE,但却没有好好利用,可能是因为之前一直觉得IntelliJ IDEA已经满足了我的需求罢。直到最近,IDEA真的是变本加厉,只要一输入(拿着键盘随便乱敲),那么CPU就会暴增。cpu暴增一般情况下倒没什么所谓,反正没有超100就行吧(刚打开的时候还真的会升到100),可是我这破电脑只要CPU稍微高一点,风扇就开始呜呜呜地,像一台发电机。明天等待工具到了真的要把它拆开来除一下灰尘,但无论如何,IDEA过于臃肿已经是显而易见的问题了,还是需要认真考虑一下如何使用vscode吧。说实话,真的没想到我这么快就会想跟IDEA说再见,还记得当时刚开始学C++,非要听信那个菜比老师,用vs2010,体验极差,而我竟然用了两年多。大二的时候开始学Java,一开始是使用Eclipse,感觉也是比vs2010提升了一个档次。后来接触到了IDEA,真的是感觉神仙一样的软件,各种智能补全。当然了,中途还因为学数媒的原因,下载了一个vs2013,那个的体验其实也很好的,反正真的应该大一的时候就直接用vs2013,而不是那脑残的vs2010。总而言之,技术永远是在进步的,需求也是在增加的,对于用户,程序员,都是一样的。
记一次服务器CPU100%的问题
PS:写在前面,这篇文章最后并没有解决服务器CPU100%的问题,仅仅是记录在尝试过程中学到的知识点。
今天原本打算使用redis连接项目,正好网站备案通过了,正打算先测试一下域名是否可用,结果反而整个项目都不可用了。想着应该又是tomcat那边的问题,先上服务器看了一下,感觉服务器的卡顿越来越厉害了,时不时就会卡住然后断开连接。想想腾讯云也不至于这么烂,于是查了一下原因。虽说最后没有解决,但当中的过程还是学习到了很多。目前先把出错的服务器保存了一个snapshot,然后对服务器进行重载。先把这个问题放下,以后再回去解决。(主要是我数据库没有进行备份,数据还在上面,而数据库也出问题了,完全无法connect,自然也无法备份了。但保存了snapshot,那么数据库文件还在里面,等到需要那部分数据的时候,就对snapshot进行载入,然后再修复错误去获取数据吧,现在先放下这个问题)
关于链表的一些疑惑
前言:
链表想通的时候,感觉很简单,比数组还简单,只需要维护一个next指针,然后对指针进行操作即可。但有的时候也会遇到想不通的情况,这时候即便是非常简单的问题,都很难解决。所以这篇文章总结一下链表可能遇到的疑惑,下次遇到的时候查阅即可,无须每次都进行艰难的debug。
关于Mysql的optimize语句
看到了一个optimize的语句,想尝试一下,但发现这个语句默认只在MyISAM引擎的表上执行,在InnoDB可能会出现错误,于是的确出现了错误:
Table does not support optimize, doing recreate + analyze instead
查找网上的解法,看到了这篇文章:https://blog.csdn.net/e421083458/article/details/39522513
看样子是只需要在启动mysqld进程的时候,增加—skip-new参数即可。但下面还要一个shell脚本一键完成,因此想先尝试shell脚本。