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. iOS开发系统类功能划分

    0.OC语法基础 CHOCBase Object C语法学习笔记(一) Object C语法学习笔记(二) 1.UI类 自定义控件程序运行流程 setNeedsLayOut和setNeedsDispl ...

  2. Jmeter响应中文乱码解决办法

    JMeter当响应页面没有设置编码时,默认会从jmeter.properties配置文件中sampleresult.default.encoding的配置进行设置,默认使用ISO8859-1,在配置文 ...

  3. kali linux之端口扫描

    端口对应网络服务及应用端程序,服务端程序的漏洞通过端口攻入 发现开放的端口,有更具体的攻击面 nmap hping3 scapy都可以 nmap隐蔽扫描 扫描抓包 nmap僵尸扫描 先发现僵尸机,僵尸 ...

  4. 加密模块(md5)

    一.md5加密 import hashlib s = ' print(s.encode()) m = hashlib.md5(s.encode())# 必须得传一个bytes类型的 print(m.h ...

  5. TX1 文字界面启动与root用户自动登录设置

    设置默认文字启动界面 更改/boot/extlinux/extlinux.conf文件,在最后一行的末尾添加 text. 设置自动登录 在/etc/init/tty1.conf文件末尾添加: exec ...

  6. GI缓存

    GI缓存 设置 属性 最大高速缓存大小(GB) 使用滑块设置最大GI缓存文件夹大小.只要可能,GI缓存文件夹将保持在此大小以下.定期删除未使用的文件以创建更多空间.这是由编辑器自动执行,不需要你做任何 ...

  7. LeetCode记录之21——Merge Two Sorted Lists

    算法和数据结构这东西,真的是需要常用常练.这道看似简单的链表合并题,难了我好几个小时,最后还是上网搜索了一种不错算法.后期复习完链表的知识我会将我自己的实现代理贴上. 这个算法巧就巧在用了递归的思想, ...

  8. 那些熟悉又陌生的 css2、css3 样式,持续复习

    initial关键字:    除了 Internet Explorer,其他的主流浏览器都支持 initial 关键字. Opera 15 之前的版本不支持 initial 关键字. initial ...

  9. 1141 PAT Ranking of Institutions (25 分)

    After each PAT, the PAT Center will announce the ranking of institutions based on their students' pe ...

  10. casper爬虫操作记录

    phantom.outputEncoding = "gbk"; var fs=require("fs") //var data = fs.read(" ...