l 对于多线程,实现runnable接口与继承Thread类的优点
1、 适合多个相同程序代码的线程去处理同一资源;
2、 可以避免有java的单继承带来的局限
3、 有利于代码的健壮性,代码能够被多个线程共享
l 当一个程序只有后台线程时,进程就会结束。Main方法中的线程为前台线程
l 位运算符
& 只有参加运算的两位数都是1,&运算结果才为1,否则为0;
|只有参加运算的两位数都是0,|运算结果为0,否则为1;
^只有参加运算的两位数都不一样,运算结果才为1 否则为0
<<左移运算,右边的缺位用0补齐
>>右移运算,左边最高位为1时用1补齐,0时用0补齐
>>>无符号右移最高位用0补齐
移位运算能帮助我们实现乘以或处以2的n次方的效果
X>>1 和x/2结果一样 x<<2 和x*4结果一样
l 一些和数组操作相关的函数
数组的复制:System.arraycopy();
数组的排序 array.sort()
l 静态变量:类似与其他语言的全局变量,如果不是私有的,就可以在类的外部进行访问,不用实例化,只需要类名.静态变量就可以引用
我们不能把任何方法内的变量声明为静态
l 静态方法:不必创建某个对象就可以创建这个方法,1、可以使用类名.方法名访问2、也可以使用实例方法名访问,3、在类的非静态成员方法中访问。
Main方法是静态的,因此在类的main方法中不能直接访问类的非静态成员,必须创建一个对象后才能访问。
l 静态代码块
一个类中可以使用不包含在任何方法体中的静态代码块,当类被装在时,静态代码块被执行,且只被执行一次,静态代码块经常用来进行类属性的初始化
l String 比较两个字符串、查找或抽取串中的字符或子串,字符串和其他类型的转化
l StringBuffer 用于内容可改变的字符串,可以将各种类型的数据增加到字符串中,最后通过StringBuffer.tostring()方法称为字符串
Ignorecase忽略大小写 indexof()返回一个字符在字符串中出现的位置
Substr()截取字符串
l Java中八种基本的数据类型,及对应的包装类
Int Integer long Long short Short byte Byte charCharcrater short Short double Double
要将字符串类型转化为基本类型基本上为包装类.parseXxx.
要将包装类转化为基本数据类型,为Xxx包装类对象.xxxValue()
l 集合类:java不提供动态数组,提供一种高级的数据结构集合类
Vector addElements 添加对象 通过是实现Enumeration接口遍历访问元素
Vector v=new Vctor()
v.addElement();
Enumeration e=v.elements
While(e.hasMoreElements){
Object obj=(Obj)e.nextElement() nextElements(返回正指向的对象,并下移)
}
Arraylist
ArrayListlist=new ArrayList()
List.add();
Iteratorit=list.iterator();
While(it.next()){
Obj obj=(Obj)it.next()
}
Vctor 线程安全,确保只有一个线程访问vctor对象,效率相对要低
ArrayList 非线程安全,需要我们实现线程安全,效率相对要高
Collection 对象之间没有指定顺序,允许重复
Set 不允许重复 list允许重复
集合类.sort()可以排序
l Hashtable 可以像vector一样存储一系列对象,并且安排一个值与其对应。Hashtable.put(Object key,Value value)
Stringbuffer 不能作为关键字类
用做关键字的对象必须正确的覆盖了object.hascode()方法和object.equals()方法
散列吗的值如果一样则是一个对象
l Propertyies 是hastable的子类,它增加了将对象中的关键字和值保存到文件中的方法
l Java不支持全局变量和函数,将一些系统相关的重要函数和变量收集到一个同一的类这就System类。
l Runtiem类封转了java命令本省的进程,我们不能直接创建Runtime实例,但可以通过Runtime.getruntime()得到实例。
l Date()基本类
l Calendar类是一个抽象基类,主要用于完成日期字段之间相互操作的功能
方法 | 作用 |
Add | 某一日期加上若干天后的日期 |
Get | 取出年月日时分秒的对象 |
Set | 修改年月日时分秒的对象 |
GetINSTANCE | 返回一个calendar类型的实例 |
|
l Dateformat
SimpleDateformat sd2=new DateFormat(“yyyy年mm月dd日”);
l 数组 在java中数组实际上是对象,通过下标或索引访问。
从数组概念和技术上讲是数组上引申畜类Arraylist list vctor collention
数组是内置的,类型是final的不具有继承,扩展性。
l Arrays类是java.util包,增加了一些方法,专门用来实现增值、复制、比较、排序以及搜索等。
方法 | 解释 |
Boolean(Array name1,Array name2) | 如果两个数组类型且对应的数据相等,返回true、否则返回false |
Fill(arrayName,value) | 对数组各元素填充指定的值 |
Fill(arrayName,index,n,value) | 对数组从小标index开始对n各元素填充指定的值 |
dataType[]copyof(Arrayname,length) | 返回一个复制指定数据类型和长度的数组 |
Sort(arrayName) | 对指定数组进行排序 |
Sort(array,index1,index2) | 对数组指定下标排序 |
Int binarySearch(arrayName,value) | 返回数组中具有value想等值的元素的下标,如果没有找到这个值,返回一个负整数 |
String tostring() | 将数组以字符串形式返回 |