using

2019-02-18  本文已影响0人  终极蚂蚁

JAVA

package demo.test;

import org.springframework.util.DigestUtils;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @author : GF
 * @date : 2019/2/18 18:50
 */
public class MD5Test {
    
    public static void main(String[] args) {
        System.out.println(md5EncodeByJava("123456"));
        System.out.println(md5EncodeBySpring("123456"));
    }

    private static String md5EncodeByJava(String content){
        byte[] secretBytes;
        try {
            MessageDigest md5 = MessageDigest.getInstance("md5");
            byte[] sources = content.getBytes();
            secretBytes = md5.digest(sources);
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("没有这个md5算法!");
        }
        //将加密后的数据转换为16进制数字
        String res = new BigInteger(1, secretBytes).toString(16);
        StringBuilder md5code = new StringBuilder(res);
        while (md5code.length() < 32) {
            md5code.insert(0, "0");
        }
        return md5code.toString();
    }
    
    private static String md5EncodeBySpring(String content){
        return DigestUtils.md5DigestAsHex(content.getBytes());
    }
}
package demo.test;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;

/**
 * @author : GF
 * @date : 2019/2/19 10:56
 */
public class JsonParseToJO {

    public static void main(String[] args) {
        JSONObject jo = new JSONObject();
        jo.put("name", "feiji");
        jo.put("age", 20);
        System.out.println(jo.toJSONString());
        System.out.println("-----------------------");
        User u = JSON.toJavaObject(jo, User.class);
        System.out.println(u);
        System.out.println(u.getAge());
    }

    @Data
    static class User{
        Integer age;
        String name;
    }
}
package demo.test;

import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
/**
 * @author : GF
 * @date : 2019/2/19 11:23
 */
public class XmlParseToJOTest {

    public static String parseXmlStrToJsonStr(String xml) {
        return new XMLSerializer().read(xml).toString();
    }

    public static String parseJsonStrToXmlStr(String jsonStr) {
        XMLSerializer xml = new XMLSerializer();
        return xml.write(JSONObject.fromObject(jsonStr));
    }

    public static void main(String[] args) {
        JSONObject jo = new JSONObject();
        jo.put("name", "feiji");
        jo.put("age", 20);

        String val1 = parseJsonStrToXmlStr(jo.toString());
        String val2 = parseXmlStrToJsonStr(val1);
        System.out.println(val1);
        System.out.println("---");
        System.out.println(val2);
    }
}
        <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>

        <dependency>
            <groupId>xom</groupId>
            <artifactId>xom</artifactId>
            <version>1.2.5</version>
        </dependency>
public static void runMap(){
    Map<Integer, String> testMap = new HashMap<>();
    testMap.put(1, "一号");
    testMap.put(2, "二号");
    testMap.put(3, "三号");
    // 使用迭代器
    Iterator<Map.Entry<Integer, String>> iterator = testMap.entrySet().iterator();
    Map.Entry<Integer,String> tempEntry;
    while (iterator.hasNext()) {
        tempEntry = iterator.next();
        System.out.println(tempEntry.getKey());
        System.out.println(tempEntry.getValue());
    }
    // 使用map自带方法
    System.out.println(testMap.keySet());
    System.out.println(testMap.values());
    // 使用for循环
    for (Map.Entry<Integer, String> o : testMap.entrySet()) {
        System.out.println(o.getKey());
        System.out.println(o.getValue());
    }
}
package demo.test;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * @author : GF
 * @date : 2019/2/19 11:09
 */
public class ThreadPoolTest {
    public static void main(String[] args) {
        ExecutorService threadPool;

        /*
            默认的构造方法

            corePoolSize:核心线程数
            maximumPoolSize:线程池最大容纳线程数
            keepAliveTime:非核心线程最大静置存活时间
            unit:上个参数的时间单位
            workQueue:生成策略
            threadFactory:线程创建工厂,可以在这里设置线程命名规则
            handler:异常处理方案
         */
//        public ThreadPoolExecutor(  int corePoolSize,
//                                    int maximumPoolSize,
//                                    long keepAliveTime,
//                                    TimeUnit unit,
//                                    BlockingQueue<Runnable> workQueue,
//                                    ThreadFactory threadFactory,
//                                    RejectedExecutionHandler handler);
        /*
          单线程化的线程池 核心:1,    总:max,  策略:DelayedWorkQueue
          有且仅有一个工作线程执行任务
          所有任务按照指定顺序执行,即遵循队列的入队出队规则
         */
        threadPool = Executors.newSingleThreadScheduledExecutor();
        /*
          可缓存线程池   核心:0,    总:max,  策略:SynchronousQueue
          线程数无限制
          有空闲线程则复用空闲线程,若无空闲线程则新建线程
          一定程序减少频繁创建/销毁线程,减少系统开销
         */
        threadPool = Executors.newCachedThreadPool();
        /*
          定长线程池    核心:n,    总:n,    策略:LinkedBlockingQueue
          可控制线程最大并发数(同时执行的线程数)
          超出的线程会在队列中等待
         */
        threadPool = Executors.newFixedThreadPool(3);
        /*
          定长线程池    核心:n,    总:max,  策略:DelayedWorkQueue
          支持定时及周期性任务执行。
         */
        threadPool = Executors.newScheduledThreadPool(3);
    }
}
public static void runLambada(){
        System.out.println("--------------");

        // lambda 替代匿名线程
        // new Thread(new Runnable() {
        //     @Override
        //     public void run() {
        //         System.out.println("hello! thread!");
        //     }
        // }).start();

        new Thread(()-> System.out.println("hello! lambda!")).start();

        System.out.println("--------------");

        List<Integer> list = Arrays.asList(11, 22, 33, 44);
        List<Integer> listAdd = new ArrayList<>();
        List<Integer> listFilter = new ArrayList<>();

        // 替换 List 中的内容 n 为 n + 100
       // for (Integer i : list) {
       //     listAdd.add(i + 100);
       // }

        list.stream().map(s -> s+100).forEach(listAdd::add);

        // 过滤掉 List 中小于 20 的值
        // for (Integer i : list) {
        //     if (i > 20) {
        //         listFilter.add(i);
        //     }
        // }

        list.stream().filter(s -> s>20).forEach(listFilter::add);

        // 遍历打印 listAdd

        // for (Integer integer : listAdd) {
        //     System.out.println(integer);
        // }

        listAdd.forEach(System.out::println);

        System.out.println("--------------");

        // 遍历打印 listFilter

        // listFilter.forEach(s -> System.out.println(s));

        listFilter.forEach(System.out::println);

        System.out.println("--------------");

    }
package demo.test;

/**
 * @author : GF
 * @date : 2019/2/18 18:50
 */
public class IntegerTest {

    public static void main(String[] args) {
        // 十进制转为二进制 console:111010110111100110100010101
        System.out.println(Integer.toBinaryString(123456789));
        // 十进制转为八进制 console:726746425
        System.out.println(Integer.toOctalString(123456789));
        // 十进制转为十六进制 console:75bcd15
        System.out.println(Integer.toHexString(123456789));
        // 十进制转为三十二进制  console:3lnj8l
        System.out.println(Integer.toUnsignedString(123456789, 32));
        // 二进制转为十进制 console:123456789
        System.out.println(Long.parseLong("111010110111100110100010101",  2));
        // 八进制转为十进制 console:123456789
        System.out.println(Long.parseLong("726746425",  8));
        // 十六进制转为十进制 console:123456789
        System.out.println(Long.parseLong("75bcd15",  16));
        // 三十二位转为十进制 console:123456789
        System.out.println(Long.parseLong("3lnj81",32));
    }

}

package demo.test;

import lombok.AllArgsConstructor;
import lombok.Data;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class SortTest {

    public static void main(String[] args) {
        List<User> users = new ArrayList<>();
        users.add(new User("name_2", 2));
        users.add(new User("name_1", 1));
        users.add(new User("name_4", 4));
        users.add(new User("name_5", 5));
        users.add(new User("name_3", 3));

        users.forEach(System.out::println);
        /* console
            SortTest.User(name=name_2, age=2)
            SortTest.User(name=name_1, age=1)
            SortTest.User(name=name_4, age=4)
            SortTest.User(name=name_5, age=5)
            SortTest.User(name=name_3, age=3)
        */

        Collections.sort(users);

        users.forEach(System.out::println);
        /* console
            SortTest.User(name=name_1, age=1)
            SortTest.User(name=name_2, age=2)
            SortTest.User(name=name_3, age=3)
            SortTest.User(name=name_4, age=4)
            SortTest.User(name=name_5, age=5)
        */

    }

    @Data
    @AllArgsConstructor
    static class User implements Comparable{
        String name;
        int age;

        @Override
        public int compareTo(Object o) {
            User oldUser = (User) o;
            return Integer.compare(this.age,oldUser.getAge());
        }
    }

}

SQL Server

-- 清空tableName表
TRUNCATE  TABLE  [tableName]
select right(concat('000000',number),6) number from (
    SELECT 123 number UNION ALL SELECT 1223 UNION ALL SELECT 45 UNION ALL SELECT 4564 UNION ALL SELECT 124 UNION ALL SELECT 548 UNION ALL SELECT 45 UNION ALL SELECT 7468
) a 
image.png
-- 分页获取数据
SELECT
  *
FROM
  PAYORDER
ORDER BY ID DESC OFFSET [count]*([page]-1) ROW FETCH NEXT [count] ROWS ONLY;
-- 以字符串形式获取id列表
select (
   select concat(number,',') from (
       SELECT 123 number UNION ALL SELECT 1223 UNION ALL SELECT 45 UNION ALL SELECT 4564 UNION ALL SELECT 124 UNION ALL SELECT 548 UNION ALL SELECT 45 UNION ALL SELECT 7468
   ) temp for xml path('')
) numbers
![image.png](https://img.haomeiwen.com/i9764504/4927d0153f72f5e7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

-- 以字符串形式获取user列表

select (
   select * from (
       SELECT 12 age, 'name_1' name UNION ALL SELECT 13 age, 'name_12' name UNION ALL SELECT 14 age, 'name_56' name UNION ALL SELECT 15 age, 'name_11' name UNION ALL SELECT 16 age, 'name_155' name
   ) temp for xml path ('User')
) users
image.png
image.png
-- 随机获取一条数据
select top 1 * from (
    SELECT 123 number UNION ALL SELECT 1223 UNION ALL SELECT 45 UNION ALL SELECT 4564 UNION ALL SELECT 124 UNION ALL SELECT 548 UNION ALL SELECT 45 UNION ALL SELECT 7468
) a order by NEWID()
-- (忽略匹配源与匹配词中的'.')在'acb','abc','a..b.c','.a.b.c','.a.bb.c'中匹配'.a..b..'。
select * from (
    SELECT 'abc' source UNION ALL SELECT 'abc' UNION ALL SELECT 'a..b.c' UNION ALL SELECT '.a.b.c' UNION ALL SELECT '.a.bb.c'
) temp_a where REPLACE(source, '.', '') like REPLACE('%.a..b..%', '.', '')
sql result
-- 根据英文Boolean值获取中文解释
SELECT
    bol 'boolean',
    CASE bol
WHEN 'true' THEN
    '对'
WHEN 'false' THEN
    '错'
ELSE
    '其他'
END 'text'
FROM
    (SELECT 'true' bol UNION ALL SELECT 'false' UNION ALL SELECT 'other') temp
sql result

Sublime

浏览器

ERROR

上一篇 下一篇

猜你喜欢

热点阅读