- 博客(47)
- 资源 (4)
- 收藏
- 关注
原创 Python错误: SyntaxError: Non-ASCII character
在python文件头加上:#-*-coding:utf-8-*-
2017-08-14 10:34:30 316
原创 ImportError:No module named Tkinter的解决方案
在centos系统下,导入matplotlib时,出现ImportError: No module named '_tkinter'的错误,通常原因是tkinter和tk-devel缺失。通过yum install -y tkinter和yum install -y tk-devel下载相应模块
2017-08-12 11:34:31 3300
原创 CentOS打开关闭端口
Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令: lsof -i tcp:80 列出所有端口 netstat -ntlp 1、开启端口(以80端口为例) 方法一: /sbin/iptables -I INPUT -p tcp --dport 80 -
2017-07-22 09:02:09 809
原创 Java 中的中文编码问题
不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。我们可以把计算机能够理解的语言假定为英语,其它语言要能够在计算机中使用必
2017-06-06 22:34:42 9913
原创 CyclicBarrier介绍
CyclicBarrier 的字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。线程进入屏障通过CyclicBarrier的await()方法。CyclicBarrier默认的构造方法是CyclicBarrier(int partie
2017-06-06 14:42:18 9728
原创 CountDownLatch介绍
CountDownLatch是一个同步工具,它主要用线程执行之间的协作。CountDownLatch 的作用和 Thread.join() 方法类似,让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒。在直接创建线程的年代(Java 5.0 之前),我们可以使用 Thread.join()。在线程池出现后,因为线程池中的线程不能直接被引用,所以就必须使用 CountDownLatch 了。
2017-06-06 14:38:42 9740
原创 Quartz原理分析
Quartz集群原理分析1. Quartz集群数据库表Quartz的集群部署方案在架构上是分布式的,没有负责集中管理的节点,而是利用数据库锁的方式来实现集群环境下进行并发控制。BTW,分布式部署时需要保证各个节点的系统时间一致。Quartz数据库核心表如下:Table NameDescriptionQRTZ_CALENDA
2017-06-02 11:55:31 10105
原创 手动实现HashMap
public class HashMap { private static final int DEFAULT_INITIAL_CAPACITY = 16; private static final float DEFAULT_LOAD_FACTOR = 0.75f; private int threshold; private int size;
2017-05-29 21:59:03 9738
原创 Cas 总结
锁机制存在以下问题:(1)线程上下文切换代价(2)线程竞争锁发送的阻塞(3)扰乱线程优先级,高优先级线程等待低优先级线程释放锁CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。CAS是硬件CPU提供的元语,它的原理:我认为位置 V 应该包含值 A;如果包含该值,则将
2017-05-26 16:25:17 2257
原创 MySql 存储过程
存储过程跟普通Sql相比的优点1、比普通Sql功能更加强大,使用更加灵活2、执行速度快,除了第一次执行跟Sql处理时间相同外,以后再次调用少了语法分析和编译的时间消耗3、减少网络带宽,普通Sql有可能比较长,网络传输占用更多的带宽
2017-05-26 09:35:09 2170
原创 Mybatis 总结
Mybatis核心组件SqlSessionFactoryBuilder:用于创建SqlSessionFactorySqlSessionFactory:用于创建SqlSessionSqlSession:用于发送Sql语句去执行并返回结果,也可以获取Mapper接口SqlMapper:由Sql和Java接口组成,用于发送Sql去执行和返回结果关键图:
2017-05-25 16:50:55 2202
原创 简单工厂、工厂方法、抽象工厂
简单工作:由静态工厂方法通过输入的参数创建不同的产品工厂方法:由工厂实例方法创建具体某个产品抽象工厂:由工厂示例方法创建多个产品
2017-05-24 22:34:09 2119
原创 Spring 设计模式之策略模式应用
Resource的实现类有6个,分别是UrlResource、ClassPathResource、FileSystemResource、ByteArrayResource、InputStreamResource、SevletContextResource
2017-05-23 22:37:58 2580
原创 Spring 设计模式之适配器
关键类:AdvisorAdapterAfterReturningAdviceAdapterMethodBeforeAdviceAdapterThrowsAdviceAdapter
2017-05-23 22:19:43 2481
原创 Spring 设计模式——观察者|事件驱动模型
Spring观察者驱动模型几个关键的类ApplicationEvent:事件ApplicationListener:事件监听器,方法void onApplicationEvent(E event)ApplicationEventPublisher:事件发布器,方法void publishEvent(ApplicationEvent event)Application
2017-05-23 21:48:29 2893
原创 设计模式之回调模式
类A中有类B的应用,类A实现一个CallBack接口类B中有一个方法f,f有一个参数的类型是CallBack,方法f中调用CallBack方法public interface Callback {public void getName(String name);}public class B {public void fB(Callback clallback)
2017-05-23 17:26:13 2546
原创 七大 阻塞队列
1、ArrayBlockingQueue:一个由数组结构组成的有界阻塞队列2、LinkedBlockingQueue:一个由链表结构组成的有界阻塞队列3、PriorityBlockingQueue:一个支持优先级排序的无解阻塞队列4、DelayQueue:一个使用有限级队列实现的无界阻塞队列5、SynchronousQueue:一个不存储元素的阻塞队列6、LinkedTrans
2017-05-23 17:01:21 3481
原创 十二大 原子类型
1、AtomicBoolean:原子更新boolean变量2、AtomicInteger:原子更新int变量3、AtomicLong:原子更新long变量4、AtomicIntegerArray:原子更新整型数组的元素5、AtomicLongArray:原子更新长整型数组的元素6、AtomicReferenceArray:原子更新引用类型数组的元素7、AtomicRefer
2017-05-23 16:55:53 3579
转载 Paxos算法总结
Paxos算法一、基本概念算法的参与者有三个角色,每个参与者可以兼多个角色提议者(proposer),负责提案,提案包括编号和提议的value接收者(acceptor),负责批准议案学习者(learner),学习议案算法一致性的语义决议只有被提议者提出后才能被批准(没有批准的称为提案)在一次Paxos算法执行中,只能批准一个决议学习者只能获取被批
2017-05-22 14:28:27 2654
原创 LeetCode 2
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { public List
2017-05-21 22:18:40 2386
原创 单点登录框架Cas
1.什么是单点登录用户访问不同应用中的受保护的资源,只需登录一次。即通过一个应用的安全验证后,再访问其他应用中受保护的资源时不需要重复登录验证。2.单点登录的优点用户不必记忆多个登录名和密码,提高提高用户使用效率。开发人员新建项目不必考虑开发用户体系,提高开发人员效率。运维人员不必维护管理多个用户账号表,提高运维管理效率。3.CAS体系结构 1).
2017-05-21 19:38:51 3013
原创 共享变量可见性
可见性:多线程环境下,一个线程修改共享变量,能够及时被其他线程所感知共享变量:一个变量在多个线程的工作内存都存在副本,这个变量就是共享变量线程对共享变量的操作只能在自己的工作内存中进行,不能主内存中操作不同线程之间无法访问其他线程工作内存中的变量,线程间变量值的传递通过主内存完成共享变量的可见性实现原理:线程1修改共享变量后,立刻更新主内存,然后线程2立刻从主内存把
2017-05-21 19:28:09 3824
原创 Java NIO 总结
一、Java NIO与标准IO的区别1、channels和buffer,标注IO基于字节流和字符流操作,NIO基于通道和缓存操作2、异步IO,NIO支持异步操作,标准IO只能同步操作3、Selector,NIO的选择器可以监听多个通道二、Java NIO由Channel和Buffers和Selectors几个核心部分组成Channel实现FileChannel、Datagr
2017-05-21 13:20:17 726
原创 Dubbo标签解析
Dubbo标签总共有十个,分别是、、 、 、、、、、、。其中application标签用ApplicationConfig解析,module标签用ModuleConfig解析、registry用RegistryConfig解析、monitor标签用MonitorConfig解析、provider标签用ProviderConfig解析、consumer标签用ConsumerConfig解析、prot
2017-05-21 09:10:51 3273
原创 ServiceLoader 使用
ServiceLoader服务提供者模式,实现动态插件加载,类责任链模式ServiceLoader的功能比ClassLoader简单,它可以帮我们获取所有实现了某接口或基类的类。当然前提是ClassLoader已经加载过的类。举个例子:定义一个接口:public interface IService { public String sayHello
2017-05-20 23:42:58 2226
原创 jdk1.7之HashSet
public class HashSet extends AbstractSet implements Set, Cloneable, java.io.Serializable {static final long serialVersionUID = -5024744406713321676L;private transient HashMap map;private
2017-05-17 16:32:58 858
原创 jdk1.7之LinkedHashMap
package org.springframework.beans;import java.util.ConcurrentModificationException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class LinkedHash
2017-05-17 16:12:43 728
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人