java 常见类_Java常用类

一.Scanner获取键盘输入

1.主要方法有:(1)hasNextXxx(); 是否还有下一个输入项

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

(3)还可以文件输入,这里省略;

例子:

importjava.util.Scanner;/***

*@authorfengkuirui

* @date 2017-02-08

* Scanner获取键盘输入;*/

public classScannerKeyBoardTest {public static voidmain(String[] args) {//System.in代表标准输入,也就是键盘输入;

Scanner cin = newScanner(System.in);//默认空格 \t \n为分隔符

cin.useDelimiter("\n");//设置\n为输入分隔符

while(cin.hasNext()){//判断是否还有下一个项//输出输入项

System.out.println(cin.next());

}

}

}

2.所有方法一览表

cae9c1d64b99b8ef5331d00d151db148.png

二、System的相关用法

System类代表当前Java程序的与运行平台,程序无法创建System的对象,System类提供了一下类方法和类变量,允许直接使用。

1.获取系统的环境变量

importjava.util.Map;/***

*@authorfengkuirui

* @date 2017-02-08

* 获取系统变量*/

public classSystemTest {public static voidmain(String[] args) {//获取系统的环境变量;

Map env =System.getenv();for(String name:env.keySet()){//遍历集合

System.out.println(name+" ----> "+env.get(name));

}

}

}

测试结果如下:

4d2d7ee847e40457cfd5a7902be54cfa.png

2.区别相同的Hashode码而不同的对象;

/***

*@authorfengkuirui

* @date 2017-02-07

* 区别于HashCode,*/

public classIdentityHashCode {public static voidmain(String[] args) {

String s1= new String("Java");

String s2= new String("Java");

System.out.println(s1.hashCode());

System.out.println(s2.hashCode());

System.out.println(System.identityHashCode(s1));

System.out.println(System.identityHashCode(s2));

}

}

三、Runtime类

Runtime类代表Java程序的运行环境,每个程序都有一个与之对象的Runtime实例,应用程序不能自己创建Runtime实例,只能依靠getRuntime()方法获取;

1.Runtime获取JVM的相关信息

/***

*@authorfengkuirui

* @date 2017-02-07

* Runtime测试*/

public classRuntimeTest {public static voidmain(String[] args) {

Runtime rt=Runtime.getRuntime();

System.out.println("处理器数量"+rt.availableProcessors());

System.out.println("空闲内存"+rt.freeMemory());

System.out.println("总内存"+rt.totalMemory());

System.out.println("最大可用内存"+rt.maxMemory());

}

}

2.Runtime单独启动一个进程来运行操作系统的命令

/***

*@authorfengkuirui

* @date 2017-02-07

* 单独启动一个进程来运行操作系统后对明令

**/

public classExecTest {public static void main(String[] args) throwsException {

Runtime rt=Runtime.getRuntime();

rt.exec("notepad.exe");//命令行启动记事本

}

}

四、常用类

1.Object类

Object类是所有类的父亲,也就是java允许把任何类型的对象赋值给Object类

所提供的的常用方法:

boolean equals(Object obj) 判断两个对象的值是否相等

Class> getClas() 返回运行时类

int hashCode() 返回该对象的hashCode值

String toString() 返回给对象的字符串表示

Object clone() 自我copy机制十分高效,

系统默认拷贝比静态copy速度快到两倍

浅克隆--只克隆该对象的所有成员变量,不会对引用类型的成员变量值所引用的对象进行克隆

深克隆--则全部拷贝

简单应用:

/***

*@authorfengkuirui

* @date 2017-02-08

* 实现自我克隆*/

classAddress{

String detail;publicAddress(String detail){this.detail =detail;

}

}//实现Clone接口

class User implementsCloneable{intage;

Address address;public User(intage){this.age =age;

address= new Address("china");

}//super.clone()来实现clone()

public User clone()throwsCloneNotSupportedException{return (User)super.clone();

}

}public classCloneTest {public static void main(String[] args)throwsCloneNotSupportedException {

User u1= new User(29);//通过clone得到u2

User u2 =u1.clone();//判断u1和u2是否相同

System.out.println(u1 ==u2);//判断u1,u2的address是否相同

System.out.println(u1.address ==u2.address);

}

}

结果如下:

66952e01d18d9953324721e4440278fd.png

2.Objects(java 7 新增)

允许出现null,一个空的对象的hashCode值为0,toString为null而不是抛出异常,减少了空指针的异常抛出

样例:

importjava.util.Objects;/***

*@authorfengkuirui

* @date 2017-02-08

* Objects简单测试*/

public classObjectsTest {//定义一个obj,默认值为null;

staticObjectsTest obj;public static voidmain(String[] args) {//输出obj的hashCode

System.out.println(Objects.hashCode(obj));//输出obj的toString();

System.out.println(Objects.toString(obj));

}

}

结果如下:

9bc6e816430066926b0d4b0120050a10.png

3.String,StringBuffer,StringBuilder类

String类为不可变的字符序列,每次改变时,本身并不改变,而是重新创建堆,这样就会浪费大量内存,造成较大开销;

StringBuffer类和StringBuilder类本质上是类似的,知识StringBuffer是线程安全的,而StringBuilder类没有实现线程安全机制,则不安全,但是其性能较高。

具体的方法将不一一叙述。

4.Math类

Math提供基本的数学运算方法。

5.ThreadLocalRandom和Random类

Random类专门用于产生一个伪随机数。ThreadLocalRandom是Random的增强版,在并发访问的环境下,使用前者代替后者可以减少资源竞争,保证系统具有良好的线程安全选性。

6.BigDecimal类

前边所提到的float,double两种基本的浮点类型已经指出,在运算时很容易引起精度丢失:

样例:

/***

*@authorfengkuirui

* @date 2017-02-08

* 精度丢失*/

public classDoubleTest {public static voidmain(String[] args) {

System.out.println("0.05 + 0.01 = "+(0.05+0.01));

System.out.println("1.0 - 0.42 = "+(1.0-0.42));

System.out.println("4.015 * 100 = "+(4.015*100));

System.out.println("123.3 / 100 = "+(123.3/100));

}

}

595645410b742f8ce9a2a8df204afded.png

针对上面的问题,Java提供了BigDecimal类,该类提供大量构造器用于创建BigDecimal对象,就能解决这个精度丢失的问题;

样例:

/***@authorfengkuirui

* @date 2017-02-08

* 解决精度丢失问题

**/

importjava.math.BigDecimal;public classBigDecimalTest {public static voidmain(String[] args) {

BigDecimal f1= new BigDecimal("0.05");

BigDecimal f2= BigDecimal.valueOf(0.01);

BigDecimal f3= new BigDecimal(0.05);

System.out.println("使用String作为构造器参数");

System.out.println("0.05 + 0.01 = "+f1.add(f2));

System.out.println("0.05 - 0.01 = "+f1.subtract(f2));

System.out.println("使用double作为构造器的参数");

System.out.println("0.05 + 0.01 = "+f3.add(f2));

System.out.println("0.05 - 0.01 = "+f3.subtract(f2));

}

}

结果如下:

ce26d2efa39dd2e4c337c860e44377fc.png

7.日期类

(1)Date类,其大部分的构造器和方法都已近过时了,所以就详细学习了;

(2)Calendar类

Calendaer类在Date的基础上,更好的处理处理时间,该类是个抽象类,不能用构造器来创建对象,但是其有几个静态的getInstance()方法来获取Calendar对象。

样例如下:

importjava.util.Calendar;importjava.util.Date;/***

*@authorfengkuirui

* @date 2017-02-08

**/

public classCalendarTest {public static voidmain(String[] args) {//创建一个calendar默认对象

Calendar cal =Calendar.getInstance();//从中获取Date对象

Date date =cal.getTime();//通过Date获取Calendar对象//必须先获得Calendar的一个实例

Calendar cal2 =Calendar.getInstance();

cal2.setTime(date);

}

}

Calendar的常用方法:

void add(int field, int amount);

int get(int field);

void roll(int field, int amount);

(3)DateTimeFormatter类完成格式化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值