黑马程序员-java学习4

来源:互联网 发布:灰色模型软件 编辑:程序博客网 时间:2024/05/22 00:51

---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------

好的,今天上午从9:29开始学习:


1.先来复习一下上次的知识要点:

我们这边要注意循环,比如说是for循环或者while循环,如果我们是for(int i=0;i<100;i++),那么这个循环就是从0开始的,一直到100为止,中间执行这个循环里面的代码。而如果我们是销售某种东西,那么就是while(true),...100--,就是从100开始,然后依次往下去减。

注意,一个thread对象代表一个线程,无论它启动多少次,都是一个线程。

我们今后一般的情况都是需要采用实现Runnable接口的方式去创建线程。

SUN公司只给我们提供了java源程序开发工具,但是没有给我们提供图形化开发工具,一般的图形化开发工具有JBuilder,JCreator等,这些都是图形化开发工具。

在我们创建工程的时候,basic java applicationjavaGUI工程,也就是美工的。

basic java appletjavaapplet程序。

2.昨天我们还学习了字符串String类和StringBuffer类。

这两个类,也就是stringstringbuffer都是属于java.lang包中的,而这个包里面的类是不需要import导入就可以直接使用的。

String对象里面的内容一旦被初始化就不能被改变,而StringBuffer里面的内容还可以改变,然后我们调用它的toString()方法来将其转换成String类型,也就是不可以改变的了。

连接符:比如+号:

它可以将各种不同的类型连成字符串。

但是它实际上的StringBuffferappend方法追加到一起的。注意,append方法是StringBuffer的。

String x="a"+4+"c";

就相当于String x=new StringBuffer().append("a").append(4).append("c").toString();

3.,好的,复习了大概40分钟,我们来学习新的知识要点:

好的,现在我们来编写一个实例,就是我们逐行读取键盘上输入的字符,将输入的字符保存在一个数组中,然后直到遇到回车换行的时候,就将这些字符打印出来。

我们在JCreator中来编写这个程序:

新建一个新的工程。

况众文,不要急,慢慢学习,有的是时间争取两天学一章,8天解决掉。

我们知道从键盘上读取数据是System.in.read()这个方法。注意,它一次只能从键盘上读取一个输入的字节,然后保存为整数类型。

由于我们要在遇到回车换行的时候,将前面输入的所有字节保存在数组中然后打印出来,所以要新建一个数组。

有点难度,跳过。

注意定义数组是byte[] buf=new byte[1024];//后面没有小括号。

定义一个最大存储为1024上午数组。

4.我们接下来来看看String类中的一些常用的方法:

IndexOf(int ch):用于返回一个字符在字符串中首次出现的位置。如果找不到这个字符,那么这个函数就会返回-1

我们来看一个例子,注意在java中,其实位置的下标识从0开始的。

public class String{

public static void main(String[] args){

System.out.println("hello world".indexOf("o"));//应该会打印出4,因为是从0开始的,o处于第四个位置,o首次出现在第四个位置

}

}

注意,空格也算一个位置。

当然indexOf还有一个方法,和这个差不多,也是查找的,可以指定从哪个位置开始查找:

System.out.println("hello world".indexOf("o",5));

//从第五个位置开始查找,也就是中间的空格处开始查找,那么O首次出现在第七个位置,会打印出7.

5.String类中的indexOf()方法是用来查找的,它还有一个方法:subString(int beginIndex)

subString(int beginIndex,int endIndex);

subString就是返回从指定的开始位置到字符串结尾或者指定的结尾减去1之间的子字符串。

来看看这个方法的使用:

public class String{

public static void main(String[] args){

System.out.println("hello world".subString(6));

}

}

//hello world的第六个位置开始,0起头,也就是从w开始到结尾,将会打印出world.

我们也可以:

public class String{

public static void main(String[] args){

System.out.println("hello world".subString(6,8));

}

}

将会打印出wo

注意,这里如果只是有开始位置,那么就是从开始位置到结尾,如果还有结尾位置,那么就是结尾位置减去1的位置。比如上面是6-8,实际上结尾位置是7,所以打印出wo

其实就是StringBufferappend方法和StringindexOf,subString()方法。

6.基本数据类型包装类的作用:

我们使用基本数据类型可以提高系统给的性能,满足大部分的需求,但是基本数据类型不具有对象的特性,不能满足某些特殊的需求。

其实这八种基本数据类型都有其自己的包装类,我们只要掌握了Integer这个包装类的用法,也就掌握了其他包装类的用法。因为里面有很多共性,我们完全可以举一反三。

7.我们来看一个例子:

比如我们呢要用*打印一个矩形,矩形的宽高在由我们输入的字符确定。

我么可以查看JDK帮助文档,查看Integer.

数组的定义,比如int[] ii=new int[1024];

Byte[] buf=new int[1024];

8.好的,我们来学习java中的集合类:

集合类,用于存储一组对象,其中的每个对象称之为元素,经常会用到的有Vector.Enumeration,ArrayList,

Collection,Iterator,Set,List

好的,我们首先来看一下Vector类和Enumeration接口

如果要想保存若干对象,但是事先又不知道对象数目时,Vector类就是一种不错的选择

它提供一种类似java不支持的动态数组的功能。

好的,现在哦我们来看一个例子:

我们将键盘上输入的一个数字数列中的每位数字存储在Vector中,然后再屏幕上打印出每个数字相加的结果。比如输入1234,打印出10,输入32,打印出5.

注意,在java中表示回车是'\r'   换行是'\n'

注意,在java中,我们输入1代表的asii码值是49,0代表的是48.

所以我们呢要得到输入的数值,就是*-'0'

import java.util.*;

public class TestVector{

public static void main(String[] args){

Vector v=new Vector();

System.out.println("请输入数字:");

//由于那个每次只能读取一个字符,所以要循环

while(true){

int b=System.in.read();

if(b=='\r'||'\n'){

break;

}else{

//否则我们将读取到的数据保存到Vector中,因为是不明数目的,所以选择Vector比较合适

int num=b-'0';//具体解释看笔记

v.addElement(new Integer(num);//由于里面不能直接保存int类型,要保存对象类型

}

}

}

}

---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------