System类和Runtime类1

189 未经授权,禁止转载了解课程
课程介绍
讨论{{interaction.discussNum ? '(' + interaction.discussNum + ')' : ''}}
适合人群
Java工程师,Java高级程序员,Java架构师
你将会学到
讲解Java常用的API(包装类、字符串、System、随机数、日期时间)。
课程简介

包装类:

一、包装类
java针对8中基础类型都包装了对应的引用类型(都放在java.lang包下)
byte    Byte
short    Short
int    Integer
long    Long
char    Character
float    Float
double    Double
boolean    Boolean
注:JDK5新特性
自动装箱和拆箱

二、包装类的用途
1)静态常量
MAX_VALUE
MIN_VALUE
SIZE
2)提供与字符串相关转换的静态方法
XXX.parseXxx(String)//字符串转特定类型

3)其他工具方法
如:把整数转换为其他进制表示
toBinaryString(int i)
toHexString(int i)
toOctalString(int i)

字符串:

一、字符串
字符串本质上就是一个不可修改的char数组
"abc"==['a','b','c']
二、字面值声明和new构造器声明
String a="abc";
String a2="abc";
String b=new String("abc");
区别:
a是存放在方法中中的字符串池中
b是存放在堆空间中
其他使用上没有任何区别,一般都是通过字面值声明
三、常用方法
1)字符串和char[]相互转换
char[] toCharArray()
          将此字符串转换为一个新的字符数组。
String(char[] value) //构造器

2)测试字符串

boolean equals(Object anObject)
          将此字符串与指定的对象比较。
boolean equalsIgnoreCase(String anotherString)
          将此 String 与另一个 String 比较,不考虑大小写
      
boolean endsWith(String suffix) "abc" -"ab"
boolean startsWith(String prefix)

3)查找字符
indexOf
          返回指定字符在此字符串中第一次出现处的索引。
lastIndexOf
          返回指定字符在此字符串中最后一次出现处的索引
char charAt(int index)
          返回指定索引处的 char 值。
4)字符串处理
substring //取子串
toLowerCase() / toUpperCase()  大小写转换
String trim() //去掉前后空格
split(String regex) //根据给定正则表达式的匹配拆分此字符串
四、字符串构建
StringBuilder/StringBuffer
方法:
append 追加
insert 插入
delete(int start, int end)  删除多个字符
deleteCharAt(int index) 删除一个字符
replace(int start, int end, String str) 替换多个
setCharAt(int index, char ch) 替换一个
toString();//转换为字符串

System类和Runtime类:
一、java.util.Random
这个类的对象用于生产随机数
1)创建对象
Random()
          创建一个新的随机数生成器。
Random(long seed)
        使用单个 long 种子创建一个新的随机数生成器。
    如果种子一样,则生产的随机数序列是一样的
2)常用方法
nextBoolean()
nextDouble()
nextFloat()
nextInt()
nextInt(int n)
nextLong()

二、Math.random()
底层就是使用Random类


日期函数:

一、java.util.Date(表示一瞬间)
类 Date 表示特定的瞬间,**到毫秒。表示某个时间点到1970/01/01/00/00/00的毫秒数
用法:
Date currentTime=new Date();//表示当前时间
Date currentTime=new Date(100);//表示1970/01/01/00/00/00过100毫秒后的时间

需要学习方法:
long getTime()//返回date对象实际毫秒数
void setTime(long ms)//设置date对象的毫秒数
二、java.util.Calendar(用途:操作时间对象)
此类是抽象类,需使用其静态方法来获得其对象

用法:
Calendar calendar = Calendar.getInstance();// 操作时间的对象
//设置需要操作的时间,如果未调用此方法,则默认处理当前时间
calendar.setTime(java.util.Date对象);
//增加时间
calendar.add(某个时间字段,年月日等(使用Calendar的静态变量), 增加值);
//设置时间
calendar.set(某个时间字段,年月日等(使用Calendar的静态变量), 设置值);
//快速设置时间
calendar.set(1997, 6, 1);
calendar.set(1997, 6, 1, 8, 0,0);
// 获取操作后的时间
Date time = calendar.getTime();

注意:月份是从0开始,如果要设置月份为5月,则传入4

三、格式化和解析:使用java.util.SimpleDateFormat类
用法:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
其中的"yyyy-MM-dd"需要格式化的模式,其中yyyy表示年 M表示月 d表示日,其他请查询SimpleDateFormat这个类的API

1)格式化输出(日期->字符串)
把时间对象(java.util.Date)格式化后输入,(如输出1997年7月1日 23:59:59)
写法:
使用SimpleDateFormat类的format方法,此方法返回格式化后的字符串

2)解析(字符串-日期:把日期时间字符串转换为时间对象)
把某种日期时间格式字符串如(20080101)转换为java中的java.util.Date对象
写法:
使用SimpleDateFormat类的parse方法,此方法返回处理好后的对象
注意:
传入parse方法的格式化字符串必须和构建此对象的模式(pattern)必须一样,否则此方法会抛出ParseException异常
所以我们可以利用此方法是否抛出异常来判断用户是否正确输入

展开更多
发布
头像

{{ item.user.nick_name }} {{ EROLE_NAME[item.user.identity] }}

置顶笔记
讨论图
{{ item.create_time }}回复
  • 删除

    是否确认删除?

    确认
    取消
  • {{ item.is_top == 1 ? '取消置顶' : '置顶'}}

    已有置顶的讨论,是否替换已有的置顶?

    确认
    取消
{{ tag.text}}
头像
{{ subitem.user.nick_name }}{{ EROLE_NAME[subitem.user.identity] }}
{{ subitem.create_time }}回复
删除

是否确认删除?

确认
取消
发布
{{pageType === 'video' ? '讨论区抢占沙发,可获得双倍学分' :'讨论区空空如也,你来讲两句~'}}
发布
{{tips.text}}
{{ noteHeaderTitle }} 笔记{{ hasMyNote ? '我的笔记' : '记笔记' }}
{{ hasMyNote ? '我的笔记' : '记笔记' }}
优质笔记
更新于:{{ $dayjs.formate('YYYY-MM-DD HH:mm:ss', item.last_uptime*1000) }}
头像
{{ detail.username }}

公开笔记对他人可见,有机会被管理员评为“优质笔记”

{{ noteEditor.content.length }}/2000

公开笔记
保存
提问

讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。

记录时间点
记录提问时视频播放的时间点,便于后续查看
公开提问
提交