<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[linAnPin]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/linan_pin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; linan_pin]]></copyright><item><title><![CDATA[sml & emacs 安装问题记录]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/138221575</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/138221575</guid><author>linan_pin</author><pubDate>Fri, 26 Apr 2024 15:58:39 +0800</pubDate><description><![CDATA[emacs 和 smlng 安装问题整理， sml 命令找不到问题处理]]></description><category></category></item><item><title><![CDATA[插入排序算法]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/116107814</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/116107814</guid><author>linan_pin</author><pubDate>Sat, 24 Apr 2021 22:05:08 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;


void print_array(int * arr, int size){
    int i;
    printf("\n==========start===========\n");
    for(i = 0; i &lt; size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n===========end============\n");
}

void inser..]]></description><category></category></item><item><title><![CDATA[springboot websocket 无法自动注入问题处理]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/116061883</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/116061883</guid><author>linan_pin</author><pubDate>Fri, 23 Apr 2021 16:44:47 +0800</pubDate><description><![CDATA[websoket 由于是多对象无法通过属性自动注入，解决方案：

声明static类型的（需要注入的）属性
	通过set方发进行注入
代码如下


@Controller
@ServerEndpoint(value = "/websocket")
public class WebSocketController {

    private static SocketMessageHandler socketMessageHandler;

    @Autowired
    public void se]]></description><category></category></item><item><title><![CDATA[Hibernate-validator校验框架]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/77185628</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/77185628</guid><author>linan_pin</author><pubDate>Tue, 15 Aug 2017 11:20:22 +0800</pubDate><description><![CDATA[1.&nbsp;前言
Validator开发者使用手册，适用后台校验功能的开发参考。文档中提到的功能，都是经过严谨测试验证过的，保证可用，请开发人员放心设计和开发。
1.1.&nbsp;背景
在我们日常后台的开发中，涉及到很多的字段验证，一般普通的验证框架就基本上可以满足日常的开发需求，但有一些情况，这些普通的验证框架无法达到要求，例如，现在有一个Segment类，里面有一个属性deptCi]]></description><category></category></item><item><title><![CDATA[归并排序]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/73836169</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/73836169</guid><author>linan_pin</author><pubDate>Wed, 28 Jun 2017 12:29:41 +0800</pubDate><description><![CDATA[/**
 * 归并排序算法：将需要排序的数组分成小数组进行归并排序
 * Created by hasee on 2017/6/8.
 */
public class Test {

    public static void main(String[] args) {
        int[] a = {2,1,4,3,6,8,7,9,10,13,12};
        mergeSort]]></description><category></category></item><item><title><![CDATA[选择排序]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/73800931</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/73800931</guid><author>linan_pin</author><pubDate>Tue, 27 Jun 2017 16:05:51 +0800</pubDate><description><![CDATA[/**
 * 选择排序算法：
 * 在数组中选出最小（大）的一个元素并与第一个元素交换，然后找出第二小的元素与第二个元素交换……
 * Created by hasee on 2017/6/27.
 */
public class SelectSort {

    public static void main(String[] args) {
        doSort(2,1,5,3,6,]]></description><category></category></item><item><title><![CDATA[插入排序2]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/73800919</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/73800919</guid><author>linan_pin</author><pubDate>Tue, 27 Jun 2017 16:04:50 +0800</pubDate><description><![CDATA[/**
 * 插入排序的递归实现：
 * 使用递归的方法代替循环遍历
 * Created by hasee on 2017/6/8.
 */
public class InsertSort2 {

    public static void doSort(int[] a){
        if(a.length>2){
            doSort(Arrays.copyOf(a,a]]></description><category></category></item><item><title><![CDATA[插入排序1]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/73800868</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/73800868</guid><author>linan_pin</author><pubDate>Tue, 27 Jun 2017 16:03:20 +0800</pubDate><description><![CDATA[/**
 * 插入排序算法：
 * 将数组中下一个元素插入到已排好的数组中的合适的位置，当所有的元素均插入时完成排序
 * Created by hasee on 2017/6/26.
 */
public class InsertSort {
    public static void doSort(int... arr){
        for(int i=1;i<arr.length;i]]></description><category></category></item><item><title><![CDATA[深入理解Java类加载器(ClassLoader)]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/73742038</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/73742038</guid><author>linan_pin</author><pubDate>Mon, 26 Jun 2017 17:15:27 +0800</pubDate><description><![CDATA[【版权申明】未经博主同意，谢绝转载！（请尊重原创，博主保留追究权） 
http://blog.youkuaiyun.com/javazejian/article/details/73413292

出自【zejian的博客】


关联文章：
深入理解Java类型信息(Class对象)与反射机制
深入理解Java枚举类型(enum)
深入理解Java注解类型(@Annotation)
深入理]]></description><category></category></item><item><title><![CDATA[String类1]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/73195411</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/73195411</guid><author>linan_pin</author><pubDate>Tue, 13 Jun 2017 21:15:36 +0800</pubDate><description><![CDATA[public class Test01 {
    public static void main(String[] args) {
        //串池中创建 Hello
        String s1 = "Hello";

        //串池中找到 Hello 并引用
        String s2 = "Hello";

        //堆内存中创建 Hello
  ]]></description><category></category></item><item><title><![CDATA[泛型 -- 泛型方法]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/73136095</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/73136095</guid><author>linan_pin</author><pubDate>Mon, 12 Jun 2017 20:51:26 +0800</pubDate><description><![CDATA[/**
 * 泛型方法 -- 泛型方法可以定义在普通类中，也可以定义在泛型类中
 *      定义泛型方法时泛型变量放在修饰符后，返回值前
 */
public class ArrayAlg {
    public static  T getMiddle(T... a){
        return a[a.length / 2];
    }
}


public class Tes]]></description><category></category></item><item><title><![CDATA[泛型 -- 泛型类]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/73135975</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/73135975</guid><author>linan_pin</author><pubDate>Mon, 12 Jun 2017 20:37:47 +0800</pubDate><description><![CDATA[/**
 * 简单的泛型类定义：
 *      类名后加（E表示集合的元素类型，K,V分别表示key和value，T（U,S）表示任意类型）
 */
public class Pair {
    private T first;
    private T second;

    public Pair() {
        first = null;
        second = n]]></description><category></category></item><item><title><![CDATA[生产范围内的随机数]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/72928845</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/72928845</guid><author>linan_pin</author><pubDate>Thu, 08 Jun 2017 17:11:09 +0800</pubDate><description><![CDATA[/**
 * 产生范围内的随机整数数
 *  带种子时每次产生的随机数相同
 */
public class RandomInt {
    public static void main(String[] args) {
        
        RandomInt.showList(RandomInt.getIntRandom(10,5,15));
        System.out]]></description><category></category></item><item><title><![CDATA[外观设计模式1]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/72904278</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/72904278</guid><author>linan_pin</author><pubDate>Wed, 07 Jun 2017 21:42:57 +0800</pubDate><description><![CDATA[/**
 * 外观模式 -- 将多个相互依赖的类的依赖关系放在一个类中
 * 避免类相互持有，实现松耦合
 */
public class Computer {
    private CPU cpu;
    private Memory memory;
    private Disk disk;

    public Computer() {
        this.cpu = new ]]></description><category></category></item><item><title><![CDATA[装饰设计模式1]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/72884903</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/72884903</guid><author>linan_pin</author><pubDate>Tue, 06 Jun 2017 16:43:20 +0800</pubDate><description><![CDATA[/**
 * 装饰设计模式
 * 为一个对象动态的添加一些功能
 * 原类和装饰类共同实现一个接口，装饰类持有类的对象，
 * 并在实现接口方法时调用该对象对该接口的实现方法，同时添加新的功能
 */
public class Decorator implements Sourceable {

    private User user;

    public Decorator(User u]]></description><category></category></item><item><title><![CDATA[适配器模式3]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/72879559</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/72879559</guid><author>linan_pin</author><pubDate>Tue, 06 Jun 2017 15:22:46 +0800</pubDate><description><![CDATA[/**
 * 适配器模式 -- 接口的适配器模式
 * 当不希望实现某个接口的所有方法时使用接口的适配器模式
 * 使用一个抽象类实现接口中的所有方法，在写其他类的时候继承改抽象类
 * 同时重写需要的方法，从而避免实现所有的接口方法
 */
public abstract class Wrap implements Targetable {
    @Override
    public vo]]></description><category></category></item><item><title><![CDATA[适配器模式2]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/72879164</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/72879164</guid><author>linan_pin</author><pubDate>Tue, 06 Jun 2017 15:15:40 +0800</pubDate><description><![CDATA[/**
 * 适配器模式 -- 对象的适配器模式
 * 当希望将一个对象（source）转换为s满足一个接口（Targetable）的新对象（adapter）时，
 * 创建一个类（Adapter）实现接口，该类持有一个原对象（source），
 * 并在实现方法中调用实例source的方法
 */
public class Adapter implements Targetable {

   ]]></description><category></category></item><item><title><![CDATA[适配器模式1]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/72878257</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/72878257</guid><author>linan_pin</author><pubDate>Tue, 06 Jun 2017 14:50:38 +0800</pubDate><description><![CDATA[/**
 * 适配器模式 -- 类的适配器模式
 * 当希望将一个类（Source）转换为满足一个接口（Targetable）的新的类（Adapter）时，
 * 新的类继承待适配的类并实现接口
 */
public class Adapter extends Source implements Targetable {
    @Override
    public void method02]]></description><category></category></item><item><title><![CDATA[对俩个有序数组合并排序]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/72868389</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/72868389</guid><author>linan_pin</author><pubDate>Mon, 05 Jun 2017 16:13:40 +0800</pubDate><description><![CDATA[/**
 * 算法学习 -- 两个有序数组合并排序
 */
public class MergeArrayAndOrder {

    public static void main(String[] args) {
        int[] a = new int[]{1,3,5,7,9,16,17};
        int[] b = new int[]{0,2,4,6,8,10,11,]]></description><category></category></item><item><title><![CDATA[数组反转]]></title><link>https://blog.youkuaiyun.com/linan_pin/article/details/72865240</link><guid>https://blog.youkuaiyun.com/linan_pin/article/details/72865240</guid><author>linan_pin</author><pubDate>Mon, 05 Jun 2017 11:11:21 +0800</pubDate><description><![CDATA[一个数组的倒序
/**
 * 算法 -- 反转数组
 */
public class ReverseArray {

    public static void main(String[] args) {
        int[] a = {3,2,1,6,5,4,9,8,7};
        int[] b = reverse(a);

        for(int i=0;i<b.l]]></description><category></category></item></channel></rss>