JAVA基础类库

获取用户键盘输入:

系统里,System.in代表键盘----如果直接用System.in很麻烦,通常都会进行包装。

A,传统会包装成BufferedReader —这个更安全,而且有完善的异常机制
B,Scanner ----更简单

系统相关的两个类

System----代表JVM所在的操作平台。

in----代表标准输入,通常标准输入就是键盘
out----代表标准输出,通常代表屏幕

exit(int status):退出虚拟机。
无论还有方法,线程都会结束。

getenv()----获取所有的环境变量。
getenv(String name)----获取指定环境变量的值
static Properties getProperties()----获取所有系统属性
static String getProperty(String key)----获取指定系统属性的值。

Runtime----代表虚拟机所在的JRE。

JRE = JVM+核心类库
通俗的说,如果要获取操作平台相关的特性,用System。
如果要获取JVM相关的特性,用Runtime。

典型的“单例类”,它的构造器被隐藏了,因此只能通过**getRuntime()**方法来获取实例。
rt.maxMemory()----虚拟机总的内存
rt.totalMemory()----虚拟机所有已分配的内存
rt.freeMemory()----虚拟机空闲的内存
//如果没有用绝对路径,会到PATH环境变量所指定的系列路径中搜索。
运行操作系统已有的程序:.exec(“此位置填想运行程序的路径。”)

常用类

Object类

Object类提供的一些常用方法:

  • equals(Object obj):判断指定对象与该对象是否相等。此处的相等的标准是,两个对象是同一个对象。【通常要重写,自己添加判断标准】
  • protected void finalize():当系统中没有引用变量引用该对象是,垃圾回收器调用此方法来清理该对象的资源。
  • getClass():返回该对象的运行时类。
  • hashCode():返回该对象的hashCode值。
  • toString():返回该对象的字符串表达式;【通常要重写成自己需要的格式。】
  • clone():该方法用于帮助其他对象来实现“自我克隆”,就是得到一个当前对象的副本,而且二者之间完全隔离。【clone()方法实现的是一种“浅克隆”,只克隆该对象的所有成员变量值,不会对引用类型的成员变量值所引用的对象进行克隆】
  • requireNonNull(参数):当传入的参数不为null时,该方法返回参数本身;否则引发NullPointerException异常。

String、StringBuffer和StringBuilder类

三者的联系:

  • String类不可变类,一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。
    【方法】:见API文档
  • StringBuffer类的对象是可以改变的,线程安全,性能略低
    【方法】:①append():追加字符串
    ②insert():插入
    ③reserve():反转
    ④replace():替换
    ⑤delete():删除
    ⑥setLength():改变长度
  • StringBuilder类的对象可以改变没有实现线程安全功能,性能略高
    【方法】:①append():追加字符串
    ②insert():插入
    ③reserve():反转
    ④replace():替换
    ⑤delete():删除
    ⑥setLength():改变长度

Math类

【方法】:API文档

ThreadLocalRandom与Random类

Random类主要用于产生一个伪随机数。
它有两个构造器:①一个构造器使用默认的种子(以当前时间作为种子)
②该构造器需要程序员显式传入一个long型整数的种子

Random:如果这个类的两个实例是用同一个种子创建的,对它们用同样的顺序调用方法,则它们会产生相同的数字序列【伪随机数】

为了避免两个Random对象产生相同的数字序列,通常推荐使用当前时间作为Random对象的种子Random rand = new Random(System.currenTimeMillis());

在多线程环境下使用ThreadLocalRandom的方法与使用Random基本类似。

日期、时间类

Date类

构造器:
①Date():生成一个代表当前日期时间的Date对象。
②Date(long date):根据指定的long型整数来生成一个Date对象。

方法:
①after(Date when):测试该时间是否在指定日期when之后。
②before(Date when):测试该时间是否在指定日期when之前。
③getTime():返回该时间对应的long型整数。
④setTime(long time):设置该Date对象的时间。

Calendar类

抽象类
构造器受保护
调用getInstance()来获取实例

Calendar可以转换成Date。通过方法–>getTime()

【方法】:
set(年,月,日,时,分,秒)

set(Field ,value):将给定的日历字段设置为给定值

add(Field ,value):在给定的日历字段加或减去给定值

roll(Field ,value):在给定的日历字段加或减去给定值

add与roll的区别:roll超过该Field最大的范围时,也不会向上一个字段进位。add则会发生。

正则表达式

概念:所谓正则表达式,就是一个可以匹配N个字符串的字符串模板。

String里的如下方法与正则表达式有关:

  • matches(String regex)–判断字符串是否能匹配【正则表达式模板】
  • replaceAll(String regex ,String replacement)-将该字符串中所有匹配regex的字串替换成replacement。
  • replaceFirst(String regex ,String replacement) - 将该字符串中第一个匹配regex的字串替换成replacement。
  • split(String regex) - 以regex作为分隔符,把该字符串分割成多个字串。

特殊字符【P264】

  • ( )
  • [ ]
  • { }
  • *
  • +
  • \
  • ?
  • |
  • ^ :表示一行的开头
  • $ :表示一行的结束

正则表达式所支持的通配符:

  • . -> 可匹配任意字符【P264】
  • \s ->代表一个任意的空白(空格 或 Tab) 【space】
  • \S ->代表一个任意的非空白
  • \d ->代表一个任意的数字 【digital】
  • \D ->代表一个任意的非数字
  • \w ->代表一个任意的单词字符 【word】
  • \W ->代表一个任意的非单词字符

方括号表达式【p265】

  • 枚举:[ax中] -> 代表a或x或中 其中的任意一个字符。
  • 范围:[a-f] -> 代表a,b,c,d,e,f其中的任意一个字符。
  • 枚举与范围并存:[a-f5-7]: 代表a,b,c,d,e,f,5,6,7其中的任意一个字符。
  • 表示求否:[^a-c]:不是a,b,c字符中的任意一个字符。
  • 表示求交:[a-g&&[^b-d]]:表示a-g范围里除开b-d以外的数。

表示出现次数的“副词”

  • ? :表示它前面的东西可以出现0~1次。
  • *:表示它前面的东西可以出现0~N次。
  • +:表示它前面的东西可以出现1~N次。
  • {n,m}:表示它前面的东西最多可以出现n-m次。
  • { ,m}:表示它前面的东西最多可以出现m次。
  • { n, }:表示它前面的东西最少要出现m次。
  • { n }:表示它前面的东西必须要出现n次。

Pattern、Matcher类

  • Pattern: 就是代表正则表达式模板
  • Matcher:代表一个匹配工具类
    find():返回目标字符串中是否包含于Pattern匹配的子串。
    group():取出上一次于Pattern匹配的子串。
    matches():返回整个目标字符串与Pattern是否匹配。

如果想正则表达式实现一些更复杂的功能,可能还需要用到Pattern、Matcher

国际化

希望一个程序,可以“自适应”所有用户环境。
Internationalization -> I18N

本质就是----查找,替换

资源文件----负责为程序 提供 国际化消息。

资源文件名称必须满足格式:baseName_语言代码_国家代码.properties

如果资源文件中包含了非西欧字符,就需要使用native2ascii工具类来处理。

native2ascii 要处理的文件名 生成的新文件名

Locale - 代表语言、国家环境
ResourceBundle - 负责加载指定资源文件,而且帮我们查找、替换
MessageFormat - 负责为消息中的占位符填充参数值

国际化步骤:
①提供资源文件。负责为程序 提供 国际化消息

②使用ResourceBundle加载国际化资源文件
getBundle(baseName,语言代码_国家代码);
搜索资源文件的顺序:
A.baseName_语言代码_国家代码.properties
B.baseName_语言代码.properties
C.baseName.properties

③调用ResourceBundle的getMessage()方法输出国际化消息。

本质就是:让ResourceBundle帮我们进行查找、替换

格式化的相关类

使用NumberFormat格式化数字

格式数字:就是讲数值转换为相应的字符串。

①它提供了如下方法来获取NumberFormat实例。

  • getCurrencyInstance():格式成货币字符串。
  • getIntegerInstance():格式化成整数字符串。
  • getPercentInstance():格式化成百分号字符串。

②得到实例之后,调用它的如下方法

  • String format(double number):将数值转换成相应的字符串。

使用DateFormat格式化日期、时间

**格式化日期:**将日期转换为相应的字符串

①先获取DateFormat的实例

  • getDateInstance() — 得到一个日期格式器,格式化出来的字符串只有日期部分。
  • getTimeInstance() — 得到一个日期格式器,格式化出来的字符串只有时间部分。
  • getDateTimeInstance() — 得到一个日期格式器,格式化出来的字符串有日期、时间。

可以指定日期、时间的风格:FULL / LONG / MEDIUM / SHORT
还传入Local,用于指定格式化适应哪个国家的字符串。

②得到实例后,调用它的如下方法

  • String format(Date d):将日期转换成相应的字符串。

使用SimpleDateFormat格式化日期

它可以做两件事:

①将日期格式化成字符
②也可以将字符串解析成日期

用法:①创建SimpleDateFormat实例,需要传入一个模板字符串

②如果要格式化,用format
如果要解析,用parse方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值