自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(240)
  • 资源 (28)
  • 收藏
  • 关注

原创 基于Netty的坦克大战网络版本

本游戏是根据马士兵老师的坦克大战网络版本改编的,由于刚学了netty,强行用netty进行网络传输,马老师是利用基础的socket 和udp 来通信的,netty版本 4.1.6.Final (已经放在lib 文件夹下)。快速启动1)运行服务端TankServer类的main方法 2)运行客户端TankClient类的main方法,然后在键盘上输入C, 弹出窗口提示输入ip, tcp...

2018-08-18 17:58:21 772

转载 使用Redis实现积分排行榜,并支持同积分按时间排序

排行榜这个功能很常见,多用于激励用户活跃和拉新,比如CSDN平台实现的周榜,按照每周文章总阅读量进行排名,用排名和奖品激励用户持续在平台上输出高质量内容。 最近笔者也做了一个积分排行榜的功能,在某些场景下我们需要处理同分排名问题。 如张三和李四、王五等人的积分都是100,我们需要实现按最先达到100积分的顺序对他们进行排名,也就是需要按时间排名。 使用Redis实现实时更新的排行榜并不难,Redis提供的ZSet数据结构就很适合用于实现排行榜,但如何实现...

2022-05-29 17:54:05 2736 3

转载 redis实现积分排行榜

在项目开发中常常遇到一些积分排行的问题。一个典型的积分行榜包括以下常见功能:能够记录每个用户的分数;能够对用户的分数进行更新;能够查询每个用户的分数和名次;能够按名次查询排名前N名的用户;能够查询排在指定用户前后M名的用户;因为排行榜的实时性,所以这个需要在第一时间进行查询并展示。由于一个用户的名次上升x位将会引起x+1位用户的名次发生变化(包括该用户),如果采用传统数据库(比如MySQL)来实现排行榜,当用户人数较多时,将会导致对数据库的频繁修改,从而降低数据库的性能。所以只能另辟蹊径,来

2022-05-29 17:44:55 1134

原创 打印正整数n拆分的所有情况

题目:把一个正整数n拆分成若干个正整数的相加,列出所有组合 例如:4=44=1+3=2+24=1+1+24=1+1+1+1动机:网上有好多解答,大部分都是给出拆分结果的个数,不能把把每一种的情况打印出来,或者效率低,本人接触这个题目很久了,最近心血来潮想搞定它,嘿嘿思路一:设置一个递归方法recursive(int last, int curSum, int n),该方法包含以下几个...

2019-12-31 11:12:10 1639

原创 巧计纳音

天干 甲 丙 戊 庚 壬乙 丁 己 辛 癸指数 1 2 3 4 5地支 子丑 寅卯 辰巳午未 申酉 戌亥指数 1 2 3纳音五行属性的指数 木 金 水 火 土 1 2 3 4 ...

2019-07-29 14:54:34 224

转载 请教一个AWK处理两个文件公共字段结合的题目

在文件score.txt中存有如下数据:(姓名 分数)lisi 88bokeyuan 97zhangsan 77wangwu 89hongliu 92zhanghua 97在文件student.txt中存有:zhangsanhongliu使用awk, cut, grep, find等任意shell脚本,输出student.txt所有学生的分数,即输出:zhangsan 77...

2019-07-04 11:57:07 304

转载 finally代码块一定会执行吗?

可不能小看这个简单的 finally,看似简单的问题背后,却隐藏了无数的玄机。接下来我就带您一步一步的揭开这个 finally 的神秘面纱。问题分析首先来问大家一个问题:finally 语句块一定会执行吗?很多人都认为 finally 语句块是肯定要执行的,其中也包括一些很有经验的 Java 程序员。可惜并不像大多人所认为的那样,对于这个问题,答案当然是否定的,我们先来看下面这个例子。清单...

2019-07-03 15:35:19 901

转载 java注解的自定义和使用

小伙伴们。今天我们来说说注解、标志@ 。针对java不同版本来说,注解的出现是在jdk1.5 但是在jdk1.5版本使用注解必须继续类的方法的重写,不能用于实现的接口中的方法实现,在jdk1.6环境下对于继续和实现都是用。jdk1.5版本内置了三种标准的注解:@Override,表示当前的方法定义将覆盖超类中的方法。@Deprecated,使用了注解为它的元素编译器将发出警告,因为注解@De...

2019-05-17 14:45:53 314

转载 HashMap

https://www.cnblogs.com/xiaoxi/p/7233201.html前面对于HashMap在jdk1.8中元素插入的实现原理,进行了详细分析,具体请看:HashMap之元素插入。文章发布之后,有一位朋友问了这么一个问题:“jdk1.7中采用头插入,为什么jdk1.8中改成了尾插入?”。有人说这就是java大神随性而为,没什么特殊的用处。当时因为没仔细看过1.7的源码,所以不...

2019-03-12 15:12:53 126

转载 实现多重继承

多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承。有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时候我们往往需要思考的不是怎么使用多重继承,而是您的设计是否存在问题.但有时候我们确实是需要实现多重继承,而且现实生活中也真正地存在这样的情况,比如遗传:我们即继承了父亲的行为和特征也继承了母亲的行为和特征。可幸的...

2019-03-10 20:16:13 596

转载 深入剖析ThreadLocal

一、对ThreadLocal的理解ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。这句话从字面上看起来很容易理解,但是真正理解并不是那么容易。ThreadLocal的官方API解释为:“该类提供了线程局部 (thread-local...

2019-03-10 15:05:18 146

转载 ReentrantReadWriteLock读写锁详解

一、读写锁简介现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源;但是如果一个线程想去写这些共享资源,就不应该允许其他线程对该资源进行读和写的操作了。针对这种场景,JAVA的并发包提供了读写锁ReentrantReadWriteLock,它表示两个锁,一个是读操作相关的锁,称...

2019-03-09 22:28:06 127

转载 Java并发编程:线程池的使用

在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的效果。今天我们就来...

2019-03-09 21:13:41 158

转载 Java多线程之ReentrantLock与Condition

一、ReentrantLock1、ReentrantLock简介 ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。此外,它还提供了在激烈争用情况下更佳的性能。(换句话说,当许多线程都想访问共享资源时,JVM ...

2019-03-09 17:23:02 190

转载 log4j.properties 详解与配置步骤

<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-db05db230f.css"&amp

2019-01-22 22:51:57 114

转载 Log4j,Log4j2,logback,slf4j日志学习

<div id="content_views" class="markdown_views"> <!-- flowchart 箭头图标 勿删 --> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">&

2019-01-22 22:47:30 294

转载 slf4j与log4j、log4j2

  最近公司项目系统需要将日志从log4j+slf4j升级为log4j2,然后彻彻底底的把它们研究了一遍,在网上查找相关资源,发现并没有一篇文章能够很完整的把它们之间的关联和区别写出来,所以我在这里做一个总结。log4j    如果在我们系统中单独使用log4j的话,我们只需要引入log4j的核心包就可以了,我这里用的是:log4j-1.2.17.jar,然后在系统中使用如下代码输出日志:...

2019-01-22 21:21:38 313

转载 log4j2配置文件log4j2.xml配置详解

一、背景        最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置,以及log4j2配置文件的详解。本文就专门来讲解下log4j2.xml配置文件的各项标签的意义。 二、配置全解 1.关于配置文件的名称以及在项目中的存放位置        log4j 2.x版本不再支持像1.x中的.proper...

2019-01-22 20:46:38 1121

原创 工作总结

1.工作内容        一些活动的统计报表、数据表迁移、小米贷款广告、三方券、ELK接入、定时营销任务、子营销任务任务。2.收获        深刻地认识到自身的缺点与不足,包含但不限于知识和沟通层面上。自己的性格有了很大的改观,变得比较严谨,意志力变得比较坚强。对javaWeb有了进一步的理解。3.明年的计划      成为能独当一面的人。 ...

2018-12-25 08:26:06 113

原创 新年总结

1.工作内容 一些活动的统计报表、数据表迁移、小米贷款广告、三方券、ELK接入、定时营销任务、子营销任务任务。2.收获 深刻地认识到自身的缺点与不足,包含但不限于知识和沟通层面上。自己的性格有了很大的改观,变得比较严谨,意志力变得比较坚强。对javaWeb有了进一步的理解。3.明年的计划 成为能独当一面的人。...

2018-12-25 08:23:19 139

转载 spring中crontab定时器 的表达式

一个crontab表达式有至少6个(也可能7个)有空格分隔的时间元素。按顺序依次为:秒 (0~59)分钟 (0~59)小时 (0~23)天(月) (0~31,但是你需要考虑你月的天数)月 (0~11)天(星期 (1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)年份 ...

2018-11-13 14:51:50 238

原创 matlab2018 Ubuntu 破解

1 sudo cp -f ~/tools/Matlab2018a/Matlab2018aLinux64Crack/R2018a/bin/glnxa64/matlab_startup_plugins/lmgrimpl/libmwlmgrimpl.so /usr/local/MATLAB/R2018a/bin/glnxa64/matlab_startup_plugins/lmgrimpl2. ...

2018-09-07 10:47:20 2052

转载 MSSQL、MySQL 数据库删除大批量千万级百万级数据的优化

SQL Server上面删除1.6亿条记录,不能用Truncate(因为只是删除其中少部分数据)。 经过实验,每次删除400万条要花1.5 - 3小时,而且是越到后面越慢,正常的话,需要大约102个小时,大约4天半时间。这在生产环境下是不能接受的。经过一个处理之后,我每次删除400万条记录花5 - 6分钟,删除全部1.6亿条记录花了4 - 5个小时!为什么??每次删除记录,数据库都要...

2018-09-05 10:33:11 2824

原创 删除流氓 cygwin

折腾了好几次,这次终于把cygwin这个文件夹删除了,把下面这个批处理文件保存为.bat文件,执行完毕后就可以手动删除cygwin了,记得换成你自己的cygwin所在的文件目录路径哦。SET DIRECTORY_NAME="F:\cygwin"C:\windows\system32\TAKEOWN /f %DIRECTORY_NAME% /r /d yC:\windows\system32...

2018-08-12 23:16:06 1188

原创 Netty UDP通信Demo

1.服务端代码package udp;import io.netty.bootstrap.Bootstrap; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.channel....

2018-08-12 16:42:12 13822 1

转载 在Intellij IDEA中使用Debug

目录一、Debug开篇二、基本用法&快捷键三、变量查看四、计算表达式五、智能步入六、断点条件设置七、多线程调试八、回退断点九、中断Debug十、附:JRebel激活   Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。...

2018-08-01 21:22:47 189

转载 浅谈 Linux下的零拷贝机制

什么是零拷贝维基上是这么描述零拷贝的:零拷贝描述的是CPU不执行拷贝数据从一个存储区域到另一个存储区域的任务,这通常用于通过网络传输一个文件时以减少CPU周期和内存带宽。零拷贝给我们带来的好处:减少甚至完全避免不必要的CPU拷贝,从而让CPU解脱出来去执行其他的任务减少内存带宽的占用通常零拷贝技术还能够减少用户空间和操作系统内核空间之间...

2018-07-29 00:19:04 226

转载 netty源码分析(二十五)Netty自定义协议与TCP粘包拆包问题解决之道

上一节说了TCP的粘包和拆包,用一个实例的方式做了说明,那么在netty里面是怎么解决粘包和拆包问题呢,这就需要编解码器,我们写一个简单的自动以协议的demo,说明一下编解码器在解决tcp粘包和拆包的解决方式。 先罗列一下服务端的代码: MyServer负责服务端的启动:public class MyServer { public static ...

2018-07-29 00:18:04 893 5

转载 netty源码分析(二十四)TCP粘包与拆包实例演示及分析

关于粘包与拆包的概念这里不再熬术,下面举一个粘包的例子: 客户端启动的时候向服务端写入了10条消息,然后服务端接收到消息之后,回写客户端一条UUID,客户端打印服务端发过来的UUID MyServer:public class MyServer { public static void main(String[] args) throws I...

2018-07-29 00:17:49 255

转载 netty源码分析(二十三)ReplayingDecoder源码分析与特性解读以及其他编解码器介绍

在介绍ReplayingDecoder之前 想看一下它的用法,构建一个服务端和客户端的模型: 服务端:public class MyServer { public static void main(String[] args) throws InterruptedException { EventLoopGroup bossGr...

2018-07-29 00:17:40 240

转载 netty源码分析(二十二)Netty编解码器剖析与入站出站处理器详解

Netty处理器重要概念: 1、Netty的处理器可以分为两类:入栈处理器和出栈处理器。 2、入栈处理器的顶层是ChannelInboundHandler,出栈处理器的顶层是ChannelOutboundHandler。 3、数据处理时常用的各种编解码器本质上都是处理器。 4、编解码器:无论我们是向网络中写入数据是什么类型(int、char、String、...

2018-07-29 00:17:31 305

转载 netty源码分析(二十一)Netty数据容器ByteBuf底层数据结构深度剖析与ReferenceCounted初探

ByteBuf ByteBuf是Netty提供的代替jdk的ByteBuffer的一个容器,首先看一下他的具体用法:public class ByteBufTest0 { public static void main(String[] args) { ByteBuf byteBuf = Unpooled.buffer(10);/...

2018-07-29 00:17:24 318

转载 netty源码分析(二十)NIO堆外内存与零拷贝深入讲解

ByteBuffer byteBuffer = ByteBuffer.allocateDirect(512); 直接内存:返回DirectByteBuffer对象,DirectByteBuffer的父类是MappedByteBuffer ,MappedByteBuffer 的父类是ByteBuffer , 在ByteBuffer的上边是Buffer,在 ...

2018-07-29 00:17:16 281

转载 netty源码分析(十九)Netty项目开发过程中常见且重要事项分析

一、服务端在回写数据到客户端的时候可以有一下2中方式: 在Netty中有22种发送消息的方式,可以直接写到Channel中,也可以写到与ChannelHandler所关联的那个ChannelHandlerContext中,对于前一种方式来说,消息会从ChannelPipeline的末尾开始流动,对于后一种方式来说,消息将从ChannelPipleline中...

2018-07-28 00:06:35 418

转载 netty源码分析(十八)Netty底层架构系统总结与应用实践

一个EventLoopGroup当中会包含一个或多个EventLoop。一个EventLoop在它的整个生命周期当中都只会与唯一一个Thread进行绑定。所有由EventLoop所处理的各种I/O事件都将在它所关联的那个Thread上进行处理。一个Channel在它的整个生命周期中只会注册在一个EventLoop上。一个EventLoop在运行过程中,会...

2018-07-28 00:06:29 3559

转载 netty源码分析(十七)Netty线程模型深度解读与架构设计原则

上次分析到:public abstract class SingleThreadEventLoop extends SingleThreadEventExecutor implements EventLoop public ChannelFuture register(final ChannelPromise promise) { ...

2018-07-28 00:06:23 266

转载 netty源码分析(十六)Channel选择器工厂与轮询算法及注册底层实现

上一节说到注册的入口,即 MultithreadEventLoopGroup: public ChannelFuture register(Channel channel) { return next().register(channel); }123注册channel第一步调用了next()方法,next()是Multit...

2018-07-28 00:06:17 312

转载 netty源码分析(十五)Channel注册流程深度解读

前边的介绍是netty对一些组件初始化的过程,接下来是第二部分,注册,还是之前的initAndRegister方法: final ChannelFuture initAndRegister() { Channel channel = null;...略 channel = channelFactory.new...

2018-07-28 00:05:53 360

转载 netty源码分析(十四)Netty初始化流程总结及Channel与ChannelHandlerContext作用域分析

我们回到ServerBootstrap的init方法,之前介绍过Attribute的设置,那么Attribute的具体设置是怎样的呢: void init(Channel channel) throws Exception { final Map<ChannelOption<?>, Object> options ...

2018-07-28 00:03:49 573

转载 netty源码分析(十三)Netty核心四大组件关系与构建方式深度解读

上一节主要看了一下ChannelHandlerContext,中间我们走到DefaultChannelPipeline的addLast方法,这一节我们从addLast方法切入: 其中group为null,name为nullpublic class DefaultChannelPipeline implements ChannelPipeline {.....

2018-07-28 00:03:01 774

spring整合redis小demo

本资源的功能是利用spring整合redis,进行了基本的操作,具体见博客地址 https://blog.csdn.net/u012150590/article/details/79862294

2018-04-09

基于Eclipse、Maven搭建SSM

基于Eclipse、Maven搭建SSM,数据库为mysql,实现了一个简单的查询功能。

2018-03-31

Groovy插件,适合Eclipse4.7 版本

在线下了好久都没成功,终于用离线版安装搞定了,哈哈哈

2018-03-29

dubboHello-master

dubbo和zookeeper,eclipse,maven搭建的一个微服务架构。

2018-03-13

dubbo/zookeeper

这个压缩文件包括zookeeper和dubbo,可以完美运行,好好享受吧。详情去我的博客寻找 http://blog.csdn.net/u012150590

2018-03-13

JavaFX快速入门Demo

JavaFX快速入门Demo,快速搭建自己的UI界面,快速熟悉JAVAFX开发。

2017-12-28

架构师特刊:深入浅出Netty.pdf

最近几年,Netty社区的发展如火如荼,无论是大数据领域,还是微服务架构,底层都需要一个高效的分布式通信框架作为基础组件。 Netty凭借优异的性能、灵活的可扩展新得到了广泛的应用。短短几年间,Netty已经成为众多Java高性能异步通信框架的首选

2017-12-24

Netty5.0架构剖析和源码解读.pdf

NIO通信框架Netty相关博文,李林峰老师的,有架构剖析和源码解读。

2017-12-24

mysql5.5 绿色精简版

精简版的MYSQL,安装好后82M,哈哈,装完整版需要花费好多的存储空间

2017-12-09

收银系统JSP

jsp实现的收银系统,我做的部分是商品资料和货流两个模块

2017-04-18

jquery实现的柱状图页面

静态柱状图网页

2017-04-02

Java版剑指Offer全部测试用例

花了我太多心血了,全是JAVA版本的,每一个都有测试用例,你们好好享受吧

2016-07-20

JSP+Servlet+Tomcat应用开发从零开始学修正版

JSP+Servlet+Tomcat应用开发从零开始学 这本书给的源码项目很多功能不能实现,我基本上都实现了,唯一还没实现的是立即购买的问题,其实只需要在前端把那个控件不显示就行,数据库脚本也有,做完后我不敢独享,希望能帮助那些买了这本书却不能运行出该项目的人,哈哈,我也是个菜鸟,希望一起进步。。。

2016-06-02

minGW离线安装版

minGW离线安装版

2016-05-18

Eclipse空格上屏问题

解决Eclipse空格上屏问题

2016-05-18

带括号的四则运算表达式js实现

输入一个字符串形式的四则运算表达式,如"1.0+2.1*(3+4)" 直接谈出结果,输入在文件底部,自己写的。思路是先把中缀表达式转成后缀表达式,然后根据后缀表达式建立一个栈求出结果

2016-04-29

音频格式器

万能的音频格式转换器,包含DVD转换成其他格式,太牛逼了,好软件值得收藏

2015-11-10

月出月落时间js

月出月落时间计算,js版的,在浏览器直接运行

2015-10-29

jsp ajax 文件上传(包含图片)

网上找了好多jsp ajax上传好多都用不了,我自己摸索了一番,终于搞出来了,意义就在于ajax的异步刷新,如果用表单上传必须要跳转页面,废话不多说了,里面有图有真相。在这里我说明一下,我举得例子是即时上传头像功能,记住,只能显示服务器上的图片,所以你的图像路径为服务器的路径,例如我的是img/wenjianming.jpg,看到了吧,img就是webcontent的一个文件夹,我把文件上传到这个文件夹所映射的另一个img,有javaweb基础的人都明白代码运行时所有文件都会映射到服务器,说简单一点吧,所映射的img在我的电脑路径为F:\liuyan00\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\upload\img,图片内也有,好好学习吧

2015-10-29

ajax jsp 文件上传

ajax jsp servlet 文件上传

2015-10-29

js jsp 文件上传

js 实现文件上传,该项目是javaweb项目,下载下来直接导入eclipse,在D盘创建一个upload文件夹,就可以接收到上传的文件了

2015-10-16

jquery 复选框 全选,全不选

jquery 复选框 全选,全不选,在同一个按钮实现,格式是html

2015-09-07

带下拉菜单的选项卡html

带下拉菜单的选项卡html,打开该页面就可以知道

2015-09-01

计算月出月落时间

根据经纬度时间算出月出月落时间,三个版本,C,JAVA,HTML,敬请笑纳。

2015-09-01

websocket 多人聊天室 网页版

javaweb 实现的多人聊天系统,代码中相应的url改成你自己的就可以了,直接导入myeclipse就可以运行

2015-07-18

JSP+Servlet+Tomcat应用开发从零开始学

JSP+Servlet+Tomcat应用开发从零开始学 这本书给的源码项目很多功能不能实现,我基本上都实现了,唯一还没实现的是立即购买的问题,其实只需要在前端把那个控件不显示就行,数据库脚本也有,做完后我不敢独享,希望能帮助那些买了这本书却不能运行出该项目的人,哈哈,我也是个菜鸟,希望一起进步。。。

2015-07-11

django 1.8通讯录 增删改查登陆注册

亲自做的,可以用,数据库可以根据自己的需要改,只需要同步一下就可以了

2015-04-25

安卓模拟器上实现的通信录源码带项目

可以在安卓模拟器上运行出来的资源,带完整的项目,在Eclipse直接导入即可运行

2014-10-16

空空如也

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

TA关注的人

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