ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022 07 28 第三小组 陈迪 学习笔记

2022-07-29 08:31:21  阅读:166  来源: 互联网

标签:07 28 System 陈迪 Date String println public out


Java的值传递和所谓的引用传递

本质上Java只有值传递,所有的赋值传参都是一次值的拷贝。

引用数据类型拷贝的就是引用地址,基本数据类型拷贝的是值,不会传入实例对象。

常用api

API(Application Programming Interface)应用程序接口。

JDK给我们提供的一些已经写好的类,我们可以直接调方法来解决问题。

我们类的方法,在宏观上都可以称为接口。

api文档,介绍api

时间相关api

  • 2个字段(注册时间,最后一次修改时间)
  • 时间:
  • 格林尼治天文台,伦敦
  • 时区:东八区
  • 北京时间:+8
  • 时间戳:1970.1.1 00:00:00 到今天2022.7.28 9:29:30的毫秒数
  • 1s=1000ms 1min=60s 1h=60min 1day=24h 时间戳在全国各地都是固定的。
  • 获取时间戳
  • 可以通过时间戳转换成我们当前所在地的具体时间和日期
日期类
/*
* date
*/
public class Ch03 {
    public static void main(String[]args){
        //获取系统当前日期时间
        Date date= new Date();
        System.out.println(date);
    }
}

当返回负数时,说明调用者时间是在参数时间之前。

当返回0时,调用者时间和参数时间相同。

当返回正数时,说明调用者时间在阐述时间之后。

public class Ch04 {
    public static void main(String[] args) {
        Date date1=new Date();
        Date date2=new Date();
        System.out.println();
    }
}

日历类:日期

  • Calendar是一个抽象类。
  • 初始化:
  • 提供了一组对“年月日时分秒星期”等信息的操作函数。操作不同时区的信息。
  • Calendar要比Date强大的多
时区:偏移量
public class Ch06 {
    public static void main(String[] args) {
     System.out.println(TimeZone.getDefault());
        System.out.println(new Date());
            }
          }

日期格式化

  • simpleDateFormat
  • format:格式化Date类型,把Date类型转成String类型
  • 从客户端传过来的时间,一般都是String类型,存入数据库。
public class Test {
    public static void main(String[] args) {
        Date date=new Date(System.currentTimeMillis()+1000*60*60*24*7);
        System.out.println(date);

    }
}

设计一个工具类

对date类型的日期进行格式化,转成string
format方法 参数是Date 返回值是String
string格式化转换成Date
parse方法 参数是string 返回值是Date

public class Test1 {
public static final String dateToString(){
    return dateToString();
    }
    public static final Date StringToDate() {
    return StringToDate();
    }
}

JDK8的日期时间类

  • 在JDK8之前,处理日期和时间,基本上就是用上面的几个类。
  • Date和Calendar,获取到的月份都是0-11,而不是我们生活中的1--12;

阿里巴巴规约明确要求:

  • 如果是JDK8的应用,可以使用
  • Instant代替Date
  • LocalDateTime代替Calendar
  • DateTimeFormatter代替DateTimeFormat

新的实践类:

  • Instant
  • LocalTime
  • LocalDateTime
  • DateTimeFormatter
  • atzone 在某一个时区
public class Ch01 {
    public static void main(String[] args) {
        Instant instant=Instant.now();
        System.out.println(instant.atZone(ZoneId.systemDefault()));
        System.out.println(instant.getEpochSecond());
        System.out.println(instant.toEpochMilli());
        long millis=System.currentTimeMillis();
        System.out.println(Instant.ofEpochMilli(millis));
        System.out.println("---------------------------------");
        String text="2022.07.28 12:23:21";
        Instant parse=Instant.parse(text);
        System.out.println(parse);
    }
}

持续时间Duration

image-20220728201311889

LocalDate:获取当前日期

public class Ch03 {
    public static void main(String[] args) {
        LocalDate now=LocalDate.now();
        System.out.println(LocalDate.now());
        System.out.println(now);
        System.out.println(now.getMonth());
        System.out.println(now.getDayOfWeek());
        System.out.println(now.getDayOfMonth());
        LocalDate of=LocalDate.of(2022,9,10);
        System.out.println(of);

    }
}
public class Ch04 {
    public static void main(String[] args) {
        Instant instant=Instant.now();
        Date date=Date.from(instant);
        LocalDateTime localDateTime= LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
    }
}

math数学类

  • random()随机数
  • ceil()向上取整
  • floor()向下取整
  • round()四舍五入

BigDecimal统计类

public class Ch06 {
    public static void main(String[] args) {
        BigDecimal bigDecimal=new BigDecimal("0.7");
        BigDecimal bigDecimal1=new BigDecimal("0.1");
        //使用BigDecimal的构造器,开发中,传入的参数必须是字符串
        System.out.println(bigDecimal.add(bigDecimal1));

    }
}

Random 随机

public class Ch07 {
    public static void main(String[] args) {
        Random random=new Random();
        System.out.println(random.nextInt(21));
    }
}

Arrays数组的工具类

public class Ch08 {
    public static void main(String[] args) {
        int arr[]=new int[]{1,2,3,4,5};
        System.out.println(Arrays.toString(arr));
        Arrays.sort(arr);
        System.out.println(Arrays.binarySearch(arr,4));
    }
}

Objects

public class Ch09 {
    public static void main(String[] args) {
        System.out.println(Objects.isNull(""));//阿里规约判断空
    }
}

StringBuffer和StringBuilder

  • 可变的字符序列,和String是有本质区别的;

  • 有缓冲区,从缓存里拿东西

用法一模一样

  • StringBuffer是同步的。安全,效率低。

  • StringBuilder是异步的。不安全,同时处理多个请求。

  • 做开发三大准则:成本,质量,进度。

    面试题:三个字符串的区别?

image-20220728202509579

标签:07,28,System,陈迪,Date,String,println,public,out
来源: https://www.cnblogs.com/cd01106118/p/16530983.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有