前两天学习笔记的总结

Object类
Object概念使用方法以及注意事项
Object是根类 是全部类的父类
Object所在的包java.lang.Object,使用时不须要导包
本次学习的两个成员方法
返回值String 方法名toString() :返回该对象的字符串表示
返回值boolean 方法名equals(Object obj) :指示其余某个对象是否与此对象"相等" java

toString能够将对象的内容以字符串的形式打印出来;
可使用子类重写的方式重写toString方法;
+ Insert 选择 toString() 便可重写 数组

public boolean equals(Object obj) :指示其余某个对象是否与此对象"相等"
重写equals()的做用:
不重写时, 自定义对象默认继承Object类的equals()方法, 经过 == 比较地址值
但开发时, 通常要重写equals()方法, 让对象根据属性值来判断是否相等
IDEA快捷键: Alt+Insert, 选 equals() and hashCode() app

2:日期时间类  Date、long、String、Calendar
                Date: 时间                  long:表示时间,精确到毫秒,int数字
                String:时间字符串              Calendar:日历
                        java.util.Date类: 日期, 表示特定的瞬间, 精确到"毫秒"
                        // 构造方法
                        Date(): 建立Date对象, 表示当前系统时间
                        Date(long date): 建立Date对象, 使用指定的毫秒值做为时间
                        // 经常使用成员方法
                        long getTime(): 获取Date对象中保存的时间毫秒值
                        void setTime(long time): 修改Date对象的时间 学习

                DateFormat 类及其构造方法
                        java.text.DateFormat抽象类: 用于格式化和解析时间. 提供了方便的方法
                        // 经常使用成员方法 (抽象类不能建立对象, 但能够有非抽象的方法供子类使用)
                        String format(Date date): 格式化, 从Date对象转换为String对象
                        Date parse(String source): 解析, 从String对象转换为Date对象
                        java.text.SimpleDateFormat类
                        // 构造方法
                        SimpleDateFormat(String pattern): 用给定的模式和默认语言环境的日期格式符号建立对象
                        // 使用指定的模式建立对象
                        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                        y: 年   M: 月           d: 日                   H: 时 (24小时制)           m: 分
                        s: 秒         E: 星期                D: 年中的天         K: 小时(12小时制)         S: 毫秒
                        例: ui

[Java]纯文本查看__复制代码翻译

?code

01orm

02对象

03继承

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

public class Test {

public static void main(String[] args) {

// 建立SimpleDateFormat对象用于格式化日期为字符串

SimpleDateFormat sdf = new SimpleDateFormat(`"yyyy年MM月dd日 HH:mm:ss"`);

// 建立日期对象(使用当前系统时间)

Date date = new Date();

// 格式化

String s = sdf.format(date);

System.out.println(s); // 2018年07月24日 14:45:48

}

}

                        parse()解析时间:
                                将时间字符串解析为日期对象
                                // 已知日期字符串"2000-10-01"
                                String s = "2000-10-01";
                                // 将该日期字符串解析为日期对象
                                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                                Date date = sdf.parse(s); // 红线按 Alt + Enter , 选择第一项 Add exception to method
                                signature
                                而后将date转化为long值:
                                long time = date.getTime();
                                System.out.println(time)
                        Calendar抽象类:表明日历
                                // 静态方法
                                static Calendar getInstance(): 根据当前系统设置获取合适的Calendar对象, 表示当前系统时间
                                // 获取日历对象的示例
                                Calendar c = Calendar.getInstance(); // 表明了当前时间
                                Calendar.getInstance() 会根据当前系统获取合适的子类对象, 咱们获取到的是 GregorianCalendar
                                // 静态成员变量
                                static int YEAR :年份
                                static int MONTH :月份. 注意月份数值是 0-11
                                static int DAY_OF_MONTH :日期
                                static int HOUR :小时(12小时制)
                                static int HOUR_OF_DAY :小时(24小时制)
                                static int MINITE :分钟
                                static int SECOND :秒
                                // 非静态成员方法
                                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转Date
                                void setTime(Date d): Date转Calendar
                                // 示例
                                // 获取日期:
                                int day = calendar.get(Calendar.DAY_OF_MONTH);
                                // 修改年:
                                calendar.set(Calendar.YEAR, 2000);
                                // 修改月:
                                calendar.set(Calendar.MONTH, 0);
                                // 日期增长一天:
                                calendar.add(Calendar.DAY_OF_MONTHY, 1);
                                // 日期减小一天:
                                calendar.add(Calendar.DAY_OF_MONTHY, -1);
        日期转换总结:
        long (数学计算)
                \                 SimpleDateFormat
                Date -------------------- String (用户输入和显示)
                /
        Calendar (获取时间的某个部分)
        long和Date对象互转
                利用Date
                        Date(long millis): long转Date
                        long getTime(): Date转long
        String和Date对象互转
                利用SimpleDateFormat
                        Date parse(String s): String转Date
                        String format(Date): Date转String
        Calendar对象和Date对象互转
                利用Calendar
                        Date getTime(): Calendar转Date
                        void setTime(Date d): Date转Calendar

                System类:
                        System.currentTimeMillis();获取当前时间毫秒
                        long now = System.currentTimeMillis();
                                java.lang.System类: 系统相关功能(数组复制方法)
                                // 静态方法
                                static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length): 复制源数
                                组中指定长度个元素到一个新数组中
                                        * Object src: 源数组 (被复制的数组)
                                        * int srcPos: 源数组索引 (从源数组的哪一个索引开始复制)
                                        * Object dest: 目标数组 (要复制到哪一个数组)
                                        * int destPos: 目标数组索引 (指定目标数组接收元素的索引位置)
                                        * int length: 长度 (要复制的元素个数)

        StringBuilder类:字符串拼接
                        以前学习的字符串拼接咱们经常使用“+”号
                                “+”使用加号进行字符串拼接, 会建立不少额外的对象, 浪费内存空间
                                        实际上+加号在最终执行时, 会被翻译为:
                                new StringBuilder("原字符串").append("要拼接的字符串").toString();
                                额外建立了多余的StringBuilder对象
                        StringBuilder(): 构造一个空的StringBuilder容器
                        StringBuilder(String str): String转StringBuilder
                        StringBuilder append(任意类型): 添加任意类型数据的字符串形式, 并返回当前对象
                        String toString(): 将当前StringBuilder对象转换为String对象
                String和StringBuilder互转: 利用StringBuilder
                        StringBuilder(String str): String转StringBuilder
                        String toString(): StringBuilder转String
                        例:
                                /*
                                需求:
                                使用StringBuilder拼接如下内容:
                                        123
                                        true
                                        你好Java
                                并最终转换为String类型, 打印出来
                                */

[Java]纯文本查看__复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

public class Test {

public static void main(String[] args) {

// 建立StringBuilder对象

StringBuilder sb = new StringBuilder();

// 链式调用

sb.append(`123).append(true).append("你好Java"`);

// 转换为String

String s = sb.toString();

System.out.println(s); // 123true你好Java

// 更简单的配合匿名对象形式

String result = new StringBuilder().append(`123).append(true`).append("你好

Java").toString();

System.out.println(result); // 123true你好Java

}

}

次日内容 Collection 泛型

Collection接口
集合与数组的区别有两点
        第一点 数组长度不可变 集合长度可变
        第二点 数组只能存储同一类型的元素,而集合储存的都是对象,并且对象的类型能够不同,因此对象多的时候,使用集合。
Collection接口做为全部单列集合类型的祖类,所含有的方法是全部单列集合都能使用的共性方法,没有带索引的方法
        分为list有序接口 和set无序接口
boolean add(E e):添加到集合中 。
void clear():清空集合中。
boolean remove(E e):删除指定对象。
boolean contains(E e): 判断是否包含某对象。
boolean isEmpty(): 判断集合是否为空。是的话返回true
int size(): 统计集合元素个数。
Object[] toArray(): 转成数组。

迭代器
        Iterator接口用来遍历数组,也被称为迭代器
迭代:即Collection集合元素的通用获取方式。在取元素以前先要判断集合中有没有元素,若是有,就把这个元素取出来,继续在判断,若是还有就再取出出来。一直把集合中的全部元素所有取出。这种取出方式专业术语称为迭代。

Iterator接口的经常使用方法以下:
next:返回迭代的下一个元素。
hasNext():若是仍有元素能够迭代,则返回 true。

    //迭代器对象
    Iterator<String> it = coll.iterator();
    //  泛型指的是迭代出元素的数据类型
    while(it.hasNext()){ //判断是否有迭代元素
        String s = it.next();//获取迭代出的元素
        System.out.println(s);
    }

加强for
加强for循环也叫for each循环,用来遍历数组和集合。它的内部原理实际上是个Iterator迭代器,不能再遍历时进行增删操做。
快捷键 集合名.for

泛型

先不肯定类型 等到使用时再肯定类型

泛型<>:
                泛型的好处:
                        一、避免了类型转换的麻烦
                        二、将运行时的类型转换异常,转移到了编译时期,更有利于提早发现问题

                Collection coll = new ArrayList();
                coll.add(1);
                for(Object o : coll){
                        sout(o)
                }
        方法中的泛型定义位置:
                修饰符 和 返回值类型 之间
                // 带有泛型的方法定义格式
                修饰符 <表明泛型的名字> 返回值类型 方法名(参数){
                }
                方法中定义泛型后, 返回值类型和参数类型均可以使用泛型
                方法泛型的使用:
                在调用方法时肯定泛型的具体类型
        定义泛型接口与定义泛型类同样
                // 带有泛型的类定义格式
                修饰符 interface接口名<表明泛型的变量> {
                }
        实现类实现了泛型接口后能够有2种选择:
                1. 定义实现类时就肯定泛型的具体类型
                2. 定义实现类时仍然沿用泛型, 直到建立该类对象时才肯定泛型的具体类型

        泛型定义总结:                 定义在类上的泛型:                         有效范围: 整个类中都有效                         什么时候肯定具体类型: 建立该类对象时肯定泛型的具体类型                 定义在方法上的泛型:                         有效范围: 方法中(包括返回值类型和参数类型)有效                         什么时候肯定具体类型: 调用方法传参时肯定泛型的具体类型                 定义在接口上的泛型:                         有效范围: 接口中                         什么时候肯定具体类型:                                 1. 子接口或实现类定义时肯定泛型的具体类型                                 2. 建立实现类对象时肯定泛型的具体类型

相关文章
相关标签/搜索