<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[rmnjava的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/rmnjava</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; rmnjava]]></copyright><item><title><![CDATA[jquery weui 图片浏览器Photo Browser 如何使用？]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/100139828</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/100139828</guid><author>rmnjava</author><pubDate>Thu, 29 Aug 2019 15:59:25 +0800</pubDate><description><![CDATA[对应组件地址：http://jqweui.com/extends#swiper

先说说业务场景：类似朋友圈这样的布局效果，点击小图可以浏览大图，并支持大图左右切换，效果图如下（加了滚动加载更多的操作在里面）：



重点说明：该引入的js和swiper.js 都需要引入进去


&lt;script src="../../res/js/jquery-2.1.4.js"&gt;&lt;/scrip...]]></description><category></category></item><item><title><![CDATA[什么时候使用CountDownLatch]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/88050483</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/88050483</guid><author>rmnjava</author><pubDate>Fri, 01 Mar 2019 10:28:50 +0800</pubDate><description><![CDATA[本文由ImportNew-张涛翻译自howtodoinjava。欢迎加入翻译小组。转载请见文末要求。

正如每个Java文档所描述的那样，CountDownLatch是一个同步工具类，它允许一个或多个线程一直等待，直到其他线程的操作执行完后再执行。在Java并发中，countdownlatch的概念是一个常见的面试题，所以一定要确保你很好的理解了它。在这篇文章中，我将会涉及到在Java并...]]></description><category></category></item><item><title><![CDATA[限时订单实现方案（DelayQueue、ActiveMq）]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/85274153</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/85274153</guid><author>rmnjava</author><pubDate>Thu, 27 Dec 2018 10:53:46 +0800</pubDate><description><![CDATA[一、在各种电商网站下订单后会保留一个时间段，时间段内未支付则自动将订单状态设置为已过期。

 



 

二、解决方案

    1、轮询数据库：实现一个定时器，每隔一段时间去检查一遍数据库里的所有订单，查看其状态是否是未支付并且已经到期。并修改这些数据的状态为已过期。

    优点：方法简单，容易实现

    缺点：订单状态处理不及时，轮询数据库的次数中可能很多都并没有修改订单（做的无用功...]]></description><category></category></item><item><title><![CDATA[java并发之DelayQueue实际运用示例]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/85249582</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/85249582</guid><author>rmnjava</author><pubDate>Tue, 25 Dec 2018 16:07:36 +0800</pubDate><description><![CDATA[在学习Java 多线程并发开发过程中，了解到DelayQueue类的主要作用：是一个无界的BlockingQueue，用于放置实现了Delayed接口的对象，其中的对象只能在其到期时才能从队列中取走。这种队列是有序的，即队头对象的延迟到期时间最长。注意：不能将null元素放置到这种队列中。

Delayed，一种混合风格的接口，用来标记那些应该在给定延迟时间之后执行的对象。此接口的实现必须定义一个...]]></description><category></category></item><item><title><![CDATA[java读取文件和写入文件的方式]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/85243925</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/85243925</guid><author>rmnjava</author><pubDate>Tue, 25 Dec 2018 10:27:31 +0800</pubDate><description><![CDATA[java代码


public class ReadFromFile {  
    /** 
     * 以字节为单位读取文件，常用于读二进制文件，如图片、声音、影像等文件。 
     */  
    public static void readFileByBytes(String fileName) {  
        File file = new File(fileName);...]]></description><category></category></item><item><title><![CDATA[【LeetCode】178.分数排名]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/83506194</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/83506194</guid><author>rmnjava</author><pubDate>Mon, 29 Oct 2018 15:18:37 +0800</pubDate><description><![CDATA[编写一个 SQL 查询来实现分数排名。如果两个分数相同，则两个分数排名（Rank）相同。请注意，平分后的下一个名次应该是下一个连续的整数值。换句话说，名次之间不应该有“间隔”。


+----+-------+
| Id | Score |
+----+-------+
| 1  | 3.50  |
| 2  | 3.65  |
| 3  | 4.00  |
| 4  | 3.85  |
| 5 ...]]></description><category></category></item><item><title><![CDATA[springMVC+ Mybatis 配置多数据源]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/82185472</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/82185472</guid><author>rmnjava</author><pubDate>Wed, 29 Aug 2018 16:32:59 +0800</pubDate><description><![CDATA[如何在一个web项目中使用两个数据源，并且不同的接口可以按需选择数据库。

使用Spring提供的AbstractRoutingDataSource类来根据请求路由到不同的数据源。具体做法是
先设置两个不同的dataSource代表不同的数据源，再建一个总的dynamicDataSource，根据不同的请求去设置dynamicDataSource。代码如下：

配置文件spring-mybatis...]]></description><category></category></item><item><title><![CDATA[线程之间的通信]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/82148808</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/82148808</guid><author>rmnjava</author><pubDate>Tue, 28 Aug 2018 15:37:48 +0800</pubDate><description><![CDATA[一、为什么要线程通信？

 

 1. 多个线程并发执行时, 在默认情况下CPU是随机切换线程的，当我们需要多个线程来共同完成一件任务，

　　 并且我们希望他们有规律的执行, 那么多线程之间需要一些协调通信，以此来帮我们达到多线程共同操作一份数据。

2.当然如果我们没有使用线程通信来使用多线程共同操作同一份数据的话，虽然可以实现，

　　但是在很大程度会造成多线程之间对同一共享变量的争夺，那样...]]></description><category></category></item><item><title><![CDATA[Spring Boot【快速入门】]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81909569</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81909569</guid><author>rmnjava</author><pubDate>Tue, 21 Aug 2018 16:25:42 +0800</pubDate><description><![CDATA[Spring Boot 概述


Build Anything with Spring Boot：Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible,...]]></description><category></category></item><item><title><![CDATA[nginx实现反向代理及负载均衡]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81303838</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81303838</guid><author>rmnjava</author><pubDate>Tue, 31 Jul 2018 15:15:22 +0800</pubDate><description><![CDATA[nginx实现反向代理及负载均衡

一、反向代理

1.什么是反向代理

 

通常的代理服务器，只用于代理内部网络对Internet的连接请求，客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求，最终达到客户机上网的目的（也就是正向代理）。

而反向代理（Reverse Proxy）方式是指以代理服务...]]></description><category></category></item><item><title><![CDATA[【Nginx】实现负载均衡的几种方式]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81303397</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81303397</guid><author>rmnjava</author><pubDate>Tue, 31 Jul 2018 14:54:12 +0800</pubDate><description><![CDATA[要理解负载均衡，必须先搞清楚正向代理和反向代理。

正向代理与反向代理【总结】

注：

正向代理，代理的是用户。
	反向代理，代理的是服务器
什么是负载均衡

当一台服务器的单位时间内的访问量越大时，服务器压力就越大，大到超过自身承受能力时，服务器就会崩溃。为了避免服务器崩溃，让用户有更好的体验，我们通过负载均衡的方式来分担服务器压力。

我们可以建立很多很多服务器，组成一个服务器集群，当用户访...]]></description><category></category></item><item><title><![CDATA[nginx 反向代理和负载均衡]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81303261</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81303261</guid><author>rmnjava</author><pubDate>Tue, 31 Jul 2018 14:49:06 +0800</pubDate><description><![CDATA[1.nginx负载均衡

　　网站的访问量越来越大，服务器的服务模式也得进行相应的升级，比如分离出数据库服务器、分离出图片作为单独服务，这些是简单的数据的负载均衡，将压力分散到不同的机器上。有时候来自web前端的压力，也能让人十分头痛。怎样将同一个域名的访问分散到两台或更多的机器上呢？这其实就是另一种负载均衡了，nginx自身就可以做到，只需要做个简单的配置就行。

　　nginx不单可以作为强大...]]></description><category></category></item><item><title><![CDATA[win7x64下的redis安装与使用]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81238993</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81238993</guid><author>rmnjava</author><pubDate>Fri, 27 Jul 2018 15:58:07 +0800</pubDate><description><![CDATA[先引用百度百科的一段话吧，具体可以到百科查看吧。

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库，并提供多种语言的API。从2010年3月15日起，Redis的开发工作由VMware主持。从2013年5月开始，Redis的开发由Pivotal赞助。

官方下载地址：http://redis.io/download，不过官方没有64...]]></description><category></category></item><item><title><![CDATA[从低版本的mysql导入到5.7以后的mysql会出现的问题，导入sql报错“Unknown error 1067”]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81236134</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81236134</guid><author>rmnjava</author><pubDate>Fri, 27 Jul 2018 14:05:12 +0800</pubDate><description><![CDATA[解决办法：

window系统下修改my.ini，
[mysqld] 下面添加
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
explicit_defaults_for_timestamp=1...]]></description><category></category></item><item><title><![CDATA[微信公众平台开发——微信授权登录（OAuth2.0）]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81203132</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81203132</guid><author>rmnjava</author><pubDate>Wed, 25 Jul 2018 15:05:03 +0800</pubDate><description><![CDATA[1、OAuth2.0简介

　　OAuth（开放授权）是一个开放标准，允许用户让第三方应用访问该用户在某一网站上存储的私密的资源（如照片，视频，联系人列表），而无需将用户名和密码提供给第三方应用。

　　允许用户提供一个令牌，而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站（例如，视频编辑网站)在特定的时段（例如，接下来的2小时内）内访问特定的资源（例如仅仅是某...]]></description><category></category></item><item><title><![CDATA[HashMap根据value获取key]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81198342</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81198342</guid><author>rmnjava</author><pubDate>Wed, 25 Jul 2018 10:55:53 +0800</pubDate><description><![CDATA[Map中是一个key有且只有一个value.

但是一个value可以对应多个key值.

一般都是通过key,然后map.get(key)获得到value.

如果想要反向想通过value获得key的值,提供一下两种方法:

方法一:


package cn.itcast.mapgetkey;

import java.util.ArrayList;
import java.util.Hash...]]></description><category></category></item><item><title><![CDATA[Git SSH密钥对生成以及多个SSH存在情况配置]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81180263</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81180263</guid><author>rmnjava</author><pubDate>Tue, 24 Jul 2018 10:36:40 +0800</pubDate><description><![CDATA[一、使用Git Bash 生成一个新的SSH密钥

1、 打开 Git Bash.



2、 邮箱设置
粘贴下面的文字，替换成为你自己的邮箱。

Github SSH


			1
			
			
			$ ssh-keygen -t rsa -b 4096 -C &quot;your_email@example.com&quot;
			
		Git SSH


			1
			
			
			$ ssh-key...]]></description><category></category></item><item><title><![CDATA[git生成SSH KEY公钥]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81178894</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81178894</guid><author>rmnjava</author><pubDate>Tue, 24 Jul 2018 09:47:49 +0800</pubDate><description><![CDATA[由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的，所以必须要让github仓库认证你SSH key，在此之前，必须要生成SSH key。

 

第1步：创建SSH Key。在windows下查看[c盘-&amp;gt;用户-&amp;gt;自己的用户名-&amp;gt;.ssh]下是否有id_rsa、id_rsa.pub文件，如果没有需要手动生成。
打开git bash，在控制台中输入以下命令。

gi...]]></description><category></category></item><item><title><![CDATA[带你通俗易懂的理解——线程、多线程与线程池]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81117819</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81117819</guid><author>rmnjava</author><pubDate>Thu, 19 Jul 2018 16:22:25 +0800</pubDate><description><![CDATA[进程与线程


	进程：进程就是正在执行的程序。
	
	
	线程：是程序执行的一条路径, 一个进程中可以包含多条线程。
	通俗理解：例如你打开微信就是打开一个进程，在微信里面和好友视频聊天就是开启了一条线程。
	
	
	两者之间的关系：
	一个进程里面可以有多条线程，至少有一条线程。
	一条线程一定会在一个进程里面。
	
关于进程与线程的讲解，这篇文章讲的挺好的--&amp;gt;进程与线程的一个简单解释...]]></description><category></category></item><item><title><![CDATA[java删除指定目录下一小时前生成的文件]]></title><link>https://blog.youkuaiyun.com/rmnjava/article/details/81031145</link><guid>https://blog.youkuaiyun.com/rmnjava/article/details/81031145</guid><author>rmnjava</author><pubDate>Fri, 13 Jul 2018 14:41:49 +0800</pubDate><description><![CDATA[    Date date = new Date(System.currentTimeMillis() - 1000 * 60 * 60);      File folder = new File(tempfolder);      File[] files = folder.listFiles();      for (int i=0;i&amp;lt;files.length;i++){       ...]]></description><category></category></item></channel></rss>