Java学习笔记之二(数组和JDK常用类)

[b][size=medium]以下是我个人总结的一些Java中常用类[/size][/b]
[list=1]
[*][b][color=red]数组(Array):[/color][/b]我们这里所说的数组并不是java.util.Arrays,这个类提供数组操作的一些静态方法(如排序和二分查找等),数组在Java中就是对象,它具有length属性,分静态初始化
int[] a = {1,2,3};
和动态初始化
int[] a = new int[]{1,2,3};
有人肯定会奇怪如下代码,
 
String s; s = "abc";//这样可以通过编译
int[] a; a = {1,2,3};//这样不能通过编译

出现这个错误的原因主要是a的大小未确定,你可以这样赋值a={1,2,3},等下可能变成a={1,2,3,4,5},JVM并不能确定你的大小,和集合类并不一样;
[*][b][color=red]基本类型封装类:[/color][/b]因为整数、浮点数和字符等经常需要操作,所以Java中定义了基本数据类型,减少了创建对象所带来的效率问题;在JDK1.5以后所有的封装类都缓存了一定范围的该类型的常量,调用封装类的valueOf()方法可以比构造方法更有效率得到该类的对象,例如:
 Integer inte = new Integer(2); Integer inte = Integer.valueOf(2);//更有效率

[*][b][color=red]System、Runtime、Random和Math:[/color][/b]Runtime通过exec()方法执行系统进程,
System.getRuntime.exec("notepad");
System类可取得系统时间(System.currentTimeMillis()),运行垃圾收集器GC(System.gc()),通过
 System.setIn(PrintStream in); System.setOut(PrintStream out); 
改变默认的输入输出流,取得系统变量
System.getProperty("sun.boot.class.path");
Random和Math可取得随机数(Math.random());
[*][b][color=red]工具类(java.util):[/color][/b]在java.util包中主要是集合(Collectioin)类,完全按照面向对象的思想设计,主要父接口是Collection和Map接口,Map接口存储键值对:
[list]
[*]由Collection派生出List和Set接口,区别能否存储相同元素,有人会奇怪List中包含get(int index)方法,而Set中并没有:
[color=violet]因为List是按加入的顺序来储存元素的,所有的元素可通过get(int index)方法来取得,相当于是数组,而Set的存储顺序并不固定,无法通过get(int index)方法取到,所以在Set中也就没有此方法;[/color]
[*]由List派生出ArrayList和Vector,ArrayList比Vector效率要高些,因为ArrayList不是线程同步的;
[*]由Set派生出HashSet和TreeSet,他们都不是线程同步的,HashSet通过哈希(hash)算法决定对象存储的顺序,而TreeSet根据对象所实现的compareTo()方法来决定储存的顺序,所以加入到TreeSet中的对象都要实现compareTo()方法;
[*]由Map接口派生出HashMap和HashTable,其中HashMap不是线程同步的,效率高些,在HashTable中包含了返回Enumeration的elements()方法,而HashMap中没有,原因何在:
[color=violet]因为HashTable在JDK1.1时继承于Dictionary类,所以继承了elements()方法用于返回所有值的Enumeration,在JDK1.2才修改让它实现了Map接口,elements()方法仍然保留下来。[/color]
继承于HashTable有个比较重要的类:Properties,它用于读取Java属性文件(.properties),简单示例:

Properties prop = new Properties();
prop.load(new FileInputStream(new File("db.properties"))); //读取属性配置文件
String value = prop.getProperty(key); //根据关键字取得属性值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值