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. 《javascript 高级程序设计》 笔记1 1~7章

    chapter 2 在html中使用JavaScript chapter 3 基本概念 EMCAscript 语法 变量,函数名和操作符都区分大小写. 使用var定义的变量将成为定义该变量的作用域中的 ...

  2. DOM操作技术之动态脚本与动态样式(兼容版)

    动态脚本 使用<script>元素可以向页面中插入Javascript代码,一种方式是通过其src特性包含外部文件,另一种方式就是用这个元素本身来包含代码. 而我们要说的动态脚本,指的是在 ...

  3. 《Andrew Ng深度学习》笔记1

    深度学习概论 1.什么是神经网络? 2.用神经网络来监督学习 3.为什么神经网络会火起来? 1.什么是神经网络? 深度学习指的是训练神经网络.通俗的话,就是通过对数据的分析与计算发现自变量与因变量的映 ...

  4. 怎样将结构完全一样的两个表的内容合并到一个表中,SQL语句

      标签: SQL合并数据 2013-08-21 10:41 489人阅读 评论(0) 收藏 举报  分类: Oracle数据库(14)  select * into 新表名 from (select ...

  5. 使用 Flask 实现 RESTful API

    原文出处: Luis Rei   译文出处:nummy 简介 首先,安装Flask     1 pip install flask 假设那你已经了解RESTful API的相关概念,如果不清楚,可以阅 ...

  6. Qt 学习之路 2(27):渐变

    Qt 学习之路 2(27):渐变 豆子 2012年11月20日 Qt 学习之路 2 17条评论 渐变是绘图中很常见的一种功能,简单来说就是可以把几种颜色混合在一起,让它们能够自然地过渡,而不是一下子变 ...

  7. 开发环境,eclipse编辑器java代码自动提示

    Eclipse+ADT+Android SDK 搭建安卓开发环境 eclipse编辑器java代码自动提示 window-->Preferences-->JAva-->Content ...

  8. POJ - 1845 简单数论

    求A^B的约数和模MOD 对A质因子分解P1^k1*P2^k2....P^kn A^B既指数对应部分乘以B 对于每个P都有(1+P^1+P^2+...+P^ki)的选择 连乘每一个P的等比数列之和即可 ...

  9. node.js知识点提取

    javascript是脚本语言,脚本语言都需要一个解析器才能运行.

  10. JS获取按键的代码,Js如何屏蔽用户的按键

    [From] http://www.zgguan.com/zsfx/jsjc/1181.html 在使用JavaScript做WEB键盘事件侦听捕获时,主要采用onkeypress,onkeydown ...