复习:
String:
常量,不可改变,可以改变的引用
常量池: 如果字符串存在,则不开辟新空间,直接使用。
常用方法:
StringBuffer/StringBuilder:
可以改变的字符序列。
append():追加
包装类:
基本类型---》包装类,Integer Character
字符串,包装类,基本类型间的转换
自动装箱和自动拆箱
Integer in = 123;
int num = in;
正则表达式:
由 字母 数字 符号 组成的有规则的字符串,可以去校验指定的字符串。
1.匹配 matches
2.切割 split
3.替换 replaceAll
4.获取
1.将正则规则封装到正则对象 Pattern p = Pattern.compile(regex);
2.将正则对象与要操作的字符串相结合,得到匹配器对象 Mathter m = p.matcher(str);
3.使用匹配器对象,获取符合规则内容, 先判断后获取 m.find(),m.group()
System:
该类final类,继承Object,不能实例化。
字段:
out: 标准的输出设备
err: 标准的错误输出设备
in: 标准的输入设备
方法:
void exit(0) :系统退出
long currentTimeMills():获取当前系统时间毫秒值
Property getproperties():获取系统所有的属性名和属性值
String getProperty(name):根据name属性返回属性值
Math:
该类final类,继承Object,类中方法和属性都是静态的,不需要对象。
属性:
E :自然底数
PI:圆周率
方法:
ceil(double a):>= a 的最小整数
floor(double a): <= a 的最大整数
round(double a): 四舍五入
pow(a,b): a的b次幂
random(): 随机数
Random:
java.util
nextInt(num) :返回的是 [0,num)间的随机整数
jdk5.0特性:
1.静态导入
import 包名.类名; 导入指定的类
静态导入:导入的是静态成员(变量和方法)
语法格式:
import static 包名.类名.静态成员名;
import static 包名.类名.*;
好处:
简化了代码的编写
弊端:
阅读性变差
2.可变参数
格式: 数组类型... 变量名
eg: int... num
底层原理是:一个数组,可以按照数组的方式进行操作
注意:可变参数在方法参数列表上,只能出现一次,并且放在参数列表的最后边
3.for-each语句
for(数据类型 变量名 : 被遍历的对象(数组/集合)){
}
作用:遍历操作
java.util包
Date类:
日期类,可以精确到毫秒。该类大部分方法已过时,用Calendar类替代。
构造方法:
new Date()
new Date(long time)
DateFormat:
抽象类
static getInstance():获取DateFormat的实例对象
String format(Date date):可以将date进行默认格式化
--SimpleDateFormat:
new SimpleDateFormat(模式):当调用format方法时,可以按照指定的模式去进行格式化。
eg:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date = sdf.format(new Date());
eg:
可以将一段表示时间日期的字符串,按照模式进行解析,解析为Date对象
String str = "2018-09-20 11:22:55";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = sdf.parse(str);
Calendar:
日历类,抽象类
static getInstance():可以获取Calendar实例对象
int get(Field):根据Field获取对应的数据
eg:
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
集合:
数组:
1.元素统一
2.长度固定
3.即可以存储引用类型也可以存储基本类型
集合:
1.不同类型的数据
2.长度可变
3.存储引用类型
集合框架:
java.util包:
Collection:
---List
---ArrayList
---LinkedList
---Vector
---Set
---HashSet
---TreeSet
Map:
---HashMap
---TreeMap
import java.util.Random;
/*
* math类练习
*/
public class Demo {
public static void main (String [] args) {
// System.out.println(Math.sqrt(16));//开平方
// System.out.println(Math.pow(2,3));//第一个数为底数,第二个数为指数,
// System.out.println(Math.random());//[0.0-1.0)之间的随机数
// System.out.println(Math.E);//自然底数
// System.out.println(Math.PI);//常量
// System.out.println(Math.ceil(4.56));//大于当前数的最小整数
// System.out.println(Math.floor(4.56));//小于当前数的最大整数
// System.out.println(Math.round(4.67));//四舍五入
//
// Random r = new Random();//创建产生随机数的那个对象
//// System.out.println(r.nextInt(6));//产生随机数
////// for(int i = 0;i<6;i++) {
//// System.out.println(r.nextInt(6)+1);
//// }
// System.out.println(r.nextDouble());//。[0.0-1.0)
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.junit.Test;
/*
* 日期时间类
*/
public class Demo02 {
@Test
public void test() throws ParseException {
// Date d = new Date();//把当前时间封装成Date对象
// long s = d.getTime();//获取DATE对象所表示的当前时间对应的毫秒值
// System.out.println(d);//毫秒值
// System.out.println(s);//当前时间
// Date s2 = new Date(999900001231L);//给定一毫秒值
// System.out.println(s2);//打印输出的是对应的时间信息
// DateFormat format = DateFormat.getInstance();//获取到DateFormat对象
// Date d = new Date();
// String s = format.format(d);//按照默认格式,显示日期和时间
// System.out.println(s);
// Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH:mm: ss");
// String Date1= sdf.format(d);
// System.out.println(Date1);//按照自定义模式解析
String str = "2018 年 09 月 20 日 19:47: 06";
Date date2 = sdf.parse(str);
System.out.println(date2);
}
}
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import org.junit.Test;
/*
* 集合Collection
*/
public class Demo03 {
@Test
public void test() {
Collection coll = new ArrayList();
coll.add("我爱学编程");// 将一个对象添加到集合容器中
//// System.out.println(coll);
coll.add("0903Java");
coll.add("123");
//// System.out.println(coll);
//// coll.remove("0903Java");//从集合中移除指定的单个实例
// System.out.println(coll);
// boolean b = coll.contains("123");// 判断集合中是否包含此元素,包含返回true,反之返回false.
// System.out.println(b);
// boolean cs = coll.isEmpty();// 判断此集合是否为空,空为true,非空为false。
// System.out.println(cs);
// System.out.println(coll.size());// 获取此集合的元素个数,返回值为int类型
Collection coll1 = new ArrayList();
coll1.add("123");
coll1.add("567");
// coll.addAll(coll1);// 将指定集合中的所有元素添加到另一个集合中
// System.out.println(coll);
// boolean c = coll.containsAll(coll1);// 此集合中是否包含指定集合的所有元素,包含返回true,反之为false。
// System.out.println(c);
// coll.retainAll(coll1);//保留了此集合中指定集合包含的元素。
//// System.out.println(coll);
// coll.removeAll(coll1);//移除此集合中指定集合包含的元素。
// System.out.println(coll);
// coll.clear();//移除此集合中的所有元素
// System.out.println(coll);
Iterator it =coll.iterator();//迭代器的使用
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
/*
* 可变参数
*/
public class Demo04 {
public static void main(String [] args) {
int s = getSum(1,2,3,4,5);
System.out.println(s);
}
//可变参数列表中可变参数只有一个,且写在最后面。
private static int getSum(int x,int...arr) {
int sum = 0 ;
for(int i =0;i<arr.length;i++) {
sum +=arr[i];
}
return sum;
}
}
import java.util.Properties;
/*
* System类练习
*/
//import static java.lang.System.out;
public class Demo05 {
public static void main(String[] args) {
// System.out.println("我爱学编程");
// out.println("我爱java");//静态导入包后
// System.err.println("我爱北京天安门");//输出错误的语句,字体为红色。
// Scanner input = new Scanner(System.in);//标准的输入设备,需使用Scanner。
// int s = input.nextInt();
// System.out.println("s="+s);
// System.exit(0);//强制退出JVM,系统退出。
// long time = System.currentTimeMillis();//获取当前时间的毫秒值
// System.out.println(time);
// String s = System.getProperty("System.year");//根据指定的属性名获取属性值
// System.out.println(s);
Properties prop = System.getProperties(); //获取所有的属性名和属性值,存储到Properties对象中
prop.list(System.out); //列出所有的属性名和属性值
}
}
import java.util.Calendar;
/*
* Calendar日历类
*/
public class Demo06 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();//获取Calendar对象
System.out.println(c);//包含所有信息
int year =c.get(Calendar.YEAR);
System.out.println(year);
int month = c.get(Calendar.MONTH);
System.out.println(month+1);
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
int hour = c.get(Calendar.HOUR);
System.out.println(hour);
int minute = c.get(Calendar.MINUTE);
System.out.println(minute);
int second = c.get(Calendar.SECOND);
System.out.println(second);
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/*
* List接口
*/
public class Demo07 {
public static void main(String[] args) {
List list = new ArrayList();
list.add("ABC01");
list.add("abc02");//向集合的尾部增加元素
// System.out.println(list);
// list.add(1,"bcd03");//向集合指定的位置插入元素
// System.out.println(list);
// System.out.println(list.get(0));//根据索引返回元素
// System.out.println(list.remove(0));//根据索引删除元素,并返回删除的元素
// System.out.println(list.set(1, "HELLO"));//根据索引替换指定内容,并返回原内容
//遍历
for(int i =0 ; i<list.size();i++) {
System.out.println(list.get(i));
}
//list特有的迭代器
System.out.println("--------------------------");
ListIterator li = list.listIterator();//从前往后遍历
while(li.hasNext()) {
System.out.println(li.next());
}
while(li.hasPrevious()) {//从后往前遍历
System.out.println(li.previous());
}
//增强for循环遍历
for(Object obj : list) {
System.out.println(obj);
}
}
}
import java.util.ArrayList;
import java.util.Collection;
import org.junit.Test;
/*
* 集合遍历小细节,类型转换
*/
public class Demo08 {
@Test
public void test() {
Collection coll =new ArrayList();
coll.add(new Person("小明1",18));
coll.add(new Person("小明2",20));
coll.add(new Person("小明3",22));
for(Object obj:coll) {
Person p =(Person)obj;
p.method();
}
}
}
class Person{
String name;
int age;
public Person(String name,int age) {
this.name = name;
this.age = age;
}
public void method() {
System.out.println("name:"+name+"\t"+"age:"+age);
}
}