
本系列文章旨在学习整理MyBatis的一些知识。本文是本系列的第一篇,用来介绍JDBC的内容,本文不是纯新手教程,如果有疑问,请查询官方文档。

曾经写过一段时间“技术博客”,但是都没坚持下来。“技术博客”打引号是因为现在看来,那些文章并不算真正的技术博客,有为了找工作而做的各种东拼西凑、还有些纯粹就是书本或者技术文档的摘抄和贴图。严格意义上算不得技术博客。
现在有时间坐下来好好想想,要不要写技术博客,怎么写技术博客(如果要写)这几个萦绕在心头的问题。
如果在很长的时间尺度中观察,想在事业上取得成就,把自己学到的积累并用自己的方式结构化是必要的,而写技术博客是一种方式。之前写技术博客总是坚持不下来,失败的原因很大程度上是:写博客不是为了让自己成长,而是为了在找工作时简历上多点东西。这种想法现在看来十分短视和肤浅,失败只是时间问题。如果是为了自己能在以5年为时间尺度总结自己的能力成长,那么写技术博客是个不错的选择。
写技术博客还是以兴趣和目标驱动为主。找一个合适的平台,坚持下去。要不断的提醒自己,写文章是为了提升自己的知识储备,找工作或者别人的关注都是附带的,那些并带不来长久的快乐和提升。

在最近读了一些书,但是人生还是没有太大的起色,感觉总是对生活提不起热爱。内心仍有诸多纠葛和自我拉扯。
很多时候其实不是不知道答案,而是不理解答案。觉得自己按照自己的方式走也不会太差,但是结果是“失之毫厘,差之千里”。但是日子总是要过,而且希望越过越好。一些努力不是深彻的,但是仍然值得鼓励,因为只有慢慢的坚持,最终从整体来看,才是健康的、昂扬的。
这是听的公司讲关于技术人如何后续发展的讲座,听讲座不能只作机械的记忆,而是应该结合自己的理解,去深入理会和吸收。因为讲座一般是一个人关于自己一段时间内的行为以及收获的总结,它可以帮助我们少走一些弯路,提供更清晰的发展路径。
演讲主题是《技术驱动业务》。
最近准备提离职去南京工作,对近两年做个总结。
Runnable代表一个可以被线程执行的任务,其中只有一个run()方法1
2
3
4
5
6public interface Runnable {
/**
* 只有一个无参方法run(),当线程执行时,会调用这个run方法
*/
public abstract void run();
}
Thread类继承了Runnable接口, 其中也有Runnable的引用,它的run方法就是执行引用的Runnable实例的run方法。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31public class Thread implements Runnable {
private Runnable target;
public synchronized void start() {
if (threadStatus != 0)
throw new IllegalThreadStateException();
boolean started = false;
try {
// 底层调用JNI方法start0()向OS申请线程资源
start0();
started = true;
} finally {
try {
if (!started) {
group.threadStartFailed(this);
}
} catch (Throwable ignore) {
/* do nothing. If start0 threw a Throwable then
it will be passed up the call stack */
}
}
}
private native void start0();
@Override
public void run() {
// target在构造方法中设置,线程在执行具体的业务逻辑时会调用run方法
if (target != null) {
target.run();
}
}
}