Java相关知识点(三)---java基础类库

一, 与用户互动以及Scanner类
1,public static void main(String[] args): main()方法属于java类;由JVM调用,args为字符串数组形参:

public class ArgsTest{
    public static void main(String[] args){
        //输出args数组的长度
        System.out.println(args.length);yi
        //遍历args数组的每个元素
        for(String arg:args){
            System.out.println(arg);
        }
    }
}

这里,编译运行后输入命令 java ArgsTest / java ArgsTest Java Spring/ java ArgsTest “java Spring ” 三个命令会有不同的结果。
2,Scanner类: 提供了两个方法来扫描输入:hasNextXxx(),和nextXxx():
例如:hasNext()和next(); hasNextLine()和nextLine()逐行读取;可以获取任意基本类型的输入项:hasNextLong()和nextLong()等; Scanner可以读取文件;

//建立Scanner类,System.in为标准输入,即键盘输入
Scanner sc = new Scanner(System.in);
//设置分割符
sc.useDelimiter("\n");
//判断是否有下一个输出项并输出结果
while(sc.hasNext()){
    System.out.println(sc.next());
}
//scanner读取文件内容
Scanner sc = new Scanner(new File("xxx.java"));

二 System类以及Runtime类:这两种类实现与程序的运行平台进行交互
1,System类中identityHashCode(object x)方法,返回指定对象精确的hashcode值,与地址有关,故可以唯一的标识对象;不同对象地址不同,hashcode不同;currentTimeMills(),返回毫秒,nanoTime(),返回纳秒值,与1970年1月1日相差。
2,runtime类:Runtime rt = Runtime.getRuntime();,可以获得处理器数量,内存数量等相关知识,并可以启动记事本进程;

public class RuntimeTest{
    public static void main(String[] args){
        //获取Java程序关联的运行时对象
        Runtime rt = Runtime.getRuntime();
        System.out.println("处理器数量 " 
            + rt.availableProcessors());
        System.out.println("空闲内存数 " 
            + rt.freeMemory());
        System.out.println("总内存数 " 
            + rt.totalMemory());
        System.out.println("可用最大内存数 " 
            + rt.maxMemory());
        //运行记事本程序
        rt.exec("notepad.exe");
    } 
}

三,常用类–object类,objects类,String类,StringBuffer类,StringBuilder类,ThreadLocalRandon类与Random类,BigDecimal类
1,object类以及7以后新增的objects类: object类的方法有: equals(),finalize()(垃圾回收机制),getClass():返回该对象的运行实类;hashcode();toString()类;以及protected修饰的clone()类。objects
类为工具类,常用来对方法形参进行输入校验;

public Foo(Bar bar){
    this.bar = Objects.requireNonNull(bar);
}
2,String, StringBuffer, StringBuilder三者的区别: 
String类为不可变类;对象被创建后不可修改其字符串;
StringBuffer类为可变类,即其字符序列可变。如其append方法,insert方法,reverse方法,setCharAt方法,以及setLength方法等等。
后两者可变类有两个属性,length和capacity。后者通常大于前者。
3,Math类;ThreadLocalRandom类与Random类。
4,BigDecimal类,提供了大量的构造器用于创建BigDecimal对象,提高精确度?解决精确度丢失的问题??

四,日期,时间类(Date,以及Calender类)

五,正则表达式:用于处理字符串的工具
1,数量标识符的几种模式: 贪婪模式,勉强模式,以及占有模式。
2,正则表达式的使用方法: Pattern和matcher。Pattern对象时正则表达式编译后再内存中的表现形式。所以,必须先把正则表达式编译为Pattern对象,然后利用Pattern对象创建matcher对象。多个matcher对象可共享一个Pattern对象。

//将一个字符串编译为Pattern对象
Pattern p  = Pattern.compile("a*b");
//使用Pattern对象创建matcher对象
Matcher m = p.matcher("aaaaaaab");
boolean b = m.matches();
//或者直接使用Pattern类中的静态matches方法
boolean b = Pattern.mateches("a*b""aaaab");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值