网站首页 > java教程 正文
Java提供了丰富的基础类库,Java7提供了4000多个基础类,通过这些基础类可以提高开发效率,降低开发难度,对于一个合格程序员来说,至少要熟悉Java SE大部分的类的功能。
7.1 与用户互动
如果一个程序总是按照既定的流程运行,无序处理用户动作,这个程序总是比较简单的。实际上,绝大部分程序都需要处理用户的动作,包括接收用户的键盘输入、鼠标动作等。后面会讲到图形用户接口(GUI)编程就是基于图形面板输入框的程序编程,本章主要讲解如何获得键盘的输入。
7.1.1 运行Java程序的参数
main函数详解:
public修饰符:Java类由JVM调用,为了让JVM可以自由的调用这个main方法,所以使用public修饰符把这个方法给暴漏出来。
static修饰符:JVM调用这个方法时,不会先创建该主类的对象,然后通过对象来调用该方法。而是直接通过该类来调用主方法,因此使用static修饰该方法。
void返回值:因为主方法被JVM调用,该方法的返回值将返回给JVM,这没有任何意义,因此main方法没有返回值。
举例1:
public class Test {
public static void main(String[] args) {
System.out.println(args.length);
}
}
使用java命令来调用该类,JVM会默认执行该类的main方法。java Test
在后面没有追加参数的情况下,打印长度为0
如果在调用该方法时传入参数,方式如下: java Test hello word ,在类名后面追加字符串参数,用空格隔开。
这时打印长度为2.
7.1.2 使用Scanner获取键盘输入
使用Scanner类可以很方便的获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件、输入流、字符串中解析出基本类型值和字符串值。
Scanner主要提供了两个方法来扫描输入。
hasNextXxx():是否还有下一个输入项,其中Xxx可以是Int、Long等代表基本数据类型的字符串。如果需要判断是否包含下一个字符串,可以省略Xxx。
nextXxx():获取下一个输入项。Xxx的含义与前一个方法中的Xxx相同。
举例1:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //表示标准键盘输入
while(sc.hasNext()){
System.out.println(sc.next());
}
}
使用ctrl+Z命令表示不再输入,即sc.hasNext()返回false。
举例2:读取当前文件,将文件输入到控制台
import java.util.Scanner;
import java.io.File;
public class Test{
public static void main(String args[]) throws Exception{
Scanner sn = new Scanner(new File(".\\Test.java"));
while(sn.hasNextLine()){
System.out.println(sn.nextLine());
}
}
}
(1)相对路径与绝对路径的问题:
绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:xyz/test.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。
相对路径:相对于某个基准目录的路径。包含Web的相对路径(HTML中的相对目录)。myeclipse中的相对路径是以项目为基础作为描述的,使用相对路径直接定位到当前项目“./”,直接定位到langsin_E24这个项目下,再通过“/com/langsin/Seven/ForDemo1.java”,即可定位到指定文件。
(2)从控制台输入内容时,如果先接收一个int类型的值,再接收一个String类型的值,是会出问题的。
int a = sc.nextInt();
String str = sc.nextLine();
System.out.pritln(“a:” a+”str”+str);
怎么导致的?/r/n换行符导致的
如何解决呢?
(1) 接收一个字符后再创建一个文本扫描器。
(2) 把所有的数据都先按照字符串获取,然后要什么,再转换成对应类型的。
其实这个问题不用担心,因为学到后边的web啥的,你们压根就用不到这个东西了。
7.2 系统相关
Java程序在不同操作系统上运行时,可能需要取得平台相关的属性,或者调用平台命令来完成特定的功能,Java提供了System类和Runtime类来与程序的运行平台进行交互。
7.2.1 System类
System类代表当前Java程序的运行平台,程序不能创建System类的对象,System类提供了一些类变量、类方法,允许直接通过System类来调用这些Field和方法。
static Map<String,String> getenv():返回一个不能修改的当前系统环境的字符串映射视图。
static String getenv(String name):获取指定的环境变量值。
static Properties getProperties():确定当前的系统属性。
static String getProperty(String key):获取指定键指示的系统属性。
static long currentTimeMillis():返回以毫秒为单位的当前时间。
举例1:
public static void main(String[] args) throws Exception{
Map<String,String> map = System.getenv();
for(String name : map.keySet()){
System.out.println(name+":"+map.get(name));
}
System.out.println("=====================");
System.out.println(System.getenv("JAVA_HOME"));
System.out.println(System.getenv("CLASSPATH"));
System.out.println("=====================");
Properties prop = System.getProperties();
System.out.println(prop.toString());
System.out.println(prop.getProperty("sun.boot.library.path"));
prop.store(new FileOutputStream("./props.properties"), "System properties");
}
举例2:
public static void main(String[] args) throws Exception{
long begin = System.currentTimeMillis();
Map<String,String> map = System.getenv();
for(String name : map.keySet()){
System.out.println(name+":"+map.get(name));
}
long end = System.currentTimeMillis();
System.out.println("共耗时:"+(end-begin));
}
7.2.2 Runtime类
Runtime类代表Java程序的运行时环境,每个Java程序都有一个与之对应的Runtime实例,应用程序通过该对象与其运行时环境相连。应用程序不能创建自己的Runtime实例,但可以通过getRuntime()方法获取与之关联的Runtime对象。
举例1:
public static void main(String[] args) throws Exception{
Runtime rt = Runtime.getRuntime();
System.out.println("处理器数量:"+rt.availableProcessors());
System.out.println("空闲内存数:"+rt.freeMemory());
System.out.println("总内存数:"+rt.totalMemory());
System.out.println("可用最大内存数:"+rt.maxMemory());
}
猜你喜欢
- 2024-09-11 linux系统上如何搭建Java环境。 - 蓝易云
- 2024-09-11 「秒懂Java」「02_搭建开发环境」01_Java开发必备
- 2024-09-11 java语言特性概述(简述java语言的特性)
- 2024-09-11 手把手教你搭建java环境(如何建立java环境)
- 2024-09-11 火了20年,最受欢迎的开发语言——Java有这么难吗「1」
- 2024-09-11 Java运行环境变量的配置(java环境变量配置教程)
- 2024-09-11 一文教您如何实现持续集成服务器环境搭建
- 2024-09-11 j-roadflow java工作流引擎测试环境部署
- 2024-09-11 Docker搭建 Java Web 项目运行环境
- 2024-09-11 软件系统运行环境配置文档(仅供参考)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)