第七章java基础类库_疯狂java第七章——java基本类库

https://www.jianshu.com/p/952b32273e23

7.1 与用户互动

7.1.1 运行java程序的参数

7.1.2 使用scanner获取键盘输入

Scanner sc=new Scanner(System.in);

hasNextXXX()

NextXXX()

useDelimiter("\n")

7.2 系统相关

获取平台相关属性,调用平台命令来完成特定功能

7.2.1 System类

代表当前java程序的运行平台,程序不能创建system对象,System类提供一些类变量和类方法,直接使用。

identityHashCode(),如果两个对象的identityHashCode 相同,两个对象绝对是同一个对象。任何两个对象的identityHashCode一定不同

7.2.2 Runtime类

Runtime代表Java 程序的运行时环境,应用程序不能创建自己的runtime实例,但是可以通过getRuntime()方法获取与之相关的runtime对象

可以直接单独启动一个进程来运行操作系统的命令。rt.exec("notepad.exe")

7.3 常用类

7.3.1 Object类

object类是所有类的父类,允许把任何对象赋给object类型的遍历。

提供了一个protect修饰的clone() 方法

继承cloneable接口

实现自己的clone()方法

通过super.clone()

clone(0方法只是对对象里面的实例变量进行简单复制,如果实例变量时引用类型,则只是复制了引用,依然指向之前的实例。

7.3.2 java7新增的Objects类

提供了一些方法来操作对象,大多是空指针安全的

7.3.3 String、StringBuffer和StringBuilder类

string类是不可变的

Stringbuffer stringbuilder是可变的,string builder更常用。

7.3.4 Math类

直接用类名调用方法

7.3.5 java7的ThreadLocalRandom与Random

Random 类专门生成伪随机数,一个构造器使用默认的种子,一个构造器显式传入一个long型整数种子。

rand.nextInt();

rand.nextLong()

当种子相同时,产生相同的数字序列,默认种子属于同一个种子。

常用传入当前时间

Random rand=new Random(System.currentTimeMillis());

7.3.6 BigDecimal类

用于精确表示和计算浮点数。

BigDecimal f1=new BigDecimal("0.05")

BigDecimal f2=BigDecimal.valueOf(9.2);

BigDecimal f3=new BigDecimal(0.09);

第三种直接赋值会损失精度,所以用前两种方法。

7.4 java8的日期、时间类

7.4.1 Date类

7.4.2 Calender类

7.4.3 java8新增的日期、时间包

7.5 正则表达式

是一种强大的字符串处理工具,

7.5.1 创建正则表达式

7.5.2 使用正则表达式

Pattern 和matcher来使用正则表达式

Pattern p=Pattern.compile("a*b");//将一个字符串编译成Pattern对象

Matcher m=p.macher("aaaaab");

boolean b=m.matches();

find()和group() 可以 从目标字符串中依次去处特定字符

while(m.find())

{

m.group();

}

reset()方法可以把现有的matcher对象应用于新的字符序列。

7.6 国际化与格式化

国际化是指应用程序运行时,可根据客户端请求来自的国家/地区,语言的不同而显示不同的界面

7.6.1 java国际化思路

国际化思路是将序列中的标签提示等信息放在资源文件中,程序需要支持哪些国家,语言环境,就对应提供相应的资源文件。

主要通过三个类完成

java.util.ResourseBundle:用于加载国家,语言资源包

java.util.Locale:用于封装特点的国家/区域,语言环境

java.text.MessageFormat:用于格式化带占为符的字符串

7.6.2 java支持的国家和语言

7.6.3 完成程序国际化

native2ascii mess.properties mess_zh_CN.properties生成mess_zh_CN.properties文件

Locale myLocale=Locale.getDefault(Locale.Category.FORMAT);

ResourceBundle bundle =ResourceBundle.getBundle("mess",myLocale);

System.out.print(bundle.getString("hello"));

国际化就是,将不同语言的提示信息(locale)分别以不同的文件存放。

关键类ResourceBoundle 有一个静态方法getBundle(String baseName,Locale locale),该方法将根据locale加载资源文件,而locale封装了一个国家,语言。

ResourceBundle bundle =ResourceBundle.getBundle("mess",myLocale);

会加载mess的系列资源文件之一,到底加载其中的哪个,u取决于mylocale

7.6.4 使用MessageFormat处理包含占位符的字符串

如果需要输出的消息必须包含动态内容,可以使用带占位符的消息。

7.6.5 使用类文件替代资源文件

条件:

类名必须是baseName_laanguage_country

必须继承ListResourceBundle 并且重写getContents() 返回object数组

7.6.6 使用NumberFormat格式化数字

7.6.7 使用DateFormat格式化日期时间

Locale[] locales={locale.CHINA,locale.US};

DateFormat[] df=new DateFormat[16];

df[i*8]=DateFormat.getDataInstance(SHORT,locales[i]);

7.6.8 使用SimpleDateFormat格式化日期

Date d=new Date();

SimpleDateFormat sdf1=new SimpleDateFormat(yyy年中第D天)

string dataStr=sdf1.format(d);

7.7 java8新增的日期、时间格式器

DateTimeFormatter

如何获取DateTimeFormatter对象

这个和前边的区别是时间.ormat(格式)。(格式用DateTimeFormatter创建)

前边的都是(格式).format(日期/数字)(格式用SimpleDateFormat,或者DateFormat或者NumberFormat创建)

一,后2个创建格式的方法

1.locale 创建locale

2 创建这2个类型对应的对象。

3.通过get,,,,()取得对象nf,df。

4.nf.format(内容)

二,第二个创建格式方法

1.先取得日期

2.创建对象的同时定义格式(一般是格式字符串)

3.(格式).format(日期/数字)

三,第一个创建格式的方法

1.创建对象同时定义格式(可以是常量,或者模式字符串)

2.取得时间

3.时间,format(格式)

作者:娄童

链接:https://www.jianshu.com/p/952b32273e23

来源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

标签:类库,java,BigDecimal,locale,7.3,7.6,第七章,格式

来源: https://blog.csdn.net/m0_37635487/article/details/99084908

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值