java课堂笔记-第2节

1..i1和i2相等吗?
答:
                       Integer> Integer> System.out.println(i1==i2);
   相等(ture)integer范围


2.测试下面例子是否相等?
String> String> String> String> String> System.out.println(str1==str2); true
System.out.println(str3==str4);false
System.out.println(str3==str1);false
System.out.println(str3==str5);false
System.out.println(str1==str5);true
---------------------------------------------
int []> int []> System.out.println(arr1==arr2);false
System.out.println(arr1.equals(arr2));false
System.out.println(Arrays.equals(arr1, arr2));true
Arrays.sort(arr1);
System.out.println(Arrays.toString(arr1));[1, 2, 3]
System.out.println(arr1);[I@16de49c


3.java类里包含哪几种成员?
答:
属性
方法
构造方法
初始化块
枚举:
(可以有属性可以有方法还可以实现接口)
查看枚举李有多少属性可用 values()方法
ordinal()返回:枚举常量的序数
内部类:
(当看到编译好的class文件时Test$A$B)$就是一个内部类,当看见Test$1.class就是匿名内部类
 内部类可以是静态(static)的。外部类不可以
 方法里面定义的类成为局部内部类
public class LocalInnerClass {
        public void test(int a){
int> class InerClass{//局部内部类,不能实例化
public void print(){
System.out.println(a);//报错Cannot refer to a non-final variable b inside an inner class defined in a different method
System.out.println(b);//报错Cannot refer to a non-final variable b inside an inner class defined in a different method
}
}

}
}  *局部内部类访问外部成员,只能访问常量(final),出于安全考虑!所以需加上final;
          



4.Overload和Override的区别?
答:
Overload是实现一个类的重载,发生在同一类中,当一个类的方法和另一个方法的名称相同且参数类型(个数)不同,证明这两个方法重载了,他们与访问修饰符无关,返回值没有关系 ;
而Overrid用于重写一个类实现的方法,当一个类实现某个接口应Override接口的所有方法,方法的名称相同,返回类型相同或者是其子类,抛出的异常不能比父类大的异常,不能增多个;
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。




5.写出Object类里的方法?
答:
equals(),> 首先,List与Set具有相似性,它们都是单列元素的集合,所以,它们有一个功共同的父接口,叫Collection。Set里面不允许有重复的元素,所谓重复,即不能有两个相等(注意,不是仅仅是相同)的对象,即假设Set集合中有了一个A对象,现在我要向Set集合再存入一个B对象,但B对象与A对象equals相等,则B对象存储不进去,所以,Set集合的add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true,当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回结果为false。Set取元素时,没法说取第几个,只能以Iterator接口取得所有的元素,再逐一遍历各个元素。

       List表示有先后顺序的集合,注意,不是那种按年龄、按大小、按价格之类的排序。当我们多次调用add(Obj e)方法时,每次加入的对象就像火车站买票有排队顺序一样,按先来后到的顺序排序。有时候,也可以插队,即调用add(int index,Obj e)方法,就可以指定当前对象在集合中的存放位置。一个对象可以被反复存储进List中,每调用一次add方法,这个对象就被插入进集合中一次,其实,并不是把这个对象本身存储进了集合中,而是在集合中用一个索引变量指向这个对象,当这个对象被add多次时,即相当于集合中有多个索引指向了这个对象,如图x所示。List除了可以以Iterator接口取得所有的元素,再逐一遍历各个元素之外,还可以调用get(index i)来明确说明取第几个。

       Map与List和Set不同,它是双列的集合,其中有put方法,定义如下:put(obj key,objvalue),每次存储时,要存储一对key/value,不能存储重复的key,这个重复的规则也是按equals比较相等。取则可以根据key获得相应的value,即get(Object key)返回值为key所对应的value。另外,也可以获得所有的key的结合,还可以获得所有的value的结合,还可以获得key和value组合成的Map.Entry对象的集合。


-------------------------------------------------------------
Collection是集合类的上级接口,继承与他的接口主要有Set和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
11.说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
LinkedList也是线程不安全的,LinkedList提供了一些方法,使得LinkedList可以被当作堆栈和队列来使用。
12.hashMap,Hashtable,TreeMap的区别?


作业:
写一个冒泡排序的例子?
写一个程序输出九九乘法口诀表?
答:public class Test {


/**
* @param args
*/
public> for (int> for (int j = 1; j < i+1; j++) {
System.out.print(j+"*"+i+"="+i*j+" ");
}
System.out.print("\n");
}
}
}


随机生成一个100个【41,50】之间的随机数?要求找出出现次数最多的那个数以及出现的次数?

---------待做---------

写一个斐波那契数列的通项?

---------待做---------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值