1 JAVA SE
1.1 深入JAVA API
1.1.1 Lang包
位于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返回beginindex和endindex-1之间的子字符串。
基本数据类型包装类的作用是:将基本的数据类型包装成对象。因为有些方法不可以直接处理基本数据类型,只能处理对象,例如vector的add方法,参数就只能是对象。这时就需要使用他们的包装类将他们包装成对象。
/** * 例:在屏幕上打印出一个*组成的矩形,矩形的宽度和高度通过启动程序时传递给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 API #### 一、Java SE **1.1 深入 Java API** **1.1.1 Lang包** - **String类与 StringBuffer类** - `String` 类不可变,一旦创建后其内容无法更改;而 `StringBuffer` 类则允许在原有基础上修改...
1. **深入JAVA API** - **Lang包**:包含了许多基础类,如String、Integer、Character等。Lang包中的类主要用于基本类型的操作和对象的创建。 - **集合类**: - **日期类Date**:表示特定的瞬间,精确到毫秒。但...
首先,Java SE是Java的核心部分,它提供了基础的编程接口和类库,包括面向对象特性、内存管理、多线程、网络编程等。深入理解Java SE是成为一名合格Java开发者的基石。例如,你需要掌握Java语法、异常处理、输入输出...
这篇“多年Java精华积累”文档很可能是作者多年深入学习和实践Java的心得总结,对于初学者和有经验的开发者来说,都是一个宝贵的资源。下面,我们将根据这个主题,探讨一些重要的Java知识点。 1. **Java基础** - ...
本篇精华集锦将深入探讨Java的一些关键概念和API。 1. **Java SE 1.1**: Java Standard Edition (SE) 是Java开发的核心版本,适用于桌面应用和服务器端开发。1.1 版本是Java历史上的一个重要里程碑,引入了新的...
11. **Java SE和Java EE**:Java Standard Edition(SE)是Java的基础,而Java Enterprise Edition(EE)则为开发企业级应用提供了更多的服务,如Servlet、JSP和EJB。 12. **Lambda表达式**:自Java 8开始引入的...
这个"Java认证权威问答精华集"显然是一份针对该认证考试的重要参考资料,包含了大量关于Java编程语言、核心API以及编程实践的问题与答案。以下是对其中可能涵盖的一些关键知识点的详细说明: 1. **Java基础知识**:...
通过深入学习水木清华BBS的Java版精华区,初学者不仅可以全面掌握Java语言,还能了解到最新的技术动态和最佳实践,从而在编程生涯中不断成长。这个资源库不仅适合独立学习,也是交流和讨论的好平台,有助于形成良好...
从"Java版精华区"中积累基础知识,"java解惑"解决实践中遇到的问题,"Java2认证考试"帮助备考专业认证,"Thinking in Java"深入理解Java设计理念,而"test"则提供了实战演练的机会。这样的学习资源组合可以帮助学习...
泛型是Java SE 5.0引入的新特性,允许在类、接口和方法中使用类型参数,增强了类型安全,避免了强制类型转换,并提供了更好的编译时错误检测。泛型的基本概念包括: - **类型参数**:在定义泛型类或方法时使用的...
在"JAVA精华"中,我们主要关注Java的基础知识,特别是Java SE(标准版)的1.1版本,以及相关的API。 1. **Java API 1.1.1 Lang包**: - **String类**:这是Java中最基本的数据类型之一,表示不可变的字符序列。...
1.1深入JAVA API 1.1.1Lang包 1.1.1.1String类和StringBuffer类 位于java.lang包中,这个包中的类使用时不用导入 String类一旦初始化就不可以改变,而stringbuffer则可以。它用于封装内容可变的字符串。它可以使用...
1.1 深入JAVA API 1.1.1 Lang包 1.1.1.1 String类和StringBuffer类 位于java.lang包中,这个包中的类使用时不用导入 String类一旦初始化就不可以改变,而stringbuffer则可以。它用于封装内容可变的字符串。它...
《Java2 参考大全(第4版).pdf》这本书是Java学习的经典之作,通常包含了Java SE(标准版)的详细信息,包括但不限于基础语法、类库API、多线程、网络编程、Swing GUI开发,甚至JVM的工作原理。这本书的第四版很可能...
《JAVA精华》全集中涵盖了Java编程语言的核心概念和API,主要关注Java Standard Edition(JAVA SE)1.1版本。此文档特别强调了`java.lang`包中的`String`类和`StringBuffer`类的使用。 `String`类是Java中的核心类...
在“精简Java.rar”这个压缩包中,我们可以期待找到关于Java编程的基础内容,这些内容可能是作者精心挑选的精华部分。以下是一些可能包含的知识点: 1. **Java基础语法**:包括数据类型(如整型、浮点型、字符型和...
3. **本书的价值**:作为《Java网络编程》的第三版,该书不仅包含了前两版中的精华内容,还新增了许多针对Java 5及之后版本的新特性介绍,对于想要深入了解Java网络编程技术的开发者来说是一本不可多得的好书。...
以上只是Java编程的一些基础知识点,南京大学Java LilyBBS中的精华内容可能涵盖了更高级的主题,如并发编程的最佳实践、设计模式的应用、性能优化技巧、最新的Java版本更新以及流行的开源库和框架的使用等。...
2. **javaSE1**和**javaSE2**:Java Standard Edition (Java SE) 是Java的基础,涵盖了核心语言特性、类库和API。这部分笔记详细讲解了Java语法、面向对象编程(OOP)原则,包括封装、继承和多态,以及异常处理、...