Java8时间类型的好处:
- 明确了日期、时间概念;例如:瞬间(instant)、 长短(duration)、日期、时间、时区和周期;
- 继承了Joda 库按人类语言和计算机各自解析的时间处理方式;
- 新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全;
Java8时间类型的好处:
Java中使用SimpleDateFormat类的构造函数SimpleDateFormat(String str)构造格式化日期的格式,通过format(Date date)方法将指定的日期(Date)对象格式化为指定格式的字符串。
Java中操作时间日期的类有:Date(日期)、Calendar(日历)、DateFormat(日期格式)。
在日常系统开发中,相信你遇到过类似需要重复执行的任务,比如每天凌晨2点清理数据库某张表的垃圾数据,页面显示设备(服务器)运行状态也需要每隔3秒调用设备状态接口查询设备情况等,这些功能开发都需要用到定时器(Timer)
在需要按时间计划执行简单任务的情况下,Timer是最常被使用到的工具类。使用Timer来调度TimerTask的实现者来执行任务,有两种方式,一种是使任务在指定时间被执行一次,另一种是从某一指定时间开始周期性地执行任务。
最近在和同事讨论Java主线程和子线程之间的关系,自己也到网上搜索了下,发现各种答案都有,有些还是互相矛盾的。经过测试自己得出以下几个结论,跟大家分享下
当你在run一个Java application的时候,这个时候系统会开一个进程。然后这个进程启动了Main线程。Java进程确定虚拟机中没有线程运行的时候,退出进程。或者也可以用System.exit(0);强制退出进程

Vector对象和ArrayList一样可以随意插入不同类的对象,因为其动态扩展的特性,不需要考虑容量限制。事实上Vector与ArrayList的实现方式非常相似,但是ArrayList中的方法没有synchronized关键字修饰,而Vector类中的方法都有synchronized关键字修饰,其中的单个方法都属于原子操作,是线程安全的。
使用输出流和输入流进行读写数据时,会出现部分中文乱码的问题,如下代码是按字节进行数据写入,当改变字节的大小时,出现中文乱码的位置还不一样
引用API文档:“public int read(byte[] b) throws IOException:从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。 ”