更新时间:2018年09月30日10时30分 来源:传智播客 浏览次数:
| 1 2 | String toString():返回该对象的字符串表示booleanequals(Object obj):指示其他某个对象是否与此对象"相等" | 
| 1 | public String toString():返回该对象的字符串表示 | 
| 1 2 3 4 5 | <>Object类中toString()的实现方式:public classObject {public String toString(){returngetClass().getName()+"@"+Integer.toHexString(hashCode());}} | 
| 1 2 3 4 5 6 | getClass().getName():getClass(): Object类的方法, 获取当前对象的类的字节码对象getClass().getName(): 通过字节码对象获取该类的全名Integer.toHexString(hashCode())hashCode(): Object类的方法, 获取当前对象地址值的哈希值Integer.toHexString(intn): 将参数转换为十六进制数字的字符串 | 
| IDEA快捷键: Alt+Insert, 选 equals() and hashCode() | 
| 01 02 03 04 05 06 07 08 09 10 | public booleanequals(Object o){//如果对象地址值相同,则是同一个对象,那么属性值肯定相同,认为相等if(this ==o)returntrue;//如果被比较对象为null,或者不是同一个类型,则认为不相等if(o ==null || getClass()!=o.getClass())returnfalse;//如果不是同一个对象,且不为null,且是一个类型,则向下转型比较子类特有属性Person person=(Person)o;//基本类型属性值用==比较,引用类型属性值用Objects工具类的equals()比较returnage ==person.age &&Objects.equals(name,person.name); | 
| 1 2 3 | public static booleanequals(Object a,Object b){return(a ==b)|| (a !=null &&a.equals(b));} | 
| 1 2 | Date():创建Date对象,表示当前系统时间Date(long date):创建Date对象,使用指定的毫秒值作为时间 | 
| 1 2 3 4 5 | long getTime():获取Date对象中保存的时间毫秒值void setTime(long time):修改Date对象的时间UNIX时间戳:从0时区 1970-01-0100:00:00开始,至今经过的毫秒值(1秒 =1000毫秒)10位 精确到秒 :1494992791=2017/5/1711:46:3113位 精确到毫秒:1494992791000=2017/5/1711:46:31 | 
| 1 2 3 4 5 | java.text.DateFormat抽象类:用于格式化和解析时间. 提供了方便的方法//常用成员方法 (抽象类不能创建对象,但可以有非抽象的方法供子类使用)String format(Date date):格式化,从Date对象转换为String对象Date parse(String source):解析,从String对象转换为Date对象java.text.SimpleDateFormat类 | 
| 01 02 03 04 05 06 07 08 09 10 11 12 | y:年M:月d:日H:时(24小时制)m:分s:秒E:星期D:年中的天K:小时(12小时制)S:毫秒示例:"yyyy-MM-dd E HH:mm:ss.SSS"结果:2016-04-01星期五 17:29:15.868 | 
| 1 | SimpleDateFormat format =newSimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | 
| 1 2 3 | 例如,SimpleDateFormat对象的模式是:"yyyy年MM月dd日 HH:mm:ss"那么,将Date格式化后就可以是这种样子:2018年01月02日 03:04:05SimpleDateFormat sdf =newSimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); | 
| 1 | Date date=newDate(); | 
| 1 2 | String s =sdf.format(date);System.out.println(s); | 
| 1 2 3 | Date parse(String source):解析,从String对象转换为Date对象例如,SimpleDateFormat对象的模式是:"yyyy-MM-dd"要解析为Date对象的字符串必须符合模式:2000-01-02[/size][/font][/align][align=left][font=微软雅黑][size=3][color=#df402a]String s = "2000-10-01";[/color][/size][/font][font=微软雅黑][size=3] | 
| 1 2 | SimpleDateFormat sdf =newSimpleDateFormat("yyyy-MM-dd");Date date=sdf.parse(s); | 
| 1 2 | long time =date.getTime();System.out.println(time); | 
| 1 | static Calendar getInstance():根据当前系统设置获取合适的Calendar对象,表示当前系统时间 | 
| 1 | Calendar c =Calendar.getInstance(); //代表了当前时间 | 
| 1 | Calendar.getInstance()会根据当前系统获取合适的子类对象,我们获取到的是 GregorianCalendar | 
| 1 2 3 4 5 6 7 | static int YEAR :年份static int MONTH :月份. 注意月份数值是 0-11static int DAY_OF_MONTH :日期static int HOUR :小时(12小时制)static int HOUR_OF_DAY :小时(24小时制)static int MINITE :分钟static int SECOND :秒 | 
| 1 2 3 4 5 | int get(int field):获取指定日历字段的值 int year =cal.get(Calendar.YEAR)void set(int field,int value):修改指定日历字段为指定的值void add(int field,int amount):调整指定日历字段的值. 正数增加,负数减少Date getTime():Calendar转Datevoid setTime(Date d):Date转Calendar | 
| 1 | int day =calendar.get(Calendar.DAY_OF_MONTH); | 
| 1 | calendar.set(Calendar.YEAR,2000); | 
| 1 | calendar.set(Calendar.MONTH,0); | 
| 1 | calendar.add(Calendar.DAY_OF_MONTHY,1); | 
| 1 | calendar.add(Calendar.DAY_OF_MONTHY,-1); | 
| 1 | currentTimeMillis() | 
| 1 | static long currentTimeMillis():返回当前系统时间的毫秒值 | 
| 01 02 03 04 05 06 07 08 09 10 11 12 | //先记录开始时间毫秒值long start =System.currentTimeMillis();//循环for(int i =0; i <100000; i++){System.out.println("我爱Java "+i);}//循环结束后记录结束时间毫秒值long end=System.currentTimeMillis();//显示结果System.out.println("程序执行时间: "+(end-start)+"毫秒");arrayCopy(Object src,int srcPos,Object dest,intdestPos,int length)java.lang.System类:系统相关功能 | 
| 1 2 3 4 5 6 7 | static void arrayCopy(Object src,int srcPos,Objectdest,int destPos,int length):复制源数组中指定长度个元素到一个新数组中*Object src:源数组 (被复制的数组)*int srcPos:源数组索引 (从源数组的哪个索引开始复制)*Object dest:目标数组 (要复制到哪个数组)*int destPos:目标数组索引 (指定目标数组接收元素的索引位置)*int length:长度 (要复制的元素个数) | 
| 1 | java.lang.StringBuilder类:可变字符序列,可以高效拼接字符串.底层使用数组保存 | 
| 1 2 | StringBuilder():构造一个空的StringBuilder容器StringBuilder(String str):String转StringBuilder | 
| 1 | java.lang.StringBuilder类:可变字符序列,可以高效拼接字符串.底层使用数组保存 | 
| 1 2 | StringBuilder append(任意类型):添加任意类型数据的字符串形式,并返回当前对象String toString():将当前StringBuilder对象转换为String对象 | 
| 1 2 3 | String和StringBuilder互转:利用StringBuilderStringBuilder(String str):String转StringBuilderString toString():StringBuilder转String | 
| 1 2 3 4 5 | StringBuilder sb =newStringBuilder();//链式调用sb.append(123).append(true).append("你好Java");//转换为StringString s =sb.toString(); | 
| 1 | Integer i2=Integer.valueOf(4); | 
| 1 | int num =i.intValue(); | 
| 1 2 3 | Integer i =10; //自动装箱:Integer i =Integer.valueOf(10);Integer j =20; //自动装箱:Integer j =Integer.valueOf(20);Integer k =i +j; //先拆箱再装箱:Integer k =Integer.valueOf(i.intValue()+j.intValue()); | 
| 1 2 3 4 5 6 7 | static byte parseByte(String s):将字符串参数转换为对应的byte基本类型static short parseShort(String s):将字符串参数转换为对应的short基本类型 Shortstatic int parseInt(String s):将字符串参数转换为对应的int基本类型 Integerstatic long parseLong(String s):将字符串参数转换为对应的long基本类型static float parseFloat(String s):将字符串参数转换为对应的float基本类型static double parseDouble(String s):将字符串参数转换为对应的double基本类型static booleanparseBoolean(String s):将字符串参数转换为对应的boolean基本类型 | 
| 1 2 3 4 5 6 7 | Collection接口:单列集合顶层|_ List接口:元素存取有序,可重复,有索引|_ Set接口:元素存取无序,不可重复,无索引ArrayList<String>add("aaaa")add("bbb")add("ccc")add("ccc")"aaaa""bbb""ccc"HashSet<String>add("aaaa")add("bbb")add("ccc")"bbb""ccc""aaaa" | 
| 1 2 3 4 5 6 7 8 9 | booleanadd(E e):把给定的对象添加到当前集合中void clear():清空集合中所有的元素booleanremove(E e):把给定的对象在当前集合中删除booleancontains(E e):判断当前集合中是否包含给定的对象booleanisEmpty():判断当前集合是否为空(没有元素)int size():返回集合中元素的个数Object[] toArray():把集合中的元素,存储到数组中Iterator<E>iterator():获取集合的迭代器对象 (后面讲到)Iterator接口:迭代器 | 
| 1 | Collection c =newArrayList(); | 
| 1 2 | Iterator<E>iterator():获取集合的迭代器对象java.util.Iterator<E>接口:迭代器 | 
| 1 2 3 | booleanhasNext():判断是否有下一个元素E next():获取下一个元素void remove():删除next指向的元素 | 
| 1 2 3 | Iterator<元素类型>iterator =集合对象.iterator();while (iterator.hasNext()){元素类型 变量名 =iterator.next(); | 
| 1 2 | hasNext()方法可以判断下一个索引是否有元素next()方法移动指针到下一个索引,并返回元素 | 
| 1 2 3 | for(元素的数据类型变量名 :Collection集合或数组名){//操作代码} | 
| 1 2 3 | publicinterfaceGenericInterface<I> {publicabstractvoidmethod(I i);} | 
| 1 2 3 4 | public classGenericInterfaceImpl1implements GenericInterface<String>{@Overridepublic void method(String s){System.out.println(s);}} | 
| 1 2 3 4 | public classGenericInterfaceImpl2<I>implements GenericInterface<I>{@Overridepublic void method(I i){System.out.println(i);}} | 
| 01 02 03 04 05 06 07 08 09 10 | public classDemo04GenericInterface {public static void main(String[] args){//创建GenericInterfaceImpl1对象GenericInterfaceImpl1gi1=newGenericInterfaceImpl1();gi1.method("字符串");//创建GenericInterfaceImpl2对象GenericInterfaceImpl2<Integer>gi2=newGenericInterfaceImpl2<>();gi2.method(10);GenericInterfaceImpl2<Double>gi3=newGenericInterfaceImpl2<>();gi3.method(8.8);}} | 
| 1 2 3 | List<?>list这种集合不能调用 add()添加元素,只能调用 get()获取元素List<?>list其实是一个变量,所以可以将一个集合赋值给它如:List<?>list=newArrayList<String>(); | 
| 1 2 3 | [font=微软雅黑][size=3][color=#df402a]格式: 类型名称<? extends 类名> 对象名称[/color][/size][/font]示例:List<? extendsNumber>list作用:只能接收该类型及其子类 (Number及其子类的泛型) | 
| 1 2 3 | 格式:类型名称<? super 类名>对象名称示例:List<? superNumber>list作用:只能接收该类型及其父类型 (Number及其父类的泛型) | 
| 01 02 03 04 05 06 07 08 09 10 11 12 | static int i =1;   public static void main(String args[]){System.out.println("love "+newToStringTest());//love java        ToStringTest a =newToStringTest();        a.i++;      System.out.println("me "+a.i);//me2}public String toString(){System.out.print("I ");//I        return"java ";   }运行结果:I love java    me2解析:System.out.println("love "+newToStringTest());输出结果为字符串+;   先调用toString方法,本类中已经重写toString方法,应先调用重写的toString方法. | 
| 1 2 3 4 | String s1 = "abc";                   String s2 = "abc";                   System.out.println(s1 == s2);         //true                   System.out.println(s1.equals(s2));    //true | 
| 1 2 3 4 | String s1 = "a"+ "b"+ "c";                 String s2 = "abc";               System.out.println(s1 == s2);                  //true              System.out.println(s1.equals(s2));     //true | 
| 1 2 3 4 5 | String s1 = "ab";             String s2 = "abc";          String s3 = s1 + "c";         System.out.println(s3 == s2);         //false          System.out.println(s3.equals(s2));    //true | 
| 1 2 3 4 5 | 1>   中的"abc"均取自堆中常量池.2>   s1="a"+ "b"+ "c"="abc";"a"+ "b"+ "c"取自于常量池,与"abc"相同;3>  s1="ab";    s3 = s1 + "c";s1是变量,在堆中,而不在常量池中. |