java基础类库

来源:互联网 发布:西南民族大学知乎 编辑:程序博客网 时间:2024/06/04 20:15

7.1 与用户互动

7.1.2 使用Scanner获取键盘输入

Scanner是一个基于正则表达式的文本扫描器,它可以从文件、输入流、字符串中解析出基本类型值和字符串值

 

Scanner主要提供两个方法来扫描输入

1.hasNextXxx()是否还有下一个输入项 有可能会造成方法阻塞

2.nextXxx()  获取下一个输入项

 

Scanner提供了两个简单的方法来逐行读取

Boolean hasNextLine() 返回输入源是否还有下一行

String nextLine() 返回输入源中下一行的字符串

 

7.2 系统相关

java在不同的系统上运行时,可能需要获取的平台相关的属性,或者调用平台相关属性来完成相应的功能 java 提供了 System Runtime类来与程序的平台进行交互

7.2.1 System

System类代表当前 java程序运行平台,程序不能创建System类的对象 而是直接使用System类来调用该类的方法

有关java中使用native的操作

1.java程序中申明native修饰的方法,类似abstract方法 编译该java程序

2.javah编译第一步生成的class文件,将产生一个.h文件

3.写一个.cpp文件实现native方法(这一步需要包含第二步产生的.h文件 这个文件中又包含了JDK带的JNI.h文件)

4.将第三部的.cpp文件编译成动态链接库文件

5.java中用System类的loadLibrary()方法 或者Runtime的该方法加载第4步产生的文件

 

identityHashCode()值时根据对象的地址计算得到的 所以任何两个对象的identityHashCode都不相同

 

7.2.2Runtime

Runtime 类代表着java运行时的环境,每个java程序都有一个与之对应的Runtime类,应用程序通过该队列与运行时了关联    

应用程序不能创建直接的Runtime类实例,但是可以通过getRuntime()方法获取与之关联的对象  Runtime rt = new Runtime.getRuntime() ;

 

7.3 常用类

7.3.3 String StringBuffer StringBuilder

字符串是一连串的字符系列

StringBuffer 可以调用toString()方法把其转化为一个String对象

 

java 1.5 新增了StringBuilder类,实际上StringBuffer(线程安全)和StringBuilder(非线程安全)基本相似

 

String StringBuffer StringBuilder 都实现了CharSequence接口 可以认为是一种字符串协议接口

String是不可变类 所以会额外产生很多临时变量

 

7.3.4 Math

Math是一个工具类 ,它的构造器被定义成private因此无法创建Math类的对象

 

7.3.5 java 7 ThreadLocalRandomRandomRandom 

Random类时专门用于生产一个伪随机数,它有两个构造器

1.使用默认的种子(以当前时间作为种子)

2.需要程序员显示输入一个long型整数的种子  使用了48位种子

推荐使用当前时间作为Random作为对象的种子

 

ThreadLocalRandom 类时java 7新增的一个类 ,它是Random的增强版,在并发访问的情况下 使用ThreadLocalRandom

ThreadLocalRandom 的方法和Random方法相似,它提供了一个静态的current()方法来获取ThreadLocalRandom对象 该对象可以调nextCXxx()方法来获取伪随机数

 

7.3.6 BigDecimal

为了能精确的表示 。计算浮点数 java提供了BigDecimal

创建BigDecimal对象时,不要直接使用double作为构造器参数来调用BigDecimal构造器 会发生精度丢失 而是应该采用 在构造器中传入字符串

 

7.4 java 8 的日期 时间类

Date无法实现国际化,而且它对不同属性也使用了前后矛盾的偏移量

7.4.2 Calendar

Calendar 类本身就是一个抽象类,它是所有日历类的模板  

Calendar 类提供了几个静态getInstance()方法来获取Calendar对象

 

7.5 正在表达式

正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割 替换

java提供了PatternMather两个类专门用于提供正在表达式的支持

 

* 表示出现0次或者多次

+ 表示可以出现一次或者多次

? 表示可以出现0此或者一次

.表示可以匹配任何字符

\d 0 ~ 9的数字

\D 匹配非数字

\w表示匹配所有的单词字符 包括0 ~ 926个英文字母

\W匹配非单词字符

^ 表示求否

 

这个则表达式支持数量标识符有如下几种模式

Greedy 贪婪模式 贪婪模式表示会一直匹配下去,知道无法匹配为止

Reluctant 勉强模式 用问号后缀表示 它只会匹配最少的字符,也被称为最小匹配模式

Possessive 占有模式 用加号后缀表示

 

7.5.2 使用正则表达式

一旦程序中使用定义了正则表达式,就可以使用PatternMatcher来使用正则表达式

Pattern 对象是正则表达式编译后再内存中的表示形式,因此,在正则表达式字符串必须先被编译为Pattern对象,然后在利用该Pattern对象创建对应的Matcher对象。执行匹配所涉及的状态保留在Matcher对象中 多个Matcher可以共享同一个Pattern对象

7.6 国际化与格式化

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

目的是为了提供自适应 更友好的用户界面,并不需要改变程序逻辑功能

 

Locale getAvailableLocaler()方法  该方法返回一个Locale数组,该数组包含了java所支持的国家和语言

 

7.6.6 使用NumberFormat格式化数字

parse()方法 用于将字符串解析成数值 日期

format()用于将数值 日期格式化成字符串

 

 

0 0
原创粉丝点击