当前位置:首页 > 开发 > 编程语言 > Java > 正文

java SE 基础精华之深入javaAPI

发表于: 2013-09-09   作者:crazywen2011   来源:转载   浏览次数:
摘要: 1     JAVA SE. 3 1.1      深入JAVA API3 1.1.1       Lang包... 3  位于java.lang包中,这个包中的类使用时不用导入。 String类一旦初始化就不可以改变,而strin

1     JAVA SE. 3

1.1      深入JAVA API3

1.1.1       Lang... 3

 位于java.lang包中,这个包中的类使用时不用导入。

String类一旦初始化就不可以改变,而stringbuffer则可以。它用于封装内容可变的字符串。它可以使用tostring()转换成string字符串。

String x=”a”+4+”c”编译时等效于String x=new StringBuffer().append(“a”).append(4).append(“c”).toString();

字符串常量是一种特殊的匿名对象,String s1=”hello”;String s2=”hello”;s1==s2;因为他们指向同一个匿名对象。

如果String s1=new String(“hello”);String s2=new String(“hello”);s1!=s2;


/*逐行读取键盘输入,直到输入为“bye”时,结束程序
 注:对于回车换行,在windows下面,有'\r'和'\n'两个,而unix下面只有'\n',但是写程序的时候都要把他区分开*/
public class Readline {
	public static void main(String args[]) {
		String strInfo = null;
		int pos = 0;
		byte[] buf = new byte[1024];// 定义一个数组,存放换行前的各个字符
		int ch = 0; // 存放读入的字符
		System.out.println("Please input a string:");
		while (true) {
			try {
				ch = System.in.read(); // 该方法每次读入一个字节的内容到ch变量中。
			} catch (Exception e) {
			}
			switch (ch) {
			case '\r': // 回车时,不进行处理
				break;
			case '\n': // 换行时,将数组总的内容放进字符串中
				strInfo = new String(buf, 0, pos); // 该方法将数组中从第0个开始,到第pos个结束存入字符串。
				if (strInfo.equals("bye")) // 如果该字符串内容为bye,则退出程序。
				{
					return;
				} else // 如果不为bye,则输出,并且竟pos置为0,准备下次存入。
				{
					System.out.println(strInfo);
					pos = 0;
					break;
				}
			default:
				buf[pos++] = (byte) ch; // 如果不是回车,换行,则将读取的数据存入数组中。
			}
		}
	}
}

 String类的常用成员方法

1、   构造方法:

    String(byte[] byte,int offset,int length);这个在上面已经用到。

2、    equalsIgnoreCase:忽略大小写的比较,上例中如果您输入的是BYE,则不会退出,因为大小写不同,但是如果使用这个方法,则会退出。

3、   indexOf(int ch);返回字符ch在字符串中首次出现的位置

4、   substring(int benginIndex);

5、   substring(int beginIndex,int endIndex);

返回字符串的子字符串,4返回从benginindex位置开始到结束的子字符串,5返回beginindexendindex-1之间的子字符串。

    基本数据类型包装类的作用是:将基本的数据类型包装成对象。因为有些方法不可以直接处理基本数据类型,只能处理对象,例如vectoradd方法,参数就只能是对象。这时就需要使用他们的包装类将他们包装成对象。

   

/**
 * 例:在屏幕上打印出一个*组成的矩形,矩形的宽度和高度通过启动程序时传递给main()方法的参数指定。
 * 
 * @author administrator
 * 
 */
public class Rectangular {

	public static void main(String[] args) {
		int length = new Integer(args[0]).intValue();
		int width = Integer.parseInt(args[1]);
		// int width = Integer.valueOf(args[1]).intValue();
		// 以上为三种将字符串转换成整形的方法。
		System.out.println("lenght:" + length + "\nwidth:" + width);
		for (int i = 0; i < width; i++) {
			StringBuffer sb = new StringBuffer(); // 使用stringbuffer,是因为它是可追加的。
			for (int j = 0; j < length; j++) {
				sb.append('*');
			}
			System.out.println(sb.toString()); // 在打印之前,要将stringbuffer转化为string类型。
		}
	}

}

 比较下面两段代码的执行效率:

//1.
		String sb = new String();
		for (int j = 0; j < width; j++) {
			sb = sb + '*';
		}
		//2.
		StringBuffer sb = new StringBuffer();
		for (int j = 0; j < width; j++) {
			sb.append('*');
		}

 

(1)     (1和(2)在运行结果上相同,但效率相差很多。

(1) 在每一次循环中,都要先将string类型转换为stringbuffer类型,然后将‘*’追加进去,然后再调用tostring()方法,转换为string类型,效率很低。

(2)   在没次循环中,都只是调用原来的那个stringbuffer对象,没有创建新的对象,所以效率比较高。

   System类与Runtime类:

    由于java不支持全局函数和全局变量,所以java设计者将一些与系统相关的重要函数和变量放在system类中。

我们不能直接创建runtime的实例,只能通过runtime.getruntime()静态方法来获得。

 

/**
 * 在java程序中启动一个windows记事本程序的运行实例,并在该运行实例中打开该运行程序的源文件,启动的记事本程序5秒后关闭。
 * 
 * @author administrator
 * 
 */
public class Property {

	public static void main(String[] args) {

		Process p = null;
		try {
			p = Runtime.getRuntime().exec("notepad.exe Property.java");
		} catch (Exception e) {
			System.out.println(e);
		}
		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		p.destroy();

	}

}

 

 

java SE 基础精华之深入javaAPI

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
一、标识符 概念:JAVA里面我们可以给他取名字的(变量、类、方法等等)就是标识符: 注意:1、标识
昨天晚上开始学习传智播客的JAVA SE基础视频,到今天晚上已经把基础视频1-5看完了,因为之前段段续
一、什么是同步器 多线程并发的执行,之间通过某种 共享 状态来同步,只有当状态满足 xxxx 条件,才
一、什么是同步器 多线程并发的执行,之间通过某种 共享 状态来同步,只有当状态满足 xxxx 条件,才
FFmpeg是相当强大的多媒体编解码框架,在深入分析其源代码之前必须要有基本的多媒体基础知识,否则
概述: Java语法基础知识:数据类型、变量、标识符、关键字、运算符、注释 1.数据类型: 1.java是强
0.前言 以往我们开发的程序大多是单线程的,即一个程序只有一个入口点,只有一条从头到尾的执行线路
概述: 1.ResultSetMetaData包含了查询后的结果集的相关信息 2.通过rs.getMetaData();来创建 3.可以
什么是IO? input/output 输入输出 Java如何处理IO? 1.java把不同的输入/输出(键盘、文件、网络等
数组 一、什么是数组? 数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号