`
crazywen2011
  • 浏览: 40077 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java SE 基础精华之深入javaAPI

    博客分类:
  • Java
阅读更多

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精华之--深入JAVA API

    ### 深入Java API #### 一、Java SE **1.1 深入 Java API** **1.1.1 Lang包** - **String类与 StringBuffer类** - `String` 类不可变,一旦创建后其内容无法更改;而 `StringBuffer` 类则允许在原有基础上修改...

    JAVA SE学习精华集锦

    1. **深入JAVA API** - **Lang包**:包含了许多基础类,如String、Integer、Character等。Lang包中的类主要用于基本类型的操作和对象的创建。 - **集合类**: - **日期类Date**:表示特定的瞬间,精确到毫秒。但...

    Java语言全部帮助文档(java+SE,java+EE,java+ME)

    首先,Java SE是Java的核心部分,它提供了基础的编程接口和类库,包括面向对象特性、内存管理、多线程、网络编程等。深入理解Java SE是成为一名合格Java开发者的基石。例如,你需要掌握Java语法、异常处理、输入输出...

    多年Java精华积累

    这篇“多年Java精华积累”文档很可能是作者多年深入学习和实践Java的心得总结,对于初学者和有经验的开发者来说,都是一个宝贵的资源。下面,我们将根据这个主题,探讨一些重要的Java知识点。 1. **Java基础** - ...

    JAVA精华集锦.doc

    本篇精华集锦将深入探讨Java的一些关键概念和API。 1. **Java SE 1.1**: Java Standard Edition (SE) 是Java开发的核心版本,适用于桌面应用和服务器端开发。1.1 版本是Java历史上的一个重要里程碑,引入了新的...

    java编码精华

    11. **Java SE和Java EE**:Java Standard Edition(SE)是Java的基础,而Java Enterprise Edition(EE)则为开发企业级应用提供了更多的服务,如Servlet、JSP和EJB。 12. **Lambda表达式**:自Java 8开始引入的...

    Java认证权威问答精华集

    这个"Java认证权威问答精华集"显然是一份针对该认证考试的重要参考资料,包含了大量关于Java编程语言、核心API以及编程实践的问题与答案。以下是对其中可能涵盖的一些关键知识点的详细说明: 1. **Java基础知识**:...

    水木清华BBS的 Java版精华区

    通过深入学习水木清华BBS的Java版精华区,初学者不仅可以全面掌握Java语言,还能了解到最新的技术动态和最佳实践,从而在编程生涯中不断成长。这个资源库不仅适合独立学习,也是交流和讨论的好平台,有助于形成良好...

    java学习,考试,面试资料大综合

    从"Java版精华区"中积累基础知识,"java解惑"解决实践中遇到的问题,"Java2认证考试"帮助备考专业认证,"Thinking in Java"深入理解Java设计理念,而"test"则提供了实战演练的机会。这样的学习资源组合可以帮助学习...

    java面试精华13

    泛型是Java SE 5.0引入的新特性,允许在类、接口和方法中使用类型参数,增强了类型安全,避免了强制类型转换,并提供了更好的编译时错误检测。泛型的基本概念包括: - **类型参数**:在定义泛型类或方法时使用的...

    语言程序设计资料:JAVA精华.doc

    在"JAVA精华"中,我们主要关注Java的基础知识,特别是Java SE(标准版)的1.1版本,以及相关的API。 1. **Java API 1.1.1 Lang包**: - **String类**:这是Java中最基本的数据类型之一,表示不可变的字符序列。...

    Java精华(免费版)

    1.1深入JAVA API 1.1.1Lang包 1.1.1.1String类和StringBuffer类 位于java.lang包中,这个包中的类使用时不用导入 String类一旦初始化就不可以改变,而stringbuffer则可以。它用于封装内容可变的字符串。它可以使用...

    JAVA精华.rar

    1.1 深入JAVA API 1.1.1 Lang包 1.1.1.1 String类和StringBuffer类 位于java.lang包中,这个包中的类使用时不用导入 String类一旦初始化就不可以改变,而stringbuffer则可以。它用于封装内容可变的字符串。它...

    java学习大全

    《Java2 参考大全(第4版).pdf》这本书是Java学习的经典之作,通常包含了Java SE(标准版)的详细信息,包括但不限于基础语法、类库API、多线程、网络编程、Swing GUI开发,甚至JVM的工作原理。这本书的第四版很可能...

    《JAVA精华》全集(完整doc版)

    《JAVA精华》全集中涵盖了Java编程语言的核心概念和API,主要关注Java Standard Edition(JAVA SE)1.1版本。此文档特别强调了`java.lang`包中的`String`类和`StringBuffer`类的使用。 `String`类是Java中的核心类...

    精简java.rar

    在“精简Java.rar”这个压缩包中,我们可以期待找到关于Java编程的基础内容,这些内容可能是作者精心挑选的精华部分。以下是一些可能包含的知识点: 1. **Java基础语法**:包括数据类型(如整型、浮点型、字符型和...

    [Java网络编程(第3版,2004)].(Java.Network.Programming).Elliotte.Rusty.Harold.文字版

    3. **本书的价值**:作为《Java网络编程》的第三版,该书不仅包含了前两版中的精华内容,还新增了许多针对Java 5及之后版本的新特性介绍,对于想要深入了解Java网络编程技术的开发者来说是一本不可多得的好书。...

    南京大学 java lilybbs

    以上只是Java编程的一些基础知识点,南京大学Java LilyBBS中的精华内容可能涵盖了更高级的主题,如并发编程的最佳实践、设计模式的应用、性能优化技巧、最新的Java版本更新以及流行的开源库和框架的使用等。...

    达内学习笔记

    2. **javaSE1**和**javaSE2**:Java Standard Edition (Java SE) 是Java的基础,涵盖了核心语言特性、类库和API。这部分笔记详细讲解了Java语法、面向对象编程(OOP)原则,包括封装、继承和多态,以及异常处理、...

Global site tag (gtag.js) - Google Analytics