<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Enough1988的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Enough1988</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Enough1988]]></copyright><item><title><![CDATA[Rocketmq双master模式不互通问题registerBroker Exception]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330021</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330021</guid><author>Enough1988</author><pubDate>Fri, 17 May 2019 10:46:00 +0800</pubDate><description><![CDATA[解决办法：
centos7：systemctlstopfirewalld关闭防火墙




转载于:https://www.cnblogs.com/codeLZC/p/10880104.html]]></description><category></category></item><item><title><![CDATA[分红包算法Java实现]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330016</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330016</guid><author>Enough1988</author><pubDate>Fri, 26 Apr 2019 10:08:00 +0800</pubDate><description><![CDATA[需要考虑几个点：
　　红包形成的队列不应该是从小到大或者从大到小，需要有大小的随机性。
   红包这种金钱类的需要用Decimal保证精确度。
   考虑红包分到每个人手上的最小的最大的情况。

下面是利用线段分割算法实现的分红包， 比如把100元红包，分给十个人，就相当于把（0-100）这个线段随机分成十段，也就是再去中找出9个随机点。
找随机点的时候要考...]]></description><category></category></item><item><title><![CDATA[进程和线程的区别]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330019</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330019</guid><author>Enough1988</author><pubDate>Fri, 05 Apr 2019 10:58:00 +0800</pubDate><description><![CDATA[进程是资源分配的独立单元，而线程是CPU调度的基本单位；
同一个进程中可以包括多个线程，并且线程共享整个进程的资源（寄存器、堆栈、上下文），一个进程至少包括一个线程。
线程没有自己的地址空间，线程包含在进程的地址空间中。一个线程死掉会导致整个进程死掉，而进程之间是独立的，一个进程死掉不会影响其他进程。进程中的线程共享进程的内存和资源，他们共享代码段、数据段、堆，但是线程间拥有自己的栈...]]></description><category></category></item><item><title><![CDATA[Java中超大文件读写]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330014</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330014</guid><author>Enough1988</author><pubDate>Tue, 02 Apr 2019 11:10:00 +0800</pubDate><description><![CDATA[如果文件过大不能一次加载，就可以利用缓冲区：

File file = new File(filepath);   
BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file));    
BufferedReader reader = new BufferedReader(new Inp...]]></description><category></category></item><item><title><![CDATA[ConcurrentHashmap详解以及在JDK1.8的更新]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330012</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330012</guid><author>Enough1988</author><pubDate>Thu, 28 Mar 2019 11:19:00 +0800</pubDate><description><![CDATA[　　因为hashmap本身是非线程安全的，如果多线程对hashmap进行put操作的话，就会导致死循环等现象。ConcurrentHashMap主要就是为了应对hashmap在并发环境下不安全而诞生的，ConcurrentHashMap的设计与实现非常精巧，大量的利用了volatile，final，CAS等lock-free技术来减少锁竞争对于性能的影响。
　　我们知道HashMap是...]]></description><category></category></item><item><title><![CDATA[数组实现int随机数的阶乘（避免大数问题）]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330017</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330017</guid><author>Enough1988</author><pubDate>Tue, 26 Mar 2019 10:49:00 +0800</pubDate><description><![CDATA[面试的一道题目，实现int随机数的阶乘。这道题就是考察你考没考虑大数问题，如何避免它。 我能想到的就是用数组去实现，然后写了一下代码。但是当i的值很大，接近Max_value时的情况还没有考虑到。
直接看代码：mul进行数组每一位的阶乘，carry()用来对数组的每一位进位，pos记录当前的数组有效位置。这道题还是用ArrayList写比较好，免得浪费空间（有空在更新）。

pub...]]></description><category></category></item><item><title><![CDATA[IP地址字符串与int整数之间的无损转化]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330010</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330010</guid><author>Enough1988</author><pubDate>Thu, 21 Mar 2019 18:58:00 +0800</pubDate><description><![CDATA[今天鹅厂店面，最后问了一个ip地址字符串和整数间无损转化的问题，晚上有时间了手撸了一下代码。

public class IPstr {

    public static void main(String args[]){
        ipstrToint sti=new ipstrToint();
        int ip=0;
        ip=sti....]]></description><category></category></item><item><title><![CDATA[KMP算法 Java实现]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330015</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330015</guid><author>Enough1988</author><pubDate>Tue, 19 Mar 2019 22:08:00 +0800</pubDate><description><![CDATA[KMP算法匹配字符串

public class KMP {
   static  void getNextArray(char pattern[],int next[],int n){
        next[0]=0;
        int len=0;
        int i=1;
        while(i&lt;n){
           if(p...]]></description><category></category></item><item><title><![CDATA[数组中的第K个最大元素leetcode(Top K的问题)]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330013</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330013</guid><author>Enough1988</author><pubDate>Sat, 16 Mar 2019 15:57:00 +0800</pubDate><description><![CDATA[在未排序的数组中找到第k个最大的元素。请注意，你需要找的是数组排序后的第 k 个最大的元素，而不是第 k 个不同的元素。
示例 1:
输入: [3,2,1,5,6,4] 和 k = 2
输出: 5

示例2:
输入: [3,2,3,1,2,4,5,5,6] 和 k = 4
输出: 4

TopK的问题，思路就是用堆来解决。
先以前K个元素构建一个大小为K的小顶...]]></description><category></category></item><item><title><![CDATA[给定入栈序列，求所有可能的出栈序列。]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330008</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330008</guid><author>Enough1988</author><pubDate>Fri, 15 Mar 2019 16:51:00 +0800</pubDate><description><![CDATA[给定一个入栈的序列（1，2，3，4，5）；求它所有可能的出栈序列。
思路：先求序列的全排列，再求全排列的同时，判断这个序列是不是出栈序列。

package MaxMin;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Stack;

public class StackPo...]]></description><category></category></item><item><title><![CDATA[旋转数组的最小数字]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330011</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330011</guid><author>Enough1988</author><pubDate>Fri, 15 Mar 2019 10:40:00 +0800</pubDate><description><![CDATA[把一个数组最开始的若干个元素搬到数组的末尾，我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转，输出旋转数组的最小元素。
 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转，该数组的最小值为1。 NOTE：给出的所有元素都大于0，若数组大小为0，请返回0。

思路：这道题只说了是非减排序数组，说明他会有数字重复的情况，比如{1，0，1，1，1}。但还是首先想...]]></description><category></category></item><item><title><![CDATA[面试手撸代码之链表队列]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330006</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330006</guid><author>Enough1988</author><pubDate>Thu, 14 Mar 2019 17:10:00 +0800</pubDate><description><![CDATA[package data_structure;

 class qNode&lt;E&gt;{
    E data;
    qNode&lt;E&gt; next=null;
    public qNode(E data){
        this.data=data;
    }
}
public class ListQueue&lt;E&gt; {
 ...]]></description><category></category></item><item><title><![CDATA[Git基本操作指令]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330004</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330004</guid><author>Enough1988</author><pubDate>Thu, 14 Mar 2019 15:35:00 +0800</pubDate><description><![CDATA[Git是世界上目前最先进的分布式版本控制系统。
工作原理图：

Workspace工作区，Index暂存区，Repository本地仓库区，Remote远程仓库。
SVN与Git的最主要的区别？
SVN是集中式版本控制系统，版本库是集中放在中央服务器的，而干活的时候，用的都是自己的电脑，所以首先要从中央服务器哪里得到最新的版本，然后干活，干完后，需要把自己做完的活推送到中央服务...]]></description><category></category></item><item><title><![CDATA[面试手撸代码之链栈]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330009</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330009</guid><author>Enough1988</author><pubDate>Thu, 14 Mar 2019 14:11:00 +0800</pubDate><description><![CDATA[package data_structure;

class Node&lt;E&gt;{
    Node&lt;E&gt; next=null;
    E data;
    public Node(E data){
        this.data=data;
    }
}
public class ListStack&lt;E&gt; {
    p...]]></description><category></category></item><item><title><![CDATA[面试手撸代码之数组栈]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330002</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330002</guid><author>Enough1988</author><pubDate>Thu, 14 Mar 2019 14:10:00 +0800</pubDate><description><![CDATA[package data_structure;

import java.util.Arrays;

public class ArrayStack&lt;E&gt; {
    private Object []arrayStack;
    private int size;
    public ArrayStack(){
        arrayStack=...]]></description><category></category></item><item><title><![CDATA[解决Mysql命令行输入密码闪退问题]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330007</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330007</guid><author>Enough1988</author><pubDate>Wed, 13 Mar 2019 19:06:00 +0800</pubDate><description><![CDATA[输入密码闪退是因为后台Mysql服务没有启动。
解决办法：我的电脑，右键管理，服务，查看服务里面Mysql是否在运行。如果没有在运行那么可以右键启动，最好属性中设置为自动启动。





转载于:https://www.cnblogs.com/codeLZC/p/10525430.html...]]></description><category></category></item><item><title><![CDATA[数据库设计的三范式]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330005</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330005</guid><author>Enough1988</author><pubDate>Wed, 13 Mar 2019 15:02:00 +0800</pubDate><description><![CDATA[数据库的三大设计范式：（首先范式设计的越详细，对于某些实际操作可能更好，但是不一定都是好处）
第一范式1NF： 数据表中的所有字段都是不可分割的原子值。
　　　
　　　　从上图看出，address字段实际是可以划分的，不满足第一范式的要求。所以可以对address字段再细分成
　　　countruy+privence+city+details的字段
      ...]]></description><category></category></item><item><title><![CDATA[Java设计模式之观察者模式]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330000</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330000</guid><author>Enough1988</author><pubDate>Mon, 11 Mar 2019 13:53:00 +0800</pubDate><description><![CDATA[观察者模式是使用频率最高的设计模式之一，它用于建立一种对象与对象之间的依赖关系，一个对象发生改变时将自动通知其他对象，其他对象将相应作出反应。在模式中，发生改变的为被观察者或目标，作出反应的为观察者。在观察者之间是没有任何相互关系的，可以根据需要增删观察者，使得系统易于扩展。
抽象目标：

import java.util.*;
abstract class Subject {...]]></description><category></category></item><item><title><![CDATA[Java设计模式之建造者模式(生成器模式)]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101330003</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101330003</guid><author>Enough1988</author><pubDate>Sun, 10 Mar 2019 16:10:00 +0800</pubDate><description><![CDATA[建造者模式：
也叫生成器模式。用来隐藏复合对象的创建过程，他把复合对象的创建过程加以抽象，通过子类继承和重载的方式，动态地创建具有复合属性的对象。
总结一句就是封装一个对象的构造过程，并允许按步骤构造。
产品：

public class House{
    private String floor;
     private String wall;

   ...]]></description><category></category></item><item><title><![CDATA[Java设计模式之抽象工厂模式]]></title><link>https://blog.youkuaiyun.com/Enough1988/article/details/101329998</link><guid>https://blog.youkuaiyun.com/Enough1988/article/details/101329998</guid><author>Enough1988</author><pubDate>Sun, 10 Mar 2019 13:31:00 +0800</pubDate><description><![CDATA[抽象工厂模式是所有形态工厂模式中主最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口，使得客户端不必制定产品的具体类型的情况下，能够创建多个产品族的产品对象。
模式中包含的角色及其职责：
1.抽象工厂角色
　　抽象工厂模式的核心，包含对多个产品结构的声明，任何工厂类都必须实现这个接口。

public interface FruitFactory{
    publ...]]></description><category></category></item></channel></rss>