using

作者: 终极蚂蚁 | 来源:发表于2019-02-18 11:13 被阅读0次

    JAVA

    • md5
    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());
        }
    }
    
    • 将json转化为java对象
    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>
    
    • 遍历map:
    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));
        }
    
    }
    
    
    • Collections.sort 排序
    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]
    
    • 填充字符
      -- 填充长度至6位
    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
    • 分页 ( 2012版本以上 )
    -- 分页获取数据
    SELECT
      *
    FROM
      PAYORDER
    ORDER BY ID DESC OFFSET [count]*([page]-1) ROW FETCH NEXT [count] ROWS ONLY;
    
    • for xml path('')用法
    -- 以字符串形式获取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
    • case when 用法
    -- 根据英文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

    浏览器

    • 快捷键
      • 窗口和标签
        新建窗口 Ctrl + N
        新建隐身窗口 Ctrl + Shift + N
        新建标签页 Ctrl + T
        关闭所有标签页 Ctrl + Shift + W
        关闭当前标签页 Ctrl + W
        恢复最后关闭页面 Ctrl + Shift + T
        切换到下一个标签页 Ctrl + Tab
        切换到上一个标签页 Ctrl + Shift + Tab
        切换到序号对应的标签页 Ctrl + 数字
        进入/退出全屏模式 F11
        关闭当前浏览器窗口 Alt + F4

      • 浏览和导航
        选中地址栏 F6
        刷新(重新载入) F5
        停止加载 Esc
        后退 Alt + Left
        前进 Alt + Right
        页面缩小 Ctrl + -
        页面放大 Ctrl + =
        恢复页面到100% Ctrl + 0

      • 书签和记录
        显示书签栏 Ctrl + Shift + B
        将当前页添加到书签 Ctrl + D
        批量添加书签 Ctrl + Shift + D
        显示历史记录 Ctrl + H
        显示整理书签 Ctrl + Shift + O
        显示下载管理器 Ctrl + J
        清理上网痕迹 Ctrl + Shift + Del

      • 快捷工具
        打印网页 Ctrl + P
        打开文件 Ctrl + O
        地址栏搜索 Ctrl + K
        搜索 Ctrl + F
        查找下一个 Ctrl + G
        查找上一个 Ctrl + Shift + G
        保存页面为文件 Ctrl + S
        保存页面为图片 Ctrl + M
        显示/隐藏开发者工具 F12
        查看网页源代码 Ctrl + U
        任务管理器 Shift + Esc

    ERROR

    相关文章

      网友评论

          本文标题:using

          本文链接:https://www.haomeiwen.com/subject/xztaeqtx.html