摘要: Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法: ◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方 阅读全文
posted @ 2017-03-17 18:01 jdonson 阅读(12635) 评论(1) 推荐(3) 编辑
摘要: 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的, 阅读全文
posted @ 2017-03-17 17:31 jdonson 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 1. 优化SQL步骤 1. 优化SQL步骤 1. 通过 show status和应用特点了解各种 SQL的执行频率 通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 sess 阅读全文
posted @ 2017-03-17 17:11 jdonson 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 1、List,Set都是继承自Collection接口2、List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) 3、List接口有三个实现类:LinkedLis 阅读全文
posted @ 2017-03-17 17:02 jdonson 阅读(182) 评论(0) 推荐(0) 编辑
摘要: grep -o 'haha' file | wc -l vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用编辑软件进行替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。:s/well/good/ 替换当前行第一个 well 为 good: 阅读全文
posted @ 2017-03-17 15:33 jdonson 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op 阅读全文
posted @ 2017-03-17 15:25 jdonson 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 一、SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库。 二、SQL注入攻击的总体思路 1.寻找到SQL注入的位置 2.判断服务器类型和后台数据库类型 3.针对不通的服务器和数据库特 阅读全文
posted @ 2017-03-17 15:19 jdonson 阅读(222) 评论(0) 推荐(0) 编辑
摘要: JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功 阅读全文
posted @ 2017-03-17 14:44 jdonson 阅读(1237) 评论(0) 推荐(0) 编辑