值传递:!!!!!
方法中的数据不返回再接收永远拿不到值(作用域的问题)
只要看到new,一定是不相等的,地址不一样了
没有返回值,主方法得不到方法中的数据
只要没有new,地址就没变
所有的操作都在传地址,新值可以传(前提没有new)
Java的值传递和所谓的引用传递
本质上Java只有值传递,所有的赋值传参都是一次值的拷贝。
引用数据类型拷贝的就是引用地址,基本数据类型拷贝的是值,不会传入实例对象本身。
Api:Application Programing Interface(应用程序接口)
JDK给我们提供的一些已经写好的类,我们可以直接调方法解决问题
类的方法,在宏观上都可以称为接口
工具类和工具方法加不加final需要考虑下
!!!时间相关api
几乎所有都需要api
时间:
格林尼治天文台,伦敦
时区:东八区
北京时间:+8 (程序员里只有上海时间,香港时间,西安时间)
时间戳:从1970年1月1日00:00:00到今天2022年7月28日9:30:46(现在,实时变化)的毫秒数,每个国家经历的时间都是一样的
全世界的时间戳都一样,忽略时区的限制
System.out.println(currentTimerMills())可打印出时间戳
看程序效率的方法
主方法:(下面的start也是静态方法)
Long start=System.out.println(currentTimerMills())
要运行的程序
long end=System.out.println(currentTimerMills())
System.out.println(end-start)
date类(导入until包)
获取当前日期
日历类(能看日期和时间,date能获取到的几乎都能获取到)
Calendar类
抽象类,不能创建对象,会创建出匿名内部类
有方法可以获取对象(它子类的对象)
从JDK1.1版本开始。在处理时间和日期时,系统推荐用Calendar类
Calendar calendar=Calendar.getInstance();
TimeZone类(时区)
日期格式化
simpleDateFormat
format:格式化Date类型,把Date类型转成String类型
Parse:把String类型的时间,转成Date类型
从客户端上传过来的时间参数,基本上都是String类型 转成Date类型是为了存入数据库方便比较,String也能存入数据库但字符串不方便比较
parse方法 参数是String,返回值是Date
工具类:
做工具类必须有返回值拿来用
工具类的方法要写成静态,为了反复调用
JDK8的日期时间类
在JDK8之前,处理日期和时间,基本上就是用上面几个类
Data和Calendar,获取到的月份都是0-11(从0开始算月份),不是1-12
阿里巴巴的明确要求:
如果是JDK8的应用,可以使用
Instance代替Date
LocalDateTime代替Calendar
DateTimerFormatter代替simpleDateFormat
新的时间类:
Instant 构造器被私有化 获取对象:Instant instant= Instant.now();
LocalDate 获取日期
LocalDateTime(很好用) 获取日期和时间 获取对象:LocalDateTime now=LocalDateTime.now();
Local
Duration(持续时间)
DateTimerFormatter
学习心得:今天学了一些常用api的方法使用,这些内容难度还好,只要多做练习掌握怎么调用就可以,今天学的重点包括早上讲的值传递,这是我以前不懂的,晚上的String类
栈堆常量区也是我以前了解不够的,感觉java的内容深度还是没那么容易理解掌握,