1.命令行编译和运行java程序
在notepad++中集成java编译运行命令 参考博客:http://blog.sina.com.cn/s/blog_84405af50101q7fn.html
2与用户互动
2.1 运行Java程序的参数
main函数的运行参数是由Jvm在调用该时写进去的,通常不写arg是长度为0的数组
代码:
public class HellowWord{
public static void main(String[] args)
{
System.out.println(args.length);
for(String arg : args)
{
System.out.println(arg);
}
}
}

运行结果:
C:\javacode>java HellowWord sdf dsf fdfsdf
3
sdf
dsf
fdfsdf
3.Scanner获取键盘输入:方便的获得用户输入,Scanner是基于正则表达式的文本扫描器,可以从文本,输入流字符串中解析出基本类型值和字符串值
主要方法:hasNext***();
next**** **代表某种类型
Scanner类所在的包 java.util ----因为我是用notepadd写的代码,不会自动导包
默认情况使用空白分割输入项,有一次读取一行的方法(hasNextLine() nextLine())
usDelimiter(String pattern)参数为正则表达式
*******scanner还能读取文件的输入
file类所在的包名 import java.io.File;(使用时还要处理FileNotFoundException异常)
import java.util.*;
import java.io.*;

public class ScannerKey{
public static void main(String[] args) throws FileNotFoundException
{
Scanner sc = new Scanner(System.in);
/*while(sc.hasNext())
{
System.out.println("读取输入"+sc.next());
}*/
Scanner scFile = new Scanner(new File("HellowWord.java"));
while(scFile.hasNextLine())
{
System.out.println(scFile.nextLine());
}
}
}

4.系统相关类
4.1 System类 代表当前程序运行平台,不能创建对象,使用提供的类变量和方法来完成需要的功能

System的包 import java.lang.System;
System类的方法:getenv()--获取系统的环境变量
getProperties(),getProperty("")--获取当前系统的属性
gc()-- 通知系统进行垃圾回收
runFinalization()--通知系统进行资源清理
long currentTimeMillis() 返回当前时间与1970 1月1日的差
long nanoTime() 纳秒
in out err 标准输入(键盘) 标准输出(屏幕) 错误输出流 还有*****setIn() setOut() setErr()改变系统的标注输入输出,,,
identityHashCode(Object c) 返回指定对象的精确hashCode值,可以唯一标识一个对象(不同对象的值绝对不同)

import java.lang.System;
import java.lang.*;
import java.util.*;
import java.io.*;

public class SystemTest{
public static void main(String[] args) throws IOException
{
Map<String ,String> env = System.getenv();//get all
for(String name : env.keySet())
{
System.out.println(name + "--->" + env.get(name));
}

System.out.println("JAVA_HOME:-----"+System.getenv("JAVA_HOME"));

Properties props = System.getProperties();

props.store(new FileOutputStream("props.txt"),"System Properties");

System.out.println(System.getProperty("os.name"));

}
}

5.Runtime类---java运时的环境(每个程序都有与之对应的Runtime实列)
5.1 无法创建对象,只能通过getRuntime()获得
5.2 提供了与System类似的 gc() runFinalization()回收资源,提供load(String filename) loadLibrary(String libname)加载文件和链接库
availableProcessor()获得JVM处理器数量
freeMemory() 空闲内存数
totalMemory() 总内存数
maxMemory() 最大可用内存数

单独启动一个进程执行操作系统的命令:exec("exename")

上面都是系统相关类
下面是常用类:

1.Object类是所有类的父类,java对象可以调用Object类的方法
boolean equals(Object o):判断指定对象与该对象是否相等,标准是两个对象是同一个对象,无太大使用价值
protected void finalize():无引用到该对象的变量时1,调用此方法回收该对象的资源
Class<?> getClass() 返回该对象的运行时类
int hashCode() 返回根据地址计算的hash值
String toString()默认返回:运行时类名@十六进制hash值
wait()线程操作方法

protected clone();***********************浅克隆--只克隆了成员变量,但没clone引用型变量引用的值
自定义类实现"克隆”:
实现Cloneable接口
自定义clone方法(方法内调用super.clone())

2.java7新增的Objects类:主要是空指针安全,对象为空时不会出现空指针异常

3.String StringBuffer StringBulider
String是不可变类,一旦被创建就不会改变,StringBuffer代表一个字符序列可变的字符串,被创建后可以根据提供的方法对字符串进行更改完成后可调用toString()变成String
,StringBuilder性能略高
4.Math类:提供大量的数学操作
5.ThreadLocalRandom(保证系统具有更好的线程安全性,,通过current()来获取对象)和Random(种子相同时,产生相同的数据,伪随机数,推荐当前时间为种子)
6.BigDecimal解决float和double精度丢失的问题
7.日期类Data和Calendar
-------------------------静态导入问题(可以简化代码,减少代码量))?????calendar
import java.util.Calendar.*; Calender.YEAR => YEAR
Calender 提供了add(如果超出范围会产生进位) 和 roll(不会产生进位)两个方法来操作时间日期

Calender提供容错性:setLenient(false);可以关闭容错,但程序运行会抛异常(set(Month,13))

set()方法延迟修改参数:内部日历字段会立即被更改,但Calender代表的字段不会被立即修改,知道下次调用get(),getTime(),getTimeInMillis(),add(),roll()
时才重新计算日历时间********优点,多次调用set()不会触发多次计算
************************************月份的起始是从0开始的********************************************
p261页书上举了一个特殊的例子来标识这种影响

import java.util.*;
import static java.util.Calendar.*;

public class CalendarTest{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH));

c.set(2018,10,23,12,32,23);
System.out.println(c.getTime());
c.add(YEAR,-1);
System.out.println(c.getTime());
c.roll(MONTH,-11);
System.out.println(c.getTime());
}
}
8.java新增的日期包和时间包 java.time

9.正则表达式 Pattern和Matcher专门用于提供正则表达式支持
9.1创建正则表达式,
x 代表任何合法字符
\0mnn 8进制数
\xhh 十六进制字符0xhh
\uhhh 十六进制 0xhhh
\t 代表制表符
\n 换行符
\r 回车符
\f 换页符

。。。。。。。

特殊字符。。。。。

预定义字符(通配符))

方括号表达式(包含运算符^ &&)

支持圆括号表达式

****************** java.util.regex (包)**************************

正则表达式字符串要先编译成Pattern对象:Pattern p = Pattern.compile("正则表达式字符串");
利用p创建Matcher对象 Matcher m = p.matcher("");
执行匹配所涉及的状态保存在Matcher对象中

*****************多个Matcher对象可以共享一个pattern

第七章--Java基础类库--与用户的互动的更多相关文章

  1. 第七章 java基础类库

    1. 日期时间: 用Calendar类. 2. 分隔符:空格.tab.回车. 3. Scanner:读取键盘输入.读取文件. 4. 系统类: System  Runtime. 5. 所有的java类都 ...

  2. 疯狂JAVA——第七章 java基础类库

    System类代表当前java程序的运行平台,程序不能创建System类的对象,System类提供了一些类变量和类方法,允许直接通过System类来调用这些类变量和类方法.

  3. 菜鸡的Java笔记 java基础类库 BaseClassLibrary

    java基础类库 BaseClassLibrary        StringBuffer 类的特点        StringBuffer,StringBuilder,String 类之间的关系   ...

  4. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  5. Java基础类库简介

    Java基础类库简介 一.常用的基础类库:11个jar(Java Archive,Java归档)包 作为java语言使用者,我们可以感受到java语言带来的优势(平台无关.面向对象.多线程.高效易扩展 ...

  6. 第一章 –– Java基础语法

    第一章 –– Java基础语法 span::selection, .CodeMirror-line > span > span::selection { background: #d7d4 ...

  7. Java基础知识二次学习-- 第一章 java基础

    基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...

  8. 九. 常用类库、向量与哈希1.Java基础类库

    Java 的类库是 Java 语言提供的已经实现的标准类的集合,是 Java 编程的 API(Application Program Interface),它可以帮助开发者方便.快捷地开发 Java ...

  9. 七、Java基础---------JDK安装与配置

    配置环境变量名词说明 path:通过path系统去寻找可执行的java文件. JAVA_HOME:JDK的安装目录 classpath:加载目录 为什么需要配置path,什么时候需要classpath ...

随机推荐

  1. cf555e

    cf555e(缩点) 给一个 n 个点 m 条边的图,以及 q 对点 (s,t),让你给 m 条边定向.问是否存在一种方案,使每对点的 s 能走到 t. \(n,m,q≤ 2×10^5\). 首先,在 ...

  2. lamp centos下一键安装

    系统需求 系统支持:CentOS 6+/Debian 7+/Ubuntu 12+ 内存要求:≥ 512MB 硬盘要求:至少 5GB 以上的剩余空间 服务器必须配置好 软件源 和 可连接外网 必须具有系 ...

  3. Selenium3+python异常后截图(screenshot)

    前言 在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望能对当前屏幕截图,留下证据. 在写用例的时候,最后一步是断言,可以把截图的动作放在断言这里,那么如何在断言失败后截图呢? 一.截图方 ...

  4. Python——变量的引用和函数的参数和返回值的传递方式

    变量的引用 在python中,所有的变量都是指向地址,变量本身不保存数据,而是保存数据在内存中的地址.我们用下面的程序来理解: a = 10 print(id(a)) a = 11 print(id( ...

  5. 魔方方法之--类的构造(__init__,__new__)和析构(__del__)方法

    构造方法(参见小甲鱼入门教程) __ init__()方法:类的初始化方法,初始化类对象时被调用,需要的时候再调用它 注意点:这个方法的返回值必须是None class Rectangle(): de ...

  6. php tp5常用小知识

    1. tp5 获取当前访问的模块名,控制器名,方法名 $request= \think\Request::instance(); $module = $request->module(); // ...

  7. Freeman链码

    [简介] 链码(又称为freeman码)是用曲线起始点的坐标和边界点方向代码来描述曲线或边界的方法,常被用来在图像处理.计算机图形学.模式识别等领域中表示曲线和区域边界.它是一种边界的编码表示法,用边 ...

  8. Linux环境查看系统参数

    一.查看CPU信息 lscpu cat /proc/cpuinfo   二.查看CPU位数 getconf LONG_BIT   三.查看MEM信息 free free -m cat /proc/me ...

  9. yyy的python3第八天学习

    望着小月亮:https://www.cnblogs.com/triple-y/ 请尊重原创:https://www.cnblogs.com/triple-y/p/9655753.html python ...

  10. 【算法笔记】B1024 科学计数法

    1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位, ...