学习笔记
文章平均质量分 51
努力上进的Mr_wang
我要时刻保持微笑
展开
-
servlet生命周期
Servlet的概念什么是Servlet呢? Java中有一个叫Servlet的接口,如果一个普通的类实现了这个接口,这个类就是一个Servlet。Servlet下有一个实现类叫HttpServlet,一个普通的java如果继承了HttpServlet类,覆盖了它的doGet和doPost方法,那么这个普通类也可以叫做Servlet。最后,servlet程序交给服务器运行! 那么,...转载 2019-03-04 21:55:35 · 154 阅读 · 0 评论 -
使用assembly插件把依赖的所有jar包打到同一个包里面
插件配置 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <ve...原创 2018-12-13 21:19:17 · 1961 阅读 · 0 评论 -
MySQL索引相关
1.创建用户,(禁止使用向mysql.user表) create user 'jeffrey'@'127.0.0.1' IDENTIFIED BY 'mypass'; grant all on *.* TO 'jeffrey'@'127.0.0.1' IDENTIFIED BY 'mypass' ;2.错误码ERROR(28000)用户名,密码,ip不对ERROR(42000)没...原创 2018-12-06 14:51:58 · 119 阅读 · 0 评论 -
maven常用工具命令
修改versionmvn versions:set -DnewVersion=1.0.1-SNAPSHOTmvn versions:commitqdr发布jar包的时候, 是可以通过这个命令修改jar包的version的.分析依赖mvn dependency:treemvn dependency:listmvn dependency:analyze下载jar包源代码...转载 2018-12-13 11:57:36 · 168 阅读 · 0 评论 -
maven进阶
super pom: 所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM)。父 POM 也被称作** Super POM **,它包含了一些可以被继承的默认设置。Maven 使用 effective pom(Super pom 加上工程自己的配置)来执行相关的目标,它帮助开发者在 pom.xml。中做尽可能少的配置,当然这些配置可以被方便的重写。查看 Super POM...原创 2018-12-13 12:04:36 · 204 阅读 · 0 评论 -
CountDownLatch与CyclicBarrier
CountDownLatch : 一个线程(或者多个), 等待另外N个线程完成某个事情之后才能执行。 CountDownLatch是等其他N个线程执行完,再去执行某线程,只能执行一次。 CyclicBarrier : N个线程相互等待,任何一个线程完成之前,所有的线程都必须等待。 ...原创 2018-12-03 21:06:14 · 188 阅读 · 0 评论 -
BIO,NIO,AIO
BIO:阻塞IO,应用发起系统调用,如果数据没有准备好,线程就会一直阻塞在这里,直到数据准备好,复制返回。NIO:非阻塞IO,应用发起系统调用,如果数据没有准备好,线程会立即返回, 过一段时间询问数据是否准备好,如果没有准备好,继续返回, 一直询问直到数据准备好,复制返回。AIO: 异步IO:发起一...原创 2018-12-03 20:50:44 · 102 阅读 · 0 评论 -
synchronized与AtomicInteger
计数器,低并发场景下和高并发场景下,分别用synchronized好还是AtomicInteger好?先简单说说区别:synchronized :重量级操作,基于悲观锁,可重入锁。AtomicInteger:乐观 ,用CAS实现 incrementAndGet()方法在一个无限循环体内,不断尝试将一个比当前值大1的新值赋给自己,如果失败则说明在执行"获取-设置"操作的时...原创 2018-12-03 18:35:09 · 1036 阅读 · 0 评论 -
锁优化
自旋锁与自适应自旋在许多应用上,共享数据的锁定状态只会持续很短的一段时间,为了这段时间去挂起和恢复线程并不值得如果物理机器上有一个以上的处理器,我们可以让后面申请锁的那个线程“稍等一下”,但不放弃处理器的执行时间,看看持有锁的线程是否很快就会释放锁。为了让线程等待,只需让线程执行一个忙循环(自旋),就项技术就是所谓的自旋锁。自旋等待不能代替阻塞,且先不说对处理器量的要求,自旋等待本身虽然避...原创 2018-12-19 20:54:18 · 133 阅读 · 0 评论 -
mybatis需要注意的几点
官方网站 http://www.mybatis.org/mybatis-3/zh/configuration.html#typeHandlers对于mybatis中字段名和model中名不一致的问题:1.select user_name as username from users;2.<resultMap id=“userResultMap” type="user">...原创 2018-12-20 14:10:27 · 222 阅读 · 0 评论 -
div
1.div垂直居中 position: absolute;top:50%;margin-top: -150px(div高度一半);2.div水平居中left:50%;margin-left:-200px;3.按钮位置方法一:style="padding-right:距离px;" 放在td或 div等里面方法二:style="margin-right:距离px;" 放在...原创 2018-12-18 21:23:33 · 349 阅读 · 0 评论 -
pom.xml
<!-- @Slf4j 需要下载lombok插件--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version&...原创 2018-12-12 13:29:12 · 235 阅读 · 0 评论 -
JSON
JSON:一种轻量级的数据交换格式。优点: 1.语言/平台无关性:JSON采用完全独立于语言/系统的文本格式。 2.易于人阅读和编写。 3.轻量级,易于机器解析和生成(对比XML)两种结构: 1.Object(Map) { key : value, key : value, ... } 2.Array(lis...原创 2018-12-10 13:00:55 · 104 阅读 · 0 评论 -
HTTP
HTTP(基于TCP):一本书 《Http权威指南》 http definitive guideURI:用来标识互联网上的资源。包括两种形式,URL 和 URNURI:要对URL中的特殊字符或者非ASCII字符进行转义处理例:Req & Resphttp报文分成三部分: 起始行,首部字段,实体GET与POST:同:都...原创 2018-12-10 11:35:21 · 178 阅读 · 0 评论 -
关于@Resource 和 @Autowired
@Resource name优先注入,可以跟参数,例如:@Resource("test")J2EE注解,不需要跟Spring紧耦合。@Autowiredtype优先注入。参数需要跟@Qualifier配合,例如:@Autowired@Qualifier("test")Spring注解。ps:@Autowired虽然更高级一点,但是可能会隐藏一些问题。比如:我有一个list集...原创 2018-12-14 20:25:49 · 166 阅读 · 0 评论 -
MySQL
ubuntu 安装mysql: 1. sudo apt-get install mysql-server 2. sudo apt-get install mysql-client 3. sudo apt-get install libmysqlclient-dev检查是否装好:sudo netstat -tap | grep mysql登录 mysql -u r...原创 2018-12-05 16:38:27 · 138 阅读 · 0 评论 -
MySQL基本操作
所有的sql语句均忽略大小写 保证一个规则大小写一致 2. 查看所有数据库Show databases; 使用DDL语句建库(DDL不可回滚) Create database 库名;4. 使用某个数据库Use 库名;5. 使用DDL语句建表 primary key代表主键约束 (数据不允许重复)主键是不需要用户自己来维护的 主键不能有俩 (复合主键)Cre...原创 2018-12-05 10:49:20 · 123 阅读 · 0 评论 -
函数式接口
1.Predicate源码不贴了。@org.junit.Test public void predicateTest(){ List<Integer> list=Arrays.asList(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20); Predicate<Integer&...原创 2018-12-01 19:33:54 · 170 阅读 · 0 评论 -
DFS BFS
package help.BFS;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;/** * 广度搜索,查找最小距离 */class node { int begin; int count; node(int begin, int count) { ...原创 2018-09-03 11:03:14 · 138 阅读 · 0 评论 -
B B+ B*个人总结一下
(图源自网络) BST树:二叉排序树,每个结点只存储一个关键字,等于则命中,小于走左结点,大于走右结点; AVL树:平衡的二叉排序树,(左选,右旋问题) B-树:多路搜索树,每个结点存储M/2到M个关键字,每个节点都存有数据 所有关键字在整颗树中出现,且只出现一次,非叶子结点可以命中; ...原创 2018-08-30 14:55:46 · 195 阅读 · 0 评论 -
DP问题以及例题
今天重新看了一下动态规划,温故知新确实没错。看别人的代码是个难熬的过程,而且有的阅读量高的代码,确很冗长,自己又重新写了几个经典例题。一、两个字符串的最长子序列(注意子序列可以不连续)/* * 两个字符串的最长子序列(注意子序列可以不连续) * * */public class LCS_DP { public static void main(String[] ...原创 2018-09-01 17:48:05 · 716 阅读 · 0 评论 -
求最小生成树算法-Prim和Kruskal
假设以下情景,有一块木板,板上钉上了一些钉子,这些钉子可以由一些细绳连接起来。假设每个钉子可以通过一根或者多根细绳连接起来,那么一定存在这样的情况,即用最少的细绳把所有钉子连接起来。更为实际的情景是这样的情况,在某地分布着N个村庄,现在需要在N个村庄之间修路,每个村庄之前的距离不同,问怎么修最短的路,将各个村庄连接起来。以上这些问题都可以归纳为最小生成树问题,用正式的表述方法描述为:给定一个无...转载 2018-08-21 21:25:27 · 319 阅读 · 0 评论 -
集线器、交换机、路由器、中继器及网关、网桥之间的区别
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25606103/article/details/51288459 计算机网络体系中,有几样通信设备或者说网络名词出现的频率相当的高,它们是:中继器、集线器、网桥、交换机、路由器和网关。初学者或者非专业者可能会对这几个名词的含义和作用感到模糊不清,经常把这几个名词给混淆了。其实,...转载 2018-08-24 18:18:19 · 4014 阅读 · 0 评论 -
jvm参数
-client :设置JVM使用client模式,特点启动较快(神机不明显(I5/8G/SSD))-server :设置JVM使用server模式。64位JDK默认启动该模式-agentlib:libname[=options] :用于加载本地的lib-agentlib:hprof :用于获取JVM的运行情况-agentpath:pathnamep[=options] :加载制定路...转载 2018-08-28 18:29:19 · 115 阅读 · 0 评论 -
TCP三次握手四次挥手
这个网上转载的例子不错:三次握手:A:“喂,你听得到吗?”A->SYN_SENDB:“我听得到呀,你听得到我吗?”应答与请求同时发出 B->SYN_RCVD | A->ESTABLISHEDA:“我能听到你,今天balabala……”B->ESTABLISHED四次挥手:A:“喂,我不说了。”A->FIN_WAIT1B:“我知道了。等下,上一句...转载 2018-08-23 15:23:08 · 170 阅读 · 0 评论 -
linkedHashMap
LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。也可以在构造时带参数,按照应用次数排序。总结归纳为:linkedMap在于存储数据你想保持进入的顺序与被取出的顺序一致的话,优先考虑LinkedMap在遍历的时候会比HashMap慢,不过有种情况例外:当HashMap容量很大,实际数据较少时,遍历起来可能会比L...原创 2018-11-29 11:01:25 · 110 阅读 · 0 评论 -
java 线程
Thread thread =new Thread();thread.setDaemon(true) ; //设置守护线程(后台线程) 线程安全的集合:1.List : CopyOnWriteArrayList 写少读多2.Map : ConcurrentMap 接口 ConcurrentHashMap3.Se...原创 2018-11-29 18:57:56 · 214 阅读 · 0 评论 -
lambda
书写 Lambda表达式左面参数,右面是函数式接口中的唯一抽象方法的具体实现,也就是他的方法体;方法如果是单行可以省略方法体。 list1.forEach(System.out::println); list1.forEach(i-> System.out.println(i));//这两者是等价的 ...原创 2018-11-29 11:54:20 · 95 阅读 · 0 评论 -
jdk1.8 与guava
1.Collections.unmodifiableXXX 和Guava的ImmutableXXX 产生的不可变集合有什么区别?前者是把集合的写方法置为不可用,但是如果有之前的集合的引用还是可以修改。后者是把原来的集合全部复制,然后把新集合的所有写方法置为不可用...原创 2018-12-01 18:48:04 · 1127 阅读 · 0 评论 -
做一个对代码有追求的人
1. stringBuider 声明一般给个值 list同 无论是sb还是集合类,扩容都是消耗性能的 stringbuffer尽量不要用 性能差2. try catch try(jdk1.7之后在这里能写代码) 需要手动关闭的流,像FileInputStream ,Scanner 写在括号里,跳出try catch的时候,就会自动关闭流,不用在finally中...原创 2018-12-01 16:44:15 · 283 阅读 · 0 评论 -
linux 一些指令
Shell中提高效率的一些方法:1.Ctrl+r 搜索历史命令(模糊搜索)2.Ctrl+a 移动到当前行开头 Ctrl+e 移动到当前行末尾3.Ctrl+ 左右箭头 一次移动一个单词4.Ctrl+w 剪切光标处的一个单词5.Ctrl+y 粘贴6.Ctrl+l 清屏7.Ctrl+& 恢复快捷键删除的内容 。。。感觉...原创 2018-11-28 14:28:58 · 131 阅读 · 0 评论 -
Linux2
linux:免费,开源,适合服务器管理,稳定。帮助命令:info man eg. man ls基本命令1,查看隐藏文件:ls -a查看文件详细(大小) ls -lh/ 根目录 ~home目录 cd 不加东西 默认home目录2,cp 复制 (递归复制文件夹 cp -r) cp one/txt newOne.txt mv 移动...原创 2018-11-27 16:48:31 · 197 阅读 · 0 评论 -
Executor 框架入门
学习Executor的过程中,遇到很多新的接口和类,先列举一下;Executor , Executors ,ExecutorService ,ScheduledExecutorServiceRunnable ,Callable,Future . Executor 接口,只有一个方法void execute(Runnable command) 执行给定的命令...原创 2018-11-30 13:43:17 · 232 阅读 · 0 评论 -
Git
缓存---本地仓库---远程仓库cashedGit 相关命令删除远程分支git push origin --delete <BranchName> (不用写<>)1.添加到缓存git add filename2.添加到本地仓库git3.push到远程同名仓库git push origin HEAD4.git res...原创 2018-11-26 21:56:44 · 110 阅读 · 0 评论 -
深入浅出之工厂模式
首先说说简单工厂模式,我用现实中的汽车工厂举例子,首先有个汽车类的接口叫做Car,里面有个开车的方法叫做drive(),然后有个吉利车的类叫做Jili,实现了car的接口,还有个奇瑞车的类叫做Qirui,也实现了Car的接口(因为都是车嘛,当然能开了)。 interface Car{ public void drive(){ ...转载 2018-08-27 17:34:57 · 208 阅读 · 0 评论