JavaSE基础01

来源:互联网 发布:博威造价软件 编辑:程序博客网 时间:2024/05/21 04:18

一、Java数据类型

1.Short sh=new Short((Short)200);200默认为int类型。

2.Character------char;Character只有一种构造器,就是参数为char类型;

3.Double类型有2种构造器,一个是参数为String,还有一个为double的参数。

4.Float 有3种类型的,参数分别为 float、double、String。

5.Long有2种,参数为String和long,其中long类型可以=int,但是如果数字大于int的话,可以在数字的最后面加一个L,long收到的int类型的数据,如果不加L,其实还是int类型。

6.Integer有2种,参数为String和int,Short也是2种,String和short;Byte类型的也是2种,byte和String。

7.byte hh=20;  short ss=30; byte和short有个自动转换的机制,会将int变成byte和short,只要在接受的范围内。

8.类型转换

int i=Integer.parseInt("5000");

float f=Float.parseFloat("5000");

double d=Double.parseDouble("5000");

boolean boo=Boolean.parseBoolean("hello");---false;

9.数字为String类型转换为引用类型,然后再转换为基本类型,Integer inte=Integer.valueOf("200"); int i=inte.intValue();现在jdk1.5的已经可以引用类型自动转换为基本类型了。

10.数字转换为String

String instr=Integer.toString(1000);

String fstr=Float.toString(144.9F);

这种方式比较的传统,我个人比较喜欢直接的---》String xx=1000+"";这样其他类型会自动转换为String类型。

还有一个boolean类型,String boo=String.valueOf(true);

11.对象创建的东西在堆区,而 String str=new String("hello"); Integer in=new Integer(3);这些是放在常量区的。

12.将基本类型====》包装类型 Integer in=new Integer(200);  将包装类型======》基本类型 int x=in.intValue();

13.类型的比较

基本类型使用 ==,只要值相等,那么结果就是true,

==如果是用于比较对象的话,那么他们只有是同一个对象的时候才会相等,而且equals和==的效果是一样的,但是如果是比较的String类型的话,那么equals只要内容相同就是可以了,因为String的equals方法改造过。

14.final类型只可以赋值一次,而且final赋值前不可以被访问,因为系统不会赋值,final方法不可以重写但是可以重载和继承,final修饰的类不可以有子类。

15.抽象方法必须定义在抽象类里面,但是在抽象类里面可以没有抽象方法,在抽象类里面的属性与构造方法不可以加abstract;抽象类可以有普通方法。

16.static 与abstract不可以同时用

     final与abstract不可以同时用

     private与abstract不可以同时用

17.抽象类中可以有static的方法和属性 和 final的方法和属性。

18.接口里面的所有的方法都是抽象方法,只能用public与默认的修饰符修饰interface。

19.[修饰符] interface 接口名 extends 父接口1,父接口2.......{

可以定义常量和方法

}

20.接口定义的属性只能在定义时加默认值,而且其属性会自动加上public static。


二、内部类

1.外部类不可以直接访问内部类成员。

2.new 父类的构造器{匿名内部类类体};父类必须为abstract或者是interface,因为这里调用的构造器是匿名内部子类的,如果父类不是抽象或者接口的话,那么这里创建的将会是它本身。

3.非静态内部类的成员可以直接访问外部类的private成员。

4.非静态内部类不可以包含静态成员。

5.内部类要拿到内部类的属性 this.name;如果拿外部类的属性,外部类名.this.name。

6.静态内部类可以包含静态成员和非静态成员。

7.使用静态内部类的类名可以调用static成员,但是拿不到非静态成员,需要创建对象来拿取。

8.静态内部类成员不可以访问外部类的非静态成员,但是可以访问静态成员。

9.非static内部类不可以定义static的属性和方法,static内部类才可以定义static的属性和方法。

10.非static内部类可以直接访问外部类的属性和方法,不管方法是否为static。

11.static内部类只能直接外部类的static属性和方法。

12.非static内部类和外部类一样的属性和方法,调用外部类的非static属性方法,外部类名.this.属性,调用static的,外部类名.属性。

13.外部类访问内部类的static属性时,需要用 内部类名.属性;对象才可以访问内部类的属性和方法。

14.匿名内部类必须继承或者实现一个父类。

15.另一个类访问类的内部类需要创建对象,内部类可以访问另一个类(创建对象)。


三、枚举类

1.枚举类的构造方法是private的,Season s=Season.summer,拿summer.

2.Season ss[]=Season.values();拿其所有的值。


四、集合

1.set集合代表无序,不可以重复;list集合有序,可以重复;map是键值对(key--value)。

2.collection--------Set                                                   Map<--------HashMap

                  --------Queue 队列

                  --------List

list集合像一个数组,只是它可以变化,每次存储到达一定量的时候,它会自动增加自己,它取值可以通过元素索引来取值,set只能根据元素本身来取值,而map根据key拿value。


List接口

个人比较喜欢使用list,因为它按照顺序来的,和数组差不多。list的一些常用方法有:

list.addAll(2,set);2代表插入的位置;

list.get(3),代表拿list里面的第4个元素,list是从0开始的,所以3代表的是第4个元素;

list.size();获得list的长度;

list.remove(3);删除元素;

list subList=list.subList(1,4);从1拿到3;

listIterator();方法-----------boolean hasprevious()判断该迭代器是否有上一个元素;Object previous()向上拿数据;List list=Arrays.asList(strs);strs是一个数组,这样由数组转化成的list集合不可以添加元素和删除元素,只能改变元素的值;

Quene接口

Quene quene=new ListedList();

quene.offer(object e);添加到尾部;

quene.remove();移除返回队列的头部元素,如果队列为空则表示异常;

quene.poll();移除返回队列的头部元素,如果队列为空则返回null;

quene.peek();获取头部元素,不删除,若为空,返回null;

quene.element();获取头部元素,不删除,若为空,返回异常;

quene.add();

ArrayList和Linkedlist的区别

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构;

2.对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针;

3.对于新增和删除操作add与remove,linkedList占优势,ArrayList要移动数据;

Map接口

key数据组成了一个set集合,可以用keySet()方法,将所有的key转换成一个set集合;

遍历一

Set keySet=map.keySet();

for(Object  object:keySet){

String key=(String) object;

String value=(String) map.get(key);

}

后面添加重复的key,会把以前相同key的value覆盖;map集合中的value可以重复,map集合中的key可以为null,value也可以为null;key和value也可以同时为空;

map.clear()清空所有元素;map.containskey();验证是否包含key;map.containsValue();验证是否包含value;map.isEmpty();验证是否为空;

遍历二

Set set=map.entrySet();

foreach{

Map.Entry entry=(Map.Entry) object;

System.out.print(entry.getKey+entry.getValue)

}

map.putAll();将一个集合添加到另一个集合中;map.remove("key");删除指定key的元素;map.size()获取集合大小;

Hashtable map=new Hashtable();

Hashtable不可以把key为null;value也不可以为null;

Hashtable是线程同步的,线程安全的,Hashmap不是线程安全的,但是速度更快;


Collections工具类

Collections.sort(List list)按照字典排序顺序;

Collections.shuffle(list)随机排序;

Collections.max(list)最大值,Collections.min(list)最小值;

Collections.reverse(list)逆序;

Collections.swap(list,0,2)交换;Collections.fill(list,"123");将list全部换成123;





0 0