标签:
与用户互动
运行Java程序的参数
//Java程序的入口:main()方法 public static void main(String[] args)
public修饰符:Java类有JVM调用,为了让JVM可以自由调用main()方法,所有使用public修饰把这个方法暴露出来。
static修饰符:JVM调用这个主方法时,不是通过创建该类的实例来调用这个方法,而是通过类直接调用这个方法,所以用static修饰。
void返回值:主方法被JVM调用,该方法返回值将返回给JVM,这没有任何意义,所以main()方法没有任何意义。
方法调用的原则:谁调用方法,谁负责给形参赋值。因此。main()方法形参args应该由JVM负责赋值。
public class ArgsTest{ public static void main(String[] args){ //返回0 System.out.println(args.length); for(String arg : args){ System.out.println(arg); } } }
上面程序运行一下命令
Java ArgsTest Java Spring
运行Java程序时在类名后面跟一个或多个字符(多个字符以空格分开),JVM会把这些字符一次赋给args数组。如果某参数本身包含空格,参数用双引号(" ")扩起来。
Java ArgsTest "Java Spring"
使用Scanner获取键盘输入
Scanner类在java.util包下
Scanner是一个基于正则表达式的文本扫描器,可以从文件、输入流、字符串中解析出基本类型值和字符串值。
Scanner提供了多个构造器,不同的构造器可以接收文件、输入流、字符串作为数据源,用于从文件、输入流、字符串中解析数据。
Scanner主要提供了两个方法扫描输入:
hasNextXxx():是否还有下一输入项,其中Xxx可以使Int、Long等代表基本数据类型的字符串。如果只是判断是否包含下一个字符串,直接使用hasNext()
nextXxx():获取下一个输入项,Xxx与上一相同
默认的情况,Scanner使用空白(包括空格、Tab、回车)作为多个输入项直接的分隔符
import java.util.*; public class ScannerTest{ public static void main(String[] args){ Scanner s = new Scanner(System.in); while(s.hasNext()){ System.out.println(s.next()); } } }
import java.util.*; public class ScannerTest{ public static void main(String[] args){ Scanner s = new Scanner(System.in); //只会扫描Int数据类型的数据,不符合这个条件会跳出运行 while(s.hasNextInt()){ System.out.println(s.nextInt()); } } }
可以把Scanner的付各负设置为其他
Scanner的读取操作可能被阻塞(当前执行顺序流暂停)来等待信息输入。如果输入流没有结束,Scanner又读不到更多输入项时(尤其是在键盘输入的比较常见),Scanner的hasNext()和next()方法都有可能阻塞,hasNext()方法阻塞与和其相关的next()方法是否阻塞无关。
为Scanner设置分隔符使用useDelimiter(String pattren)方法即可,该方法的参数应该是一个正则表达式
import java.util.*; public class ScannerTest{ public static void main(String[] args){ Scanner s = new Scanner(System.in); //设置分隔符 //下面这行程序将回车作为分隔符 s.useDelimiter("\n"); while(s.hasNextInt()){ System.out.println(s.nextInt()); } } }
Scanner提供了两个简单的方法来逐行读取
boolean hasNextLint():返回输入源是否有下一行
String nextLine():返回输入源下一行字符串
import java.util.*; import java.io.*; public class ScannerTest2{ public static void main(String[] args) throws Exception{ //读取文件 //将File对象作为Scanner的构造器参数,Scanner读取文件内容 Scanner s = new Scanner(new File("ScannerTest.java")); while(s.hasNextLine()){ System.out.println(s.nextLine()); } } }
系统相关
System类
System类代表当前Java程序的运行平台,程序不能创建System类的对象,System类提供了一些类变量和类方法,允许通过System类来调用这些类变量和方法。
System类提供了代表标准输入、标准输出和错误输出的类变量,并提供了一些用于访问环境变量、系统属性的方法,还提供了加载文件和动态链接库的方法。
System类还提供了一个identityHashCode(Object x)方法。该方法返回指定对象精确hashCode值,也就是根据该对象的地址计算得到hashCode值。当某个类hashCode()方法重写以后,该实例的hashCode()方法就不能唯一标识该对象,但通过identityHashCode()方法可以返回hashCode值。
Runtime类
Runtime类代表Java程序的运行时环境,每个Java程序都有一个与之对应的Runtime实例,应用程序通过该对象与其运行时环境相连。应用程序不能自己创建Runtime实例,但可以通过gerRuntime()方法获取与之关联的Rumtime对象Runtime也提供了gc()和runFinalizatiom()方法来通知系统进行垃圾回收、清理系统资源,并提供了load(String filename)和loadLibrary(Stringlibname)方法来加载文件和动态链接库。
常用类
标签:
原文地址:http://www.cnblogs.com/changzuidaerguai/p/5667617.html