通过javaAPI文档查询java类
枚举类型
可以用来限制一些常量
public enum Sex { MAIL, FEMAIL }//界定了性别只能是男或者女
定义枚举类型变量即可调用
pulic Sex sex;
包装类
包装类就是把基本数据类型包装成对象
八个基本数据类型 对应 八个包装数据类型
基本数据类型 | 包装数据类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
集合框架泛型<>里面,不允许写基本数据类型,只能使用它们的包装类型!
在使用中当作基本数据类型来用。
idea中存在:
自动装箱:基本数据类型可以自动转换为对应的包装类型。
Integer i = 100;//底层就是调用.valueOf()
自动拆箱:包装类型可以自动转换为对应的基本数据类型。
int num = i;//底层就是调用.intValue()
Integer如果给的是纯数字,超过了一个字节的范围[-128,127],就为假,新开辟一个地址空间。
new肯定开辟一个新空间,不给new就是共享一个空间
层级关系:
基本数据类型和字符串之间的转换
想要转换,一般要么使用String里面的函数,要么使用包装类的函数(一般情况下是静态函数,都是通过类名调用)
转字符串
Integer.toString(对象) String.valueOf(对象)
字符串转
Integer.parseInt(对象) //parse解析
String类
常用方法
.length() //获取字符串长度
.equals() //比较字符串
.equalsIgnoreCase() //忽略大小写比较字符串
“==”和equals()有什么区别?
==:判断两个字符串在内存中的地址,即判断是否是同一个字符串对象
equals():比较内容是否相等
.toLowerCase() //转小写字符串
.toUpperCase() //转大写字符串
.concat() //拼接字符串
字符串的提取方法
.indexOf(int ch,fromIndex)
//查找字符在字符串中的位置,找到返回下标,找不到返回-1,匹配第一个,fromIndex从第几个下标开始找
.indexOf(String value,fromIndex)
.lastIndexOf(int ch,fromIndex)
//从后往回找
.lastIndexOf(String value,fromIndex)
可以在觉得有问题的地方加上TODO 未来将会处理的地方标记一下
.substring(int index) //从指定的下标位置,一直提取到末尾
.substring(int beginindex,int endindex) //从指定的下标位置(包含)的字符,一直提取 到指定的下标位置(不包含)的字符
.trim() //去掉字符串左右看不见的字符,\r \n \t 或者空格
.split(正则表达式) //切割字符串,以正则表达式为条件进行切割,返回一个字符串数组
字符串内容不可变,本质是final char value[],改变字符串其实是改变到新字符串地址
StringBuffer内容可变
StringBuffer 名 = new StringBuffer(字符串)
.append() //追加字符串
.insert(位置,字符串) //插入字符串
-
如果字符串内容不经常变,就用String
-
如果字符串经常变,就用StringBuffer
-
StringBuffer一定是new出来的
Arrays类
Arrays.sort(Array,begin,end) //排序数组
.toString(Array) //打印数组
.equals(Array) //比较数组数值是否相等
.fill(Array,begin,end,value) //填充数组(begin包括,end不包括)
Math类
Math.PI //Π的常量
Math.abs(value) //取绝对值
Math.round(value) //四舍五入(整数>=5进1,负数>5进一)
Math.floor(value) //找地板(例3.9=3,-3.9=-4,负数往上取),往小取整
Math.ceil(value) //找天花板,往大取整
Math.sqrt(value) //平方根
(Math.random()*n)+i //随机数(小数类型),[0.0,1.0),产生[0,value)中数,从i开始到n-1
random类
Random random = new Random(seed) 轻易不要将种子放入,不然固定随机值
random.nextDouble() //返回[0.0,1.0)之间随机数
random.nextInt(vlaue)+n //从[0,value) 产生随机数 n起始
System类
System.currentTimeMillis() //返回以毫秒为单位的当前时间(1970.01.01到现在)
System.arraycopy(arr1,n,arr2,m,长度) //将arr1数组里从索引为n的元素开始, 复制到数组arr2里的索引为m的位置, 复制的元素个数为长度
System.exit() //退出虚拟机
static Printstream err “标准"错误输出流 static Inputstream in “标准“输入流。 static Printstream out "标准"输出流 System.oUt.println("out"); //默认的输出地址是控制台 System.err.println("err"); //默认的输出地址是控制台(红色字体) System,out.println(System.in); //默认指代键盘
Date类
Date date = new Date() //现在时间
Date date = new Date(0) //0代表是1970.1.1 0:00格林威治时间(中国1970.1.1+8:00)
字符串转日期
DateFormat 名 = new SimpleDateFormat("yyyy-MM-dd") //括号里面填日期格式
名.parse(对应格式的字符串)
日期转字符串
DateFormat 名 = new SimpleDateFormat("yyyy-MM-dd")
名.format(日期) //将日期转换为对应格式字符串
标识字母(区分大小写) | 含义 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
Calendar类
Date有大量方法过期了,采用Calendar类(日历)
本身是一个抽象类
Calendar instance = Calendar.getInstance(); //当前时间点
instance.setTimeInMillis(0) //设置时间1970年
instance.get(Calendar.YEAR) instance.get(Calendar.MONTH) //月份是从0开始记的 instance.get(Calendar.DATE)) //获取年月日
instance.set(Calendar.YEAR,时间) instance.set(Calendar.MONTH,时间) //设置年月日 多出十二月算到下一年 instance.set(Calendar.DATE,时间)
Calendar转Date
Date date1 calendar1.getTime();
Date转Calendar
Calendar calendar2 Calendar.getInstance();
date1.setTime(0); calendar2.setTime(date1); //将date1时间接受过来
总结:在开发中一般采用java.util.Date即可!