1.java中常用的类
1)object 类:java的祖先类
equals():用来比较两个对象的引用是否相等,即是否指向同一个对象
==:基本类型数据比较值。引用类型则是和equals一样的,比较的是地址
String重写了equals()方法,比较的是对象的内容
2)String类:final类型的类(不能修改,修改之后产生新的类对象)
String类在java.lang包中,lang是Java中的基础包,默认加载,不需导入
String s="hello";//申明一个局部变量指向常量池的字符串
String s1="hello";//又申明一个局部变量指向常量池的字符串,没有创建对象
String常用方法:
- public int length()//返回该字符串的长度
- public char charAt(int index)//返回字符串中指定位置的字符;注意字符串中第一个字符索引是0,最后一个是length()-1。
- public String substring(int beginIndex)//该方法从beginIndex位置起,从当前字符串中取出剩余的字符作为一个新的字符串返回。[beginIndex,1)
- public String substring(int beginIndex, int endIndex)//该方法从beginIndex位置起,从当前字符串中取出到endIndex-1位置的字符作为一个新的字符串返回。[beginIndex,endIndex)
String str1 = new String("asdfzxc");
String str2 = str1.substring(2);//str2 = "dfzxc"
String str3 = str1.substring(2,5);//str3 = "dfz"
- public String concat(String str)//将参数中的字符串str连接到当前字符串的后面,效果等价于"+"。
- public String replace(char oldChar, char newChar)//用字符newChar替换当前字符串中所有的oldChar字符,并返回一个新的字符串。
- 基本类型转换成String对象:
String.valueOf('a')
Character.toString('a')
3)StringBuffer:线程安全的可变字符序列(lang)
每次修改的还是原来的对象,只是对像的内容变化了。
常用方法:
append("x");//追加数据(可以是多种数据类型)
insert(a,"x");//把x插入到第a个位置
delete(a,b);//从a开始,b结束删除[a,b)
reverse();//字符串对象反转
5)SimpleDateFormat
format(Date对像):日期转换成字符串
parse("x"):字符串转换成日期
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
sdf.format(date);
String birth="2012-01-01 12:03:02";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date dt=sdf.parse(birth);
6) system (lang)
system.in 输入流 system.out 输出流
gc() garbage collect 垃圾回收器:自动扫描内存空间里面的对象,如果对象为Null或长时间无人使用就会自动回收占用的内存
Java内存的回收不需要程序员手动处理,JVM自带一个后台线程(守护线程),在每隔一段时间内会调用system.gc()方法。
7) 基本数据的包装类 (lang)
Byte Short Integer Long Float Double Boolean Character
- 自动拆包:包装类自动转换成基本类型,再赋值
int n=new Integer(20);
- 自动装包:基本类型自动转换成包装类,再赋值
Integer i=10;
2.数组
数组:存放多个具有相同数据的数据集合
数组定义三种方式:
int[] arr=new int[3];//[]可以放在变量前 后或前后都有
**一般中括号是数组类型的一部分,常用数组定义如下:String[] args**
int[] arr=new int[]{1,2,3};
int arr[]={1,2,3};
1)数组的排序:
- 冒泡排序(相邻):
相邻的两位比较,如果右边的比左边小,换位
每一轮结束后,有一个最大的在右边
要经过n-1轮完成排序
i 表示控制几轮, j表示操作值下标, j和j+1比较
- 选择排序(选定一个数作为被比较的数):
每个数都要和有min标记的数比较,如果小,则换
每一轮结束后,有一个最小值在左边
经过n-1轮完成排序
i表示每一轮的第一个数,同时也是min标记的数,j表示i后面的数,i和j比较
- 直接插入排序:
从中间开始排序,.......
选择排序和冒泡排序的比较次数一样,但交换的次数是选择排序较少,一次比较只换一次
2)三维数组
数组定义:
静态定义: int [][] arr={{},{},{}};
动态定义:
int [][] arr=new int[3][];
int[][] arr=new int[3][2];
int[][] arr=new int[][];//会报错
int[][] arr=new int[][2];//会报错