java基础(三)

引言:

      我决定把课程分为五个板块,现在来介绍一下这些板块都会说些什么。第一个板块当然是介绍结构化程序设计的内容,但是不会很详细,最好有C语言或者C++基础,因为我只会重点说一些部分。第二个板块就是面向对象程序设计,也是重点讲解一些关系。第三个板块介绍特殊的结构:数组、字符串、向量,哈希表,泛型和枚举。第四个部分就是异常处理和文件数据流操作。第五个部分会讲解一些swing图形用户界面程序设计和介绍编程规范。课程很水,有一些有帮助,有一些没有帮助,那么就择优一起学习吧,如有错误,评论指出哦。

讲解第三个大板块:


三、数组、字符串、向量、哈希表、泛型和枚举

1、数组

   无论是一维数组亦或是二维数组,还是其它的多维数组,都是和C语言C++的一致,所以这里给出一个简单的例子,其中chengji数组里面的值可以创建Scanner对象输入,也可以直接赋予直接量。

public void MaoPaoSort() {
				int chengji[]= {math,english,PE,MaoGai,Java,suanfa};
				String s[] = {"数学","英语","体育","毛概","JAVA","算法"};
				for(int i=0;i<6;i++)
					for(int j=1;j<5;j++)
					{
						int t;
						if(chengji[i]<chengji[j])
							t = chengji[i];
							chengji[i] = chengji[j];
							chengji[j] = t;
					}
				System.out.println("结果为:");
				for(int i=0;i<6;i++)
				{
					System.out.println(s[i]+":"+chengji[i]);
				}
			}

(补充)数组默认初始化值其实都可以看做是0,整型数据都是0,浮点型为0.0,char型也是0,但是它是ASCALL中的0,string为null,boolean为false。

     它们在内存中一个简单的结构就是通过地址来连接的,简单的JVM就有栈区、堆区、方法区(常量池、静态域),一般都是栈区通过地址连接到堆区或方法区里面存储的数据,并且数组名就是首地址(这个和C语言是一致的)。

 

2、字符串

   这里的字符串对象就比之前的C语言要灵活得多,里面有多种方法都非常的好用,如果你在IDLE里面编写代码,那么ctrl+F1可以帮助你认识很多的方法,而且集成编辑器也会弹出很多的String方法。我这里介绍一下比较少见的几个。

字符串转换为的类型方法
转换为字符类型String.charAt
转换为布尔类型public static boolean parseBoolean(String s)
转换为字节类型public static byte parseByte(String s) throws NumberFormatException
转换为整型public static int parseInt(String s) throws NumberFormatException
转换为字节数组public byte[] getBytes()
转换为字符数组

public char[] toCharArray()

 

3、字符串缓冲区

  我们都知道字符串实例对象一旦创建完毕,就不能再修改它的字符序列,而字符序列缓冲区实例对象在创建后仍然可以修改它的字符序列。下面给出一个实例

public class StringBuffer
{
    public static void main(String args[])
    {
        StringBuffer b = new StringBuffer("0123");
        System.out.println("字符串缓冲区的字符序列为\""+b+"\"");
        System.out.println("字符串缓冲区的长度是"+b.length());
        System.out.println("字符串缓冲区的容量是"+b.capacity());

        b.ensureCapacity(25);
        System.out.println();
        System.out.println("在调用\"b.ensureCapacity(25)\"之后");
        System.out.println("字符串缓冲区的字符序列为\""+b+"\"");
        System.out.println("字符串缓冲区的长度是"+b.length());
        System.out.println("字符串缓冲区的容量是"+b.capacity());
    }
}

结果:

我们可以看到,缓冲区容量不够,所以就变成了2*2+2

 

4、向量

  由于向量在之后的练习中是不常用的,所以这个想知道就可以自己了解。

 

5、哈希表

  哈希表的原理也就是数据结构中提到了散列函数,哈希表有一个好处就是键值对的关系很明确,上面的成绩函数就可以用哈希表来完成,代码在我java专栏的第二个java程序里面有。

 

6、泛型

  这里的泛型可以类比为C++里面的模板,我们来看看实例就知道了。

public class Add<T>
{
    public String sum(T a1,T a2,T a3)
    {
        return(a1.toString()+a2.toString()+a3.toString());
    }
    public static void main(String args[])
    {
        Add<Integer> b = new Add<Integer>();
        Integer a1 = new Integer(1);
         Integer a1 = new Integer(2);
         Integer a1 = new Integer(3);
        System.out.println(b.sum(a1,a2,a3));
    }
}
            

输出结果就是123,如果要相加,那么就把整型对象用intValue方法转换。

 

7、枚举

  个人觉得枚举的作用类似于结构体,但是显然结构体要高级一些。

实例:

enum SEASON
{
    春,夏,秋,冬
}
public class Enum
{
    public static void main(String args[])
    {
        SEASON[] sa = SEASON.values();
        for(int i=0;i<sa.length;i++)
        {
            switch(sa[i])
            {    
            case 春:
                System.out.println("春天来了");
                break;
            case 夏:
                System.out.println("夏天来了");
                break;
            case 秋:
                System.out.println("秋天来了");
                break;
            case 冬:
                System.out.println("冬天来了");
                break;
            }
        }
    }
}

 

后记:

     那么之后就是异常与文件处理部分了,冲啊,如有误,评论指出,谢谢。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

threecat.up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值