程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

开发总结技巧

发布于2021-06-12 13:15     阅读(485)     评论(0)     点赞(9)     收藏(1)


请求类型

  • GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。
  • PUT请求是向服务器端发送数据的(与GET不同)从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。
  • POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。
  • DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。

返回一个空集合

在这里插入图片描述

	public static List testNull(){
        //return  Collections.emptyList();
        return Collections.EMPTY_LIST;
    }
	public  void testEmptyList() {
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        System.out.println(list);
        list = Collections.emptyList();
        System.out.println(list);
        list.add(3);//异常:不支持的操作
    }

在这里插入图片描述
在这里插入图片描述

订单30分钟后未支付失效

	public void testTimerTask() throws IOException {
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                System.out.println("执行成功");//先判断订单状态是否是未支付,如果是就回写库存操作
            }
        };
        Timer timer = new Timer();
        timer.schedule(task, 1000*5);//五秒后后执行
        System.in.read();//避免程序退出,进行阻塞
    }

状态机–订单修改

#状态机实现--版本号
#数据库的version默认为0修改订单时传入0我在mapper中对0加1并且重新赋值给version
#当版本号为0的时候我才可以修改订单状态

UPDATE goods_order 
	SET order_status = 4,
	version = 0+1 
WHERE
	orderid = 100,AND version = 0

在这里插入图片描述

Java 8 Optional 类

Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。

Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。

Optional 类的引入很好的解决空指针异常。

	@Test
    public void optionalTest() {
        Integer value1 = null;
        Integer value2 = new Integer(10);

        // Optional.ofNullable - 允许传递为 null 参数
        Optional<Integer> a = Optional.ofNullable(value1);

        // Optional.of - 如果传递的参数是 null,抛出异常 NullPointerException
        Optional<Integer> b = Optional.of(value2);

        System.out.println("第一个参数值存在: " + a.isPresent());
        System.out.println("第二个参数值存在: " + b.isPresent());

        // Optional.orElse - 如果值存在,返回它,否则返回默认值
        Integer v1 = a.orElse(new Integer(0));

        //Optional.get - 获取值,值需要存在
        Integer v2 = b.get();
        System.out.println("Sum =" + (v1 + v2));
    }
	@Test
    public void test() throws Exception {
        String str = null;
        List<String> list = Arrays.asList("abc", "123", "123", "123", "123", "deg", "123", "4561234");

        // Optional.ofNullable - 允许传递为 null 参数
        Optional<String> s = Optional.ofNullable(str);

        // Optional.of - 如果传递的参数是 null,抛出异常 NullPointerException
        Optional<List<String>> l = Optional.of(list);

        // 如果有值 输出
        s.ifPresent(System.out::println);

        // Optional.orElse - 如果值存在,返回它,否则返回默认值
        System.out.println("s.orElse(\"orElse\") = " + s.orElse("orElse"));
        // Optional.orElseGet - 如果存在该值,返回值, 否则触发other,并返回other调用的结果。
        System.out.println("s.orElseGet(() -> \"orElseGet\") = " + s.orElseGet(() -> "orElseGet"));


        String nullName = "12313";
        // 没有值 抛出自定义异常
        System.out.println(Optional.ofNullable(nullName).
                orElseThrow(IllegalArgumentException::new));
        // 有值 执行操作
        Optional<List> optionalList = Optional.ofNullable(list);
        optionalList.ifPresent(bean -> System.out.println(bean));

        //Optional.get - 获取值,值需要存在
        optionalList.get();
    }

原文链接:https://blog.csdn.net/weixin_43891448/article/details/106613644



所属网站分类: 技术文章 > 博客

作者:skdk

链接:http://www.javaheidong.com/blog/article/221946/e5c91b87e5ef874fb083/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

9 0
收藏该文
已收藏

评论内容:(最多支持255个字符)