Java之日期与时间、JDK8新增日期类、包装类、正则表达式、Arrays类、常见算法和Lambda表达式

news2024/12/23 0:16:39

目录

  • 日期与时间
    • Date
    • SimpleDateFormat
    • Calendar概述
  • JDK8新增日期类
    • 概述、LocalTime /LocalDate / LocalDateTime
    • Instant
    • DateTimeFormatter
    • Duration/Period
    • chronoUnit
  • 包装类
  • 正则表达式
  • Arrays类
    • Arrays类概述,常用功能演示
    • Arrays类对于Comparator比较器的支持
  • 常见算法
    • 选择排序
    • 二分查找
  • Lambda表达式
    • Lambda概述
    • Lambda实战-简化函数式接口
    • Lambda表达式的省略规则

日期与时间

Date

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

package com.itzixin.d1_date;

import java.util.Date;

public class DateDemo1 {
    public static void main(String[] args) {
        Date d =new Date();
        System.out.println(d);

        long time = d.getTime();
        System.out.println(time);

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

        Date d1 = new Date();
        System.out.println(d1);

        long time2 = System.currentTimeMillis();
        time2+=(60*60+121)*1000;

        Date d2 = new Date(time2);
        System.out.println(d2);

        Date d3 = new Date();
        d3.setTime(time2);
        System.out.println(d3);
    }
}

在这里插入图片描述

SimpleDateFormat

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

package com.itzixin.d2_simpledateformat;

import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatDemo01 {
    public static void main(String[] args) {
        Date d =new Date();
        System.out.println(d);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
        String rs = sdf.format(d);
        System.out.println(rs);

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

        long time1 = System.currentTimeMillis()+121*1000;
        String rs2 = sdf.format(time1);

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

}

在这里插入图片描述

package com.itzixin.d2_simpledateformat;

import java.sql.SQLOutput;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatDemo2 {
    public static void main(String[] args) throws ParseException {
        String dateStr = "2021年08月06日 11:11:11";

        SimpleDateFormat sdf =new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date d =sdf.parse(dateStr);

        long time  = d.getTime()+(2L*24*60*60+ 14*60*60 + 49*60+ 6)*6000;

        System.out.println(sdf.format(time));
    }
}

在这里插入图片描述

package com.itzixin.d2_simpledateformat;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatTest3 {
    public static void main(String[] args) throws ParseException {
        String startTime = "2021-11-11 00:00:00";
        String endTime = "2021-11-11 00:10:00";

        String xiaoJia = "2021-11-11 00:03:47";
        String xiaoPi = "2021-11-11 00:10:11";

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d1 = sdf.parse(startTime);
        Date d2 = sdf.parse(endTime);
        Date d3 = sdf.parse(xiaoJia);
        Date d4 = sdf.parse(xiaoPi);

        if(d3.after(d1)&&d3.before(d2)){
            System.out.println("小佳秒杀成功,可以发货了");
        }else{
            System.out.println("小佳秒杀失败了");
        }

        if(d4.after(d1)&&d4.before(d2)){
            System.out.println("小皮秒杀成功,可以发货了");
        }else{
            System.out.println("小皮秒杀失败!");
        }
    }
}

Calendar概述

在这里插入图片描述

package com.itzixin.d2_simpledateformat;

import java.util.Calendar;
import java.util.Date;

public class d3_calendar {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        System.out.println(cal);

        int year = cal.get(Calendar.YEAR);
        System.out.println(year);

        int mm = cal.get(Calendar.MONTH)+1;
        System.out.println(mm);

        int days = cal.get(Calendar.DAY_OF_YEAR);
        System.out.println(days);

        cal.add(Calendar.DAY_OF_YEAR,66);
        cal.add(Calendar.MINUTE,59);

        Date d = cal.getTime();
        System.out.println(d);

        long time = cal.getTimeInMillis();
        System.out.println(time);
    }
}

在这里插入图片描述

JDK8新增日期类

概述、LocalTime /LocalDate / LocalDateTime

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

Instant

在这里插入图片描述

DateTimeFormatter

在这里插入图片描述

Duration/Period

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

chronoUnit

在这里插入图片描述

包装类

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

正则表达式

在这里插入图片描述

package com.itzixin.d6_regex;

public class RegexDemo1 {
    public static void main(String[] args) {
        System.out.println(checkQQ("ofisjo33"));
        System.out.println(checkQQ("345534"));
        System.out.println(checkQQ(null));

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

        System.out.println(checkQQ2("ofisjo33"));
        System.out.println(checkQQ2("345534"));
        System.out.println(checkQQ2(null));
    }

    public static boolean checkQQ2(String qq){
        return qq!=null && qq.matches("\\d{6,20}");
    }

    public static boolean checkQQ(String qq){
        if(qq==null || qq.length()<6||qq.length()>20){
            return false;
        }

        for(int i =0;i<qq.length();i++){
            char ch = qq.charAt(i);
            if(ch<'0'|| ch>'9'){
                return false;
            }
        }

        return true;
    }
}

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

package com.itzixin.d6_regex;

import java.util.Scanner;

public class RegexTest3 {
    public static void main(String[] args) {
        checkPhone();
    }

    private static void checkPhone() {
        Scanner sc = new Scanner(System.in);
        while(true){
            System.out.println("请您输入您的注册手机号码:");
            String phone = sc.next();

            if(phone.matches("1[3-9]\\d{9}")){
                System.out.println("手机号码格式正确,注册完成!");
                break;
            }else{
                System.out.println("格式有误!");
            }
        }
    }
}

在这里插入图片描述

package com.itzixin.d6_regex;

public class RegexDemo4 {
    public static void main(String[] args) {
        String names = "小路gjojg蓉儿jjioaa过儿";
        String [] arrs = names.split("\\w+");
        for(int i = 0;i<arrs.length;i++){
            System.out.println(arrs[i]);
        }

        String names2 = names.replaceAll("\\w+","  ");
        System.out.println(names2);
    }
}

在这里插入图片描述

Arrays类

Arrays类概述,常用功能演示

在这里插入图片描述

package com.itzixin.d7_arrays;

import java.util.Arrays;

public class ArraysDemo1 {
    public static void main(String[] args) {
        int [] arr = {10,2,55,22,24,200};
        System.out.println(arr);

        System.out.println(Arrays.toString(arr));

        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));

        int index=Arrays.binarySearch(arr,55);
        System.out.println(index);

        int index2 = Arrays.binarySearch(arr,555);
        System.out.println(index2);

        int[] arr2={12,36,34,25,234}
    }
}

Arrays类对于Comparator比较器的支持

在这里插入图片描述

package com.itzixin.d7_arrays;

import java.util.Arrays;
import java.util.Comparator;

public class ArraysDemo2 {
    public static void main(String[] args) {
        int [] ages = {34,12,42,23};
        Arrays.sort(ages);
        System.out.println(Arrays.toString(ages));

        Integer[] ages1 = {34,12,42,23};

        Arrays.sort(ages1, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
//                if(o1>o2){
//                    return 1;
//                }else if(o1<o2){
//                    return -1;
//                }
//                return 0;
//                return o1-o2;
                return o2-o1;
            }
        });
        System.out.println(Arrays.toString(ages1));

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

        Student[] students = new Student[3];
        students[0] = new Student("吴磊",23,175);
        students[1]= new Student("谢欣",22,188);
        students[2]= new Student("王亮",18,222);
        System.out.println(Arrays.toString(students));

        Arrays.sort(students, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.getAge()-o2.getAge();
            }
        });
        System.out.println(Arrays.toString(students));
    }
}

常见算法

选择排序

在这里插入图片描述

package com.itzixin.d8_sort_binarysearch;

import java.util.Arrays;

public class Test1 {
    public static void main(String[] args) {
        int [] arr = {5,1,3,2};

        for(int i =0;i<arr.length;i++){
            for(int j =i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){
                    int temp = arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}

二分查找

在这里插入图片描述

Lambda表达式

Lambda概述

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

package com.itzixin.d9_lambda;

import java.sql.SQLOutput;

public class LambdaDemo1 {
    public static void main(String[] args) {
//        Swimming s1 = new Swimming() {
//            @Override
//            public void swim() {
//                System.out.println("老师游泳六六六");
//            }
//        }

        Swimming s1 = () ->{
            System.out.println("老师游泳六六六");
        };
        go(s1);
    }

    private static void go(Swimming s) {
        System.out.println("开始了。。。");
        s.swim();
        System.out.println("结束。。。");
    }


}



@FunctionalInterface
interface Swimming{
    void swim();
}

在这里插入图片描述

Lambda实战-简化函数式接口

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

package com.itzixin.d9_lambda;

import java.util.Arrays;

public class LambdaDemo3 {
    public static void main(String[] args) {
        Integer [] ages1 = {34,12,42,23};
        Arrays.sort(ages1,(Integer o1,Integer o2)->{
            return o2-o1;
        });
        System.out.println(Arrays.toString(ages1));
    }
}

Lambda表达式的省略规则

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[论文翻译] GIKT: A Graph-based Interaction Model forKnowledge Tracing

摘要随着在线教育的快速发展&#xff0c;知识追踪&#xff08;KT&#xff09;已成为追踪学生知识状态并预测他们在新问题上的表现的基本问题。在线教育系统中的问题通常很多&#xff0c;并且总是与更少的技能相关联。然而&#xff0c;以往的文献未能将问题信息与高阶问题-技能相…

计网必会:电路交换和分组交换

电路交换和分组交换的概念和区别&#xff0c;为什么分组交换更有效&#xff1f; 电路交换&#xff1a;由于电路交换在通信之前要在通信双方之间建立一条被双方独占的物理通路&#xff08;由通信双方之间的交换设备和链路逐段连接而成&#xff09; 特点是源和目标点建立起名副其…

C语言中的void*是什么?

目录1.void *是什么2.void*的解引用3.void*类型的应用场景1.void *是什么 我们之前学过许多类型的指针变量&#xff0c;如整形指针&#xff0c;字符指针&#xff0c;甚至数组指针&#xff0c;函数指针等。 int a 10; int *pa &a;//整形指针pa接受一个整形变量a的地址但…

阻塞队列-BlockingQueue

一、BlockingQueue介绍BlockingQueue 继承了 Queue 接口&#xff0c;是队列的一种。Queue 和 BlockingQueue 都是在 Java 5 中加入的。阻塞队列&#xff08;BlockingQueue&#xff09;是一个在队列基础上又支持了两个附加操作的队列&#xff0c;常用解耦。两个附加操作:支持阻塞…

Win10 每天蓝屏多次,蓝屏代码0x3B:SYSTEM_SERVICE_EXCEPTION

环境&#xff1a; 联想E14笔记本 Win10 专业版 问题描述&#xff1a; Win10 每天发生蓝屏多次&#xff0c;蓝屏代码0x3B:SYSTEM_SERVICE_EXCEPTION 查看事件查看器&#xff0c;系统日志筛选ID1001的事件,蓝屏多次基本上都是3B这错误代码 解决方案&#xff1a; 1.禁用AMD显…

vue3 pinia 状态管理(清晰明了)

前言 最近学习cloud项目&#xff0c;前端使用到 vue3 ts 等技术&#xff0c;其中包括 pinia &#xff0c;从一脸懵到渐渐清晰过程&#xff0c;在此记录一下&#xff0c;若有不足&#xff0c;希望大佬可以指出。 中文官方文档&#xff1a;https://pinia.web3doc.top/ 一、什…

2022年海南省职业院校技能大赛“网络安全”比赛任务书

2022年海南省职业院校技能大赛“网络安全” 比赛任务书 一、竞赛时间 总计&#xff1a;360分钟 二、竞赛任务书内容 &#xff08;一&#xff09;拓扑图 &#xff08;二&#xff09;A模块基础设施设置/安全加固&#xff08;350分&#xff09; 一、项目和任务描述&#xff…

服务器怎么防勒索病毒

行业背景 随着金融行业信息化建设的飞速发展&#xff0c;金融行业信息化系统经过多年的发展建设&#xff0c;目前信息化程度已经达到了较高水平。信息技术在提高管理水平、促进业务创新、提升企业竞争力方面发挥着日益重要的作用。 需求分析 随着金融信息化的深入发展&#…

Linux调试器-gdb使用

目录 1. 背景 2. 开始使用 3. 理解 创建需要调试的代码 debug&&release 4 详细调试 list&#xff0f;l 行号 list&#xff0f;l 函数名 r或run break(b) info b(reak) d num disable breakpoints enable breakpoints n (next) s&#xff08;step&#xff09; breaktrac…

ConcurrentHashMap 的优化及其与HashTable, HashMap的区别

目录 1.优化一:减小锁粒度 2.优化二:只针对写操作加锁 3.优化三:CAS 4.优化四:扩容方式 HashMap是线程不安全的,HashTable是线程安全的,关键方法加锁了.我们更推荐的是ConcurrentHashMap ,更优化的线程安全哈希表 接下来我们总结一下ConcurrentHashMap 进行了哪些优化,比H…

Nessus 扫描log4J漏洞

系列文章 Nessus介绍与安装 Nessus Host Discovery Nessus 高级扫描 Nessus 扫描web服务 Nessus 扫描log4J漏洞 1.扫描环境搭建 1.centos7 安装装宝塔面板 2.面板里下载docker 3.进入centos检查docker是否生效 docker --version4.安装docker-compose Docker Compose是一个…

使用WordPress搭建知识库门户网站的优缺点

使用知识库软件进行知识管理&#xff0c;帮助企业节约成本&#xff0c;为客户提供一个自助服务平台&#xff0c;提高客户满意度&#xff0c;据调查&#xff0c;73%的客户宁愿在网上搜索答案&#xff0c;而不是给工作人员打电话或者发短信&#xff0c;搭建一个知识库可能会耗费时…

TCP如何保证可靠传输,为什么应用层还需要确认机制

TCP的可靠传输实现 以下区别&#xff1a; 1、可靠传输&#xff08;有序&#xff0c;保证对方一定接受到&#xff09; 2、流量控制 这两个功能都是依靠滑动窗口来实现的 TCP实现可靠传输依靠的有 序列号、自动重传、滑动窗口、确认应答等机制。 序列号 首先我们说下序列号&am…

文件操作相关知识

1、为什么使用文件 前面我们在实现通讯录时&#xff0c;每次运行结束后&#xff0c;我们所存储的数据都会消失。这是因为我们将数据存储在栈区、堆区等内存上&#xff0c;而内存是不具有持久性的&#xff0c;程序退出时&#xff0c;权限还给操作系统&#xff0c;这些数据就会丢…

Unity 3D PC平台发布|| Unity 3D Web 平台发布||Unity 3D Android平台发布

Unity 3D PC平台发布 PC 是最常见的游戏运行平台。 随着欧美游戏的崛起&#xff0c;PC 平台随之发生游戏登陆大潮。 在 PC 平台上发布游戏的步骤&#xff1a; 打开要发布的 Unity 3D 工程&#xff0c;执行 File → Build Settings 菜单命令。在 Platform 列表框中选择 PC&am…

Jenkins, docker-compose动态修改镜像版本升级部署

docker-compose镜像版本动态控制 提取.env文件进行配置通用环境变量 # 当前机器用户的home路径 HOST_HOME/home/guimu # 上传文件临时路径 TMP_DATA_PATH${HOST_HOME}/tempdata/ # media的home路径 MEDIA_HOME/media # 挂载的mysql的data路径 MYSQL_DATA_PATH${HOST_HOME}/my…

go 函数或者方法参数调用的过程

前言 最近做项目&#xff0c;使用go开发&#xff0c;但是在发生函数调用传参数时&#xff0c;对指针的指针的传递有难以理解的代码&#xff0c;就此分析过程。尤其是对于多重指针作为参数&#xff0c;而且对于一些内置函数的修改逻辑也需深入的理解。 1. demo package slice…

client-go源码学习(四):自定义Controller的工作原理、WorkQueue

本文基于Kubernetes v1.22.4版本进行源码学习&#xff0c;对应的client-go版本为v0.22.4 4、自定义Controller的工作原理 Controller中主要使用到Informer和WorkQueue两个核心组件 Controller可以有一个或多个Informer来跟踪某一个resource。Informer跟Kubernetes API Server保…

安装 Visual Studio Code、MinGW-w64、CMake

文章目录1.安装 Visual Studio Code1.1 下载1.2 安装2.安装 MinGW-w642.1 下载2.2 解压到合适的目录下2.3 添加到环境变量2.4 测试是否安装成功3.安装 CMake3.1 下载3.2 解压到合适的目录下3.3 添加到环境变量3.4 测试是否安装成功1.安装 Visual Studio Code 1.1 下载 Visual…

Options API

computed计算属性 1、复杂data的处理方式 我们知道&#xff0c;在模板中可以直接通过插值语法显示一些data中的数据。 但是在某些情况&#xff0c;我们可能需要对数据进行一些转化后再显示&#xff0c;或者需要将多个数据结合起来进行显示&#xff1b; 比如我们需要对多个d…