1.冒泡排序
class TestAry{
public static void main(String[] args){
int[] ary = {3,2,9,1,7,10,34};
int temp=0;
for(int i=0;i<ary.length-1;i++){
for(int j=i+1;j<ary.length;j++){
if(ary[i]>ary[j]){
temp = ary[i];
ary[i]=ary[j];
ary[j]=temp;
}
}
}
}
}
2.二分法查找
class TestAry{
public static void main(String[] args){
int[] ary={1,2,3,4,5,7,8,9};
int v=9; //需要查找的值
System.out.println("查找的位置为:"+TestAry.serachAry(ary,v));
}
public static int serachAry(int[] ary,int v){
int low = 0;
int hig = ary.length-1;
while(low<=hig){
int mid = (low+hig)/2
if(v==ary[mid]){
return mid;
}else if(v<ary[mid]){
hig = mid-1;
}else if(v>ary[mid]){
low = mid+1;
}
}
}
}
3.包装类的使用,自动装箱、拆箱
//创建包装类实体:
Integer i = new Integer(30);
Integer i = Integer.valueOf(30);
Integer i = Integer.parse("30");
Integer i =5;//自动装箱
int a = i;//自动拆箱
//说明:Integer包装类,缓存大小为-128-127之间。
4.StringBuilder 和StringBuffer区别
StringBuilder:线程不安全,效率高。
StringBuffer:线程安全效率低。
StringBuilder和StringBuffer常用方法:
reverse();//反转
append("添加内容");
insert(0,'e'); //在指定位置添加内容
delete(9,18);//删除指定位置内容
setCharAt(0,'k');//指定位置修改内容
5.Calendar、Date、DateFormat日期类的使用
创建Calendar对象并使用:
Calendar c1 = new GregorianCalendar();
Calendar c32 = new GregorianCalendar(2018,10,20,20,30,30);
c1.get(Calendar.YEAR);//获取年
c1.set(Calendar.YEAR,2000);
c1.add(Calendar.YEAR,20);//在日期基础上加20年
c1.add(Calendar.DAY,10);//在日期基础上加10天
c1.getTime();//获取Date类型时间
c1.setTime(new Date());//设置Date类型时间
c1.after(c2);//c1日期是否在c2后面
创建创建Date对象:
Date date = new Date();//获取当前时间
System.currentTimeMillis();//获取当前时间毫秒
date.getTime();///获取当前时间毫秒
date.afet(new Date());//date日期是否在当前时间的后面
创建DateFormat对象:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String strTime = df.format(new Date());//Date类型转String
Date d = df.parse("219-10-11"); //字符串转Date类型
6.File的使用
//File实例化:
File f = new File("D:\\1.txt");
f.renameTo(new File("D:\\2.txt"));//重新命名
f.createNewFile();//创建文件
f.exists();是否存在
f.isDirtectory();//是否是目录
f.getModifide();//获取最后修改时间
f.length();//获取文件大小
f.getName();//获取文件大小
f.getAbsolute();//获取文件绝对路径
f.delete();//删除文件
f.mkdir();//创建文件,必须有父目录
f.mkdirs();//创建文件,没有父目录可以自动创建
7.枚举的使用案例
public class TestEnum{
public static void main(String[] args){
Num n = Num.getNum("00","成功")
if(n!=null){
switch(n){
case ONE:
System.out.println("k:"+n.getCode()+"v:"+n.getMes());
break;
case TWO:
System.out.println("k:"+n.getCode()+"v:"+n.getMes());
break;
default:
System.out.println("其他信息");
}
}
}
}
enum Num{
ONE("00","成功"),TWO("01","失败");
private String code;
private String mes;
public String getCode(){return this.code;}
public void setCode(String code){this.code=code}
public String getMes(){return this.mes;}
public void setMes(String mes){this.mes=mes;}
private Num(String code,String mes){
this.code=code;
this.mes=mes;
}
public static Num getNum(String c,String m){
for(Num n:Num.valuse()){
if(n.getCode().equals(c)&&n.getMes().equals(m)){
return n;
}
}
return null;
}
}
8.Execption \ Erro \ Throwable 三者关系
- Throwable是父类, Erro和Exception是子类
- Erro:是系统错误,程序员不可以解决。
- Exception:是异常,表示程序员可以控制的错误。
9.异常处理
使用try…catch(Exception e)…finally…来捕获异常
throws 一般用方法抛出异常,给调用者处理
class T{
public void test() throws Exception{
.......
}
}
throw 在代码业务中执行处理异常
try {
throw new MyException("输入的年龄不合法!!!!");
} catch (MyException e) {
//输入的年龄不合法!!!!
System.out.println(e.getMessage());
}
10.自定义异常
//定义异常类:
class MyException extends Exception{
public MyException (String mes){
super(mes);
}
}
//使用自定义异常:
try {
throw new MyException("输入的年龄不合法!!!!"); //抛出自定义异常
} catch (MyException e) {
System.out.println(e.getMessage()); //打印自定义异常信息
}