自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 资源 (2)
  • 收藏
  • 关注

原创 第八届中国软件杯大赛-云监控系统设计思路

前言好久没写博客了,主要是因为最近 2 个月在忙着做 2 个比赛,一个是第八届中国软件杯大赛,另一个是阿里的第五届中间件性能挑战赛,另外还有就是忙着准备秋招,所以差不多 3 个月没写博客了,最近刚结束了中国软件杯的比赛,阿里的第五届中间件性能挑战赛也结束了初赛,所以趁着空闲的时间总结一下这两个比赛。首先汇报一下成绩,中国软件杯获得了三等奖(国家级),第五届中间件性能挑战赛初赛取得了第六名(40...

2019-07-28 15:19:50 1432 4

原创 从0开始造一个轮子(方的)

文章目录前言软件架构请求信息YoHttpClient处理链调度中心连接池总结前言俗话说「不要重复造轮子」,但是我觉得通过研究大神造的轮子,然后自己去尝试造一个简陋版的,对于提升自己的软件构思是很有帮助的。回归正题,最近在做一个作业,和计算机网络相关的,笔者选择了用Java开发一个简陋版的HTTP客户端,于是笔者去拜读了Square公司开源的OkHttp,参照了Okhttp的设计思想,开发了...

2019-04-12 17:19:37 522

原创 深入理解ReentrantLock的实现原理

文章目录ReentrantLock简介AQS回顾ReentrantLock原理ReentrantLock结构非公平锁的实现原理lock方法获取锁tryRelease锁的释放公平锁的实现原理lock方法获取锁tryRelease锁的释放lockInterruptibly可中断方式获取锁tryLock超时等待方式获取锁ReentrantLock的等待/通知机制ReentrantLock和Synchr...

2019-03-25 13:50:44 957

原创 深入分析synchronized原理和锁膨胀过程(二)

文章目录前言synchronized实现原理同步代码块同步方法两种同步方式区别Java对象的组成对象头实例数据对齐填充synchronized锁膨胀过程锁的优化自旋锁和自适应性自旋锁锁消除锁粗化轻量级锁偏向锁锁的转换过程三种锁的优缺点比较参考前言上一篇文章介绍了多线程的概念及synchronized的使用方法《synchronized的使用(一)》,但是仅仅会用还是不够的,只有了解其底层实现...

2019-03-22 23:25:04 14546 6

原创 synchronized的使用(一)

文章目录多线程简介synchronized简介synchronized的特性synchronized与可见性synchronized与有序性synchronized与原子性参考多线程简介在现代计算机中往往存在多个CPU核心,而1个CPU能同时运行一个线程,为了充分利用CPU多核心,提高CPU的效率,多线程就应时而生了。那么多线程就一定比单线程快吗?答案是不一定,因为多线程存在单线程没有的问...

2019-03-21 17:42:47 287

原创 Java volatile关键字解析

文章目录volatile简介Java内存模型volatile原理volatile的可见性volatile的有序性volatile有没有原子性?参考volatile简介volatile被称为轻量级的synchronized,运行时开销比synchronized更小,在多线程并发编程中发挥着同步共享变量、禁止处理器重排序的重要作用。建议在学习volatie之前,先看一下Java内存模型《什么是J...

2019-03-19 16:24:35 187

原创 一文带你快速掌握AQS

文章目录AbstractQueuedSynchronizer简介AQS数据结构AQS的功能同步队列独占模式获取资源释放资源共享模式获取资源释放资源普通队列同步队列和普通队列的关系参考AbstractQueuedSynchronizer简介AbstractQueuedSynchronizer抽象队列同步器,简称为AQS,可用于构建阻塞锁或者其他相关同步器的基础框,是Java并发包的基础工具类。...

2019-03-15 20:54:51 204

原创 CAS原理分析及ABA问题详解

文章目录什么是CASUnsafe源码分析CAS的缺点ABA问题循环时间长开销大只能保证一个共享变量的原子操作CAS的应用参考什么是CASCAS即Compare And Swap的缩写,翻译成中文就是比较并交换,其作用是让CPU比较内存中某个值是否和预期的值相同,如果相同则将这个值更新为新值,不相同则不做更新,也就是CAS是原子性的操作,其实现方式是通过借助C/C++调用CPU指令完成的,所以...

2019-03-13 19:08:54 1824 1

原创 什么是Java内存模型?

文章目录前言CPU工作过程及出现的问题CPU执行过程缓存一致性问题处理器重排序问题什么是计算机内存模型什么是Java内存模型总结参考前言要想深入了解Java并发编程,就要先理解好Java内存模型,而要理解Java内存模型又不得不从硬件、计算机内存模型说起,本文从计算机内存模型产生的原因、解决的问题谈起,然后再对Java模型进行介绍,最后对计算机内存模型和Java内存模型进行总结,希望大家看完...

2019-03-11 22:54:47 569

原创 10分钟掌握ConcurrentHashMap 3分钟清楚和HashMap、Hashtable的区别

文章目录前言ConcurrentHashMap构造函数put方法get方法remove方法initTable初始化方法transfer扩容方法addCount、sumCount方法size、mappingCount方法HashMap、Hashtable、ConcurrentHashMap三者对比参考前言ConcurrentHashMap顾名思义就是同步的HashMap,也就是线程安全的Has...

2019-03-11 00:01:36 608

原创 五分钟看懂Hashtable源码以及与HashMap的区别

文章目录前言Hashtable构造函数put方法get方法remove方法rehash方法HashMap和Hashtable区别不同点相同点参考前言上一篇我们认识了什么是Map、Hash,了解了Hash处理哈希冲突的几种常用方法(拉链法、开放定址法),以及分析了JDK1.8版本的HashMap源码,对Java集合框架有了初步的认识,我们本篇继续分析JDK1.8版本的Hashtable源码,最...

2019-03-08 20:35:25 157

原创 HashMap从认识到源码分析

文章目录MapHasH表HashMap数据结构构造函数put方法get方法remove方法containsKey方法哈希表的初始化和加倍扩容resize方法参考资料MapMap在开发过程中使用频率很高的数据结构,Map是Key-value键值对映射的抽象接口,该映射不包括重复的键,既一个键对应一个值。HashMap、HashTable、ConcurrentHashMap都是Java Colle...

2019-03-08 15:28:31 406

原创 计算机如何储存数字和字符

前言最近在学习中涉及到计算机储存、传输数字和字符等操作,由于对字节、2进制、10进制、16进制、ASCII码的概念以及它们之间的关系和转换理解的不够透彻,导致在通讯、MD5消息摘要算法等时候出现问题,是因为数据转成计算机认识的01的这个环节出现问题。由于这个问题并不是那么容易发现,所以我也算是花了挺多时间才解决了这个问题,记录下解决过程,顺便也当复习一下计算机组成原理。ASCII码在计算机...

2019-02-16 21:01:06 6692

原创 第三章 Redis 客户端的使用 Java版【Redis入门教程】

Redis入门教程目录:【Redis入门教程目录】文章目录Redis客户端Jedis的使用Jedis的直连Jedis的连接池Spring-data-redis的使用添加依赖Spring和Spring-data-redis整合Redis客户端我们知道Redis是C语言开发的,如果想用别的语言操作Redis,那就需要用到别的语言的客户端。我们前面介绍过Redis的其中一个特性就是客户端多,几乎...

2019-02-15 13:17:49 511

原创 第二章 Redis API的使用 单线程介绍【Redis入门教程】

文章目录数据结构和内部编码单线程通用命令五种数据结构字符串键值结构命令哈希键值结构命令列表键值结构命令集合键值结构命令有序集合键值结构命令Redis入门教程目录:【Redis入门教程目录】数据结构和内部编码通过这部分让大家对Redis的五种数据结构有初步的认识,对于Redis来说,每一种数据结构都有着自己的内部编码,而且是多种实现的,这样Redis会在合适的场景选择合适的内部编码,通过OB...

2019-02-13 18:44:56 190

原创 第一章 认识Redis 【Redis入门教程】

文章目录简介特性速度快持久化多种数据结构多语言客户端功能丰富主从复制高可用和集群安装和启动Redis入门教程目录:【Redis入门教程目录】简介Redis是由C语言编写的开源、基于内存、支持多种数据结构、高性能的Key-Value数据库。特性速度快首先Redis是将数据储存在内存中的,通常情况下每秒读写次数达到千万级别。其次Redis使用ANSI C编写,因为C语言接近操作系统,所以...

2019-02-09 11:14:49 167

原创 QQ TEA加密算法 JAVA实现

TeaUtil.java:import java.io.ByteArrayOutputStream;import java.util.Random;/** * 加密解密QQ消息的工具类. QQ消息的加密算法是一个16次的迭代过程,并且是反馈的,每一个加密单元是8字节,输出也是8字节,密钥是16字节 * 我们以prePlain表示前一个明文块,plain表示当前明文块,crypt表...

2019-02-07 15:36:28 2141

原创 Shiro和Spring MVC、Mybatis整合教程

文章目录前言Shiro四大功能认证授权会话管理加密Shiro三大核心概念Subject主体Security Manager安全管理器Realms域Spring、Spring MVC、Mybatis、Shiro集成项目目录添加依赖包创建数据库和实体类Dao层service层controller层配置文件测试总结前言Apache Shiro 是Java的安全框架,提供了认证(Authentica...

2019-02-03 00:14:48 221

原创 Shiro身份验证抛出AuthenticationException异常,解决方案

## 问题在学习Shiro的时候,遇到Shiro抛出`org.apache.shiro.authc.AuthenticationException`异常,完整异常如下:```org.apache.shiro.authc.AuthenticationException: Authentication failed for token submission [org.apache.shiro....

2019-02-01 22:40:42 39332 6

原创 Shiro抛出异常UnavailableSecurityManagerException

Shiro报错org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.ThreadContext or as a vm static singleton. Thi...

2019-02-01 19:30:44 605

原创 Spring+Tomcat+WebSocket教程 附源码

文章目录前言项目目录添加依赖包WebSocket实现Spring实现WebSocketTomcat实现WebSocketJetty实现WebSocket总结前言我们知道HTTP协议是无状态、无连接的,采用的是请求/响应模式,通信请求只能由客户端发起,服务器响应。这种请求/响应模式在客户端服务器需要持续的交互时候就显得很鸡肋,在HMTL5出来之前,要实现客户端服务器持续交互大多数都是通过AJAX...

2019-01-20 17:07:08 1223

原创 我是如何一步步解决问题 让Spring MVC返回HTML类型的视图

文章目录前言遇上问题问题分析遇上新问题拨开云雾见月明总结参考文章前言这两天在折腾SSM,在捣鼓Spring MVC的时候,我想让Spring MVC的前端控制器(DispatcherServlet)给用户返回的是HTML类型的视图而不是JSP类型的视图,于是我按照常规的思路,把Spring MVC配置文件里面的视图解析器配置修改成HTML后缀的,然后就遇上了各种问题了…当然这些问题也都是我对...

2018-12-25 20:25:24 6448 7

原创 【技术杂谈】RPC和RESTful API入门篇

前言这两天在和同学谈到RPC、RESTful时候发现自己对这两者并不是很理解,于是查阅了网上相关资料加上自己的理解写下本篇文章以加深印象,由于本人水平有限,若对这两者的理解有不妥之处望指出。什么是REST和RESTful在认识RESTful之前,我们先科普一下REST。RESTREST即Representational State Transfer的缩写,是基于HTTP协议之上的一组约...

2018-12-19 15:54:06 1852

原创 【Java】SSM框架整合 附源码

前言前面已经介绍Spring和Mybatis整合,而本篇介绍在IDEA下Spring、Spring MVC、Mybatis(SSM)三个框架的整合,在阅读本篇之前,建议大家先去了解一下Spring、Spring MVC、Mybatis(三大框架基础入门传送门),会达到事半功倍的效果。至于Spring MVC相对于Servlet、JSP的优点这里就不累赘了,大家可以上网查阅相关资料。本篇注重整合...

2018-12-16 17:59:48 2519

原创 【Java】Spring和Mybatis整合

文章目录前言项目目录添加依赖包创建数据库和数据表新建数据表对应的实体类新建Mapper.xml文件和Mapper接口Mybatis配置文件Spring配置文件配置数据源配置Mybatis的SqlSessionFactory配置Mybatis数据映射器Mapper通过指定Mapper的接口注册相应的Bean通过扫描指定包批量将Mapper的接口并注册相应的Bean测试类前言在很多项目中,Myb...

2018-12-03 17:33:22 206

原创 【Java】Mybatis mapper动态代理方式

文章目录前言Mapper接口规范实现过程配置Mapper.xml配置Mapper.java接口编写Mybatis配置文件测试类前言我们在使用Mybatis的时候,获取需要执行的SQL语句的时候,都是通过调用xml文件来获取,例如:User user = (User) sqlSession.selectOne("cn.ddnd.www.Entity.User.getUser", "xue8@q...

2018-11-30 23:19:22 569

原创 【Java】Mybatis接口注解实现映射

title: Mybatis接口注解实现映射date: 2018-11-30 15:50:28categories: Mybatistags:Mybatis前言上一篇文章介绍了xml文件映射SQL语句,即User user = (User) sqlSession.selectOne("cn.ddnd.www.Entity.User.getUser", "[email protected]...

2018-11-30 16:37:30 1203

原创 【Java】Mybatis实现数据库操作

文章目录前言项目结构添加依赖包创建Mybatis配置文件创建数据库和数据表新建数据表对应的实体类新建User类的对应映射层测试类前言什么是Mybatis?维基百科是这样定义的:Mybatis是一个Java持久化框架,它通过XML描述符或注解把对象与储存过程或SQL语句关联起来。通俗点说就是Mybatis是对JPA(Java持久化API,一个Java应用程序接口规范)的实现,是为了简化数据库操...

2018-11-30 13:46:13 1841

原创 【Java】Spring和Tomcat自带的连接池实现数据库操作

文章目录前言创建数据库创建实体类数据访问对象(DAO)模式UserDao接口UserDao接口的实现数据源配置装配Bean测试类前言虽然【JAVA】Spring和JdbcTemplate实现数据库操作和【JAVA】Srping和传统JDBC实现数据库操作都能实现对数据库的操作,但是这些都是使用的直连的数据源,并发小的时候还能应付过来,但是并发大了这种直连的数据源方式就不是很好的解决方案了,这时...

2018-11-26 20:49:52 2119

原创 【JAVA】Spring和JdbcTemplate实现数据库操作

文章目录前言创建数据库创建实体类数据访问对象(DAO)模式UserDao接口UserDao接口的实现数据源配置装配Bean测试类前言看完【JAVA】Srping和传统JDBC实现数据库操作之后,是否觉得传统的JDBC太繁琐了,就算是只写一个简单的数据库插入功能都要写好多与业务无关的代码,那么使用spring封装的JdbcTemplate就很有必要了,当然JdbcTemplate也是直连的数据源...

2018-11-17 18:38:20 4175

原创 【JAVA】Srping和传统JDBC实现数据库操作

文章目录前言创建数据库创建实体类数据访问对象(DAO)模式UserDao接口UserDao接口的实现前言学习完了【JAVA】Spring对JDBC的支持和【JAVA】JAVA数据源之后,那我们就可以进行数据库的操作了。创建数据库首先创建我们的数据库(这里我使用的是Mysql),为了演示方便,我这里简单的创建一个spring数据库,然后数据库有一个user用户表:创建一个名为spring...

2018-11-17 15:47:30 382

原创 【JAVA】JAVA数据源

文章目录前言连接池、数据源、JNDI连接池、数据源连接池思想JNDI直连数据源前言我们在进行数据访问,声明模板和repository之前【JAVA】Spring对JDBC的支持,都需要配置数据源用来连接数据库。数据源又可以分为两大类:直连的数据源 和 连接池的数据源 ,其中连接池的数据源又有多种,接下来就让我们来学习一下这两种数据源。当然在学习之前,我们首先需要知道连接池、数据源、JNDI是什...

2018-11-16 15:09:19 11251

原创 【JAVA】Spring对JDBC的支持

文章目录引言Spring的数据访问哲学数据访问模板引言企业应用程序经常要访问存储在数据库中的信息,因此JDK提供了一个标准接口 JDBC(Java DataBase Connection,Java数据库连接)来进行数据库访问操作。JDBC为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包含一些通用的接口类,所以真正的数据库访问操作实现是由各自数据库厂商提供...

2018-11-15 15:20:38 634

原创 【设计模式】MVC模式与三层架构关系

前言对于许多新手都不明白MVC模式和三层架构的关系,本人也是,特地整合了网上的一些文章对MVC模式和三层架构的关系进行介绍,希望对大家有帮助。关于三层架构在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。表示层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他...

2018-11-14 18:48:19 1309

原创 【JAVA】Spring 注解自动装配Bean

Spring 注解自动装配Bean引言新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入引言上文:【JAVA】...

2018-11-11 22:06:09 693

原创 【JAVA】Spring自动装配Bean实现hello world

   通过xml配置自动装配Bean1.创建一个简单的类test,作为被调用的Spring Bean。package cn.zhenta.www.service.impl;public class test{ private String sex; public void setSex(String sex) { this.sex = ...

2018-11-10 18:13:26 563

原创 【JAVA】接口的引用

  最近在学习java的过程中,遇到了一下代码。代码1:public interface Handler{ public void Hello();}代码2:import Handler;public class OtherParser{ Handler handler;......}代码1说明了Handler是一个接口了,既接口不能直接实例化,必须经过实现类继...

2018-11-09 15:38:22 6661

转载 【JAVA】JAVA数据源连接方式汇总

最近在研究JAVA的数据源连接方式,学习的时候发现了一位同行写的文章,转载过来,留作记录! 一、问题引入在java程序中,需要访问数据库,做增删改查等相关操作。如何访问数据库,做数据库的相关操作呢? 二、Java连接数据库方法概述java.sql提供了一些接口和类,用于支持数据库增删改查等相关的操作。该jar包定义了java访问各种不同数据库(mysql,oracle,sq...

2018-11-07 22:31:14 653

原创 【Spring MVC】 错误: 找不到或无法加载主类 解决方法

最近在学习Spring,在学习SpringMVC过程中,将web.xml、Dispatcher-servlet.xml、applicationContext.xml等配置完成之后,却不懂如何部署项目到tomcat,如果直接运行的话则出现:错误: 找不到或无法加载主类 cucumber.api.cli.Main然后网上搜索了许多,都是说缺少依赖的,但是实则不然,原因是没有配置项目部署到...

2018-11-01 16:32:31 4543 2

原创 【CSS】纯CSS另类思路代替display、visibility解决子菜单延迟消失

  在设计子菜单时候,需要实现当鼠标移动到菜单时候,子菜单显示,否则子菜单都处于隐藏状态。实现这个功能使用js的话很简单实现,但是我想用纯CSS,使用纯CSS的话,就会遇到鼠标移开菜单后,子菜单就马上消失了(display:noe或者visibility:hidden),就鼠标还没移动到子菜单部分,子菜单就消失了,无法操作到子菜单。如下图的:当鼠标移动到A时候,B子菜单出现,且B子菜单有足够的显示...

2018-10-13 21:06:36 1769 1

C#+SQL Server工资管理系统

C#+SQL Server工资管理系统,包含员工管理、部门管理、出勤管理、代扣管理、工资管理

2018-07-03

易语言POST编程助手1.7

易语言POST编程助手1.7,可以直接解析json,调试json等,是很好的工具

2017-10-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除