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. kali linux之skipfish,arachni

    c语言编写,实验性的主动web安全评估工具,递归爬网,基于字典的探测,速度较快--(多路单线程,启发式自动内容识别),误报率低 常用参数 -I 只检查包含/xx/的url -X 不检查包含/xx/的u ...

  2. python-循环(while循环、for循环)

    循环:循环会重复执行循环体里面的代码,python中循环可分为while循环和for循环. break 不管循环有没有完成,立即结束循环 continue 结束本次循环,继续进行下一次循环 一.whi ...

  3. Georgia and Bob POJ - 1704 阶梯Nim

    $ \color{#0066ff}{ 题目描述 }$ Georgia and Bob decide to play a self-invented game. They draw a row of g ...

  4. 「模拟赛20190327」 第二题 DP+决策单调性优化

    题目描述 小火车虽然很穷,但是他还是得送礼物给妹子,所以他前往了二次元寻找不需要钱的礼物. 小火车准备玩玩二次元的游戏,游戏当然是在一个二维网格中展开的,网格大小是\(n\times m\)的,某些格 ...

  5. ASP.NET后台取html控件值方式

    1.Request.Form[“cbName”]: 可以在后台取到所有为name 为的控件的value值 2.可以通过 把html控件的值付给HiddenField,然后后台调用 3.就是自定义属性 ...

  6. Django 内建 中间件组件

    中间件 这篇文档介绍了Django自带的所有中间件组件. 要查看关于如何使用它们以及如何编写自己的中间件,请见中间件使用指导. 可用的中间件 缓存中间件 class UpdateCacheMiddle ...

  7. bcdedit /copy {current} /d "xxx" 报错,提示找不到系统文件

    步骤: cd c:windows/system32 bcdedit /set {default} osdevice boot bcdedit /set {default} device boot bc ...

  8. css样式继承经验记录

    与元素(文字颜色.字体等)相关的样式默认会被继承: 与元素在页面上的布局相关的样式默认不会被继承: <body> <p>I like <span>aplles< ...

  9. UVa 253

    UVa 253 #include <iostream> #include <cstdio> #include <string> #include <cstri ...

  10. 2019.3.25 SQL语句(进阶2)

    子查询 数据库中的表沿用 上一篇博客 中使用的Employee1. 练习: 1.求所有年龄比张三小的人 select * from Employee1 where age < (select a ...