java程序员历程_一个Java程序员的成长历程(011)天

第21次(常用类)

学习主题:

学习目标:

1. 掌握DateFormat和SimpleDateFormat的使用

2. 掌握Calendar,Math,File类的使用

对应视频:

对应作业:

1. DateFormat和SimpleDateFormat类

(1) DateFormat与SimpleDateFormat的关系?

答:Data是一个抽象类,一般使用它的子类SimpleDateFormat类实现

(2) 为什么需要DateFormat类,它的作用是什么?

答:把时间对象转化成指定格式的字符串。反之,把指定格式的字符串转化成时间对象。

2. Calendar类

(1) 如何获得一个Calender类的对象?

答:写一个子类继承Calendar类,然后实例化子类获得Calendar的对象

(2) 请例举出Calender类中五个常用的方法?

答:// 使用默认时区和语言环境获得一个日历

Calendar cal = Calendar.getInstance();

System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//今天的日期

calendar.setTime(new Date());

calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+1);//让日期加1

System.out.println(calendar.get(Calendar.DATE));//加1之后的日期Top

3. Math类

(1) 请你列举出Math类的五个常用方法?

答: 1. abs 绝对值

2. acos,asin,atan,cos,sin,tan 三角函数

3. sqrt 平方根

4. pow(double a, double b) a的b次幂

5. max(double a, double b) 取大值

(2) 如何进行静成导入?

答: package cn.sxt;

//以下两种静态导入的方式二选一即可

import static java.lang.Math.*;//导入Math类的所有静态属性

import static java.lang.Math.PI;//导入Math类的PI属性

public class Test2{

public static void main(String [] args){

System.out.println(PI);

System.out.println(random());

}

}

4. File类

(1) 简述File类的作用?

答:代表文件和目录。在开发中,读取文件,生成文件,删除文件,修改文件属性时经常用到

File类操作目录与文件的常用方法有哪些?

第22次(容器)

学习主题:面向对象初步

学习目标:

1 掌握递归算法遍历树形结构

2 掌握枚举的使用

3 掌握集合的概念

4 掌握ArrayList以及底层原理

5 掌握LinkedList以及底层原理

对应视频:

对应作业

1. 使用递归算法遍历目录结构和树结构

(1) 什么是递归算法?

答:在数学与计算机科学中,递归指在函数的定义中使用函数自身的方法。

(2) 使用递归算法遍历目录结构和树结构的原理是什么?

答:通过反复的递归调用实现对整个目录,包括子目录的遍历搜索。

2. 枚举

(1) 枚举的定义及使用是什么?

答: JDK1.5引入了枚举类型。枚举类型的定义包括枚举声明和枚举体。

每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的。可以直接通过枚举类型名使用它们。

(2) 枚举与类是什么关系?

答:所有的枚举类型隐性地继承自 java.lang.Enum。枚举实质上还是类。

3. 基本概念_Collection_Set_List接口介绍

(1) 为什么需要集合?

答:基于数组并不能满足对于“管理和组织数据的需求”,所以需要一种更强大,更灵活,容量随时可扩的容器装载对象,即集合。

(2) Collection、Set、List接口的特征是什么?

答:Collection表示一组对象,List,Set接口是Collection的子接口,可以使用Collection接口中定义的所有方法。

List是有序,可重复的容器。一般使用Arraylist、LinkedList和Vector实现类

Set是无序,不可重复的容器,一般使用HashSet实现类。

4. List接口ArrayList用法详解

(1) ArrayList的常用方法有哪些?

答:1.数组长度使用.size();

2.增加数组的元素.add(1," ");

.add(" ");

3.修改某个元素的方法.set(1,"B");

4.删除元素的 方法.remove(2," ");

.remove(" ");

5.遍历数组的方法采用for方法

(2) ArrayList集合的特点是什么?

答:可以存放任意数量的对象,长度不受限制

5. ArrayList_JDK源码分析_1

(1) ArrayList的常用的构造方法有哪些?源码含义是什么?

答:ArrayList(),构造一个初始容量为 10 的空列表。

ArrayList(int initialCapacity),构造一个具有指定初始容量的空列表。

ArrayList(Collection extends E> c),构造一个包含指定 collection 的元素的列表

ArrayList的Object数组初始化长度为10,如果我们存储满了这个数组,需要存储第11个对象,就会定义新的长度更大的数组,并将原数组内容和新的元素一起加入到新数组中

(2) ArrayList扩容易原理是什么?

答:通过定义新的更大的数组,将旧数组中的内容拷贝到新数组来实现扩容。

6. ArrayList_JDK源码分析_2

(1) ArrayList中的add方法的执行过程是什么?

答: public void add(int index, E element) {

/*判断插入的索引是否符合ArrayList范围,在0 和 size之间,size是ArrayList实际元素个数,不包括底层数组的null元素*/

rangeCheckForAdd(index);

/*扩容机制:判断添加是否需要进行扩容*/

ensureCapacityInternal(size + 1); // Increments modCount!!

/*将旧数组拷贝到一个新数组中,参数:被复制的原数组, 被复制数组的第几个元素开始复制, 复制的目标数组, 从目标数组index + 1位置开始粘贴, 复制的元素个数,*/

System.arraycopy(elementData, index, elementData, index + 1, size - index);

/*将新元素赋予该下标*/

elementData[index] = element;

/*元素个数+1*/

size++;

}

(2) ArrayList中set和get的方法的作用及执行过程?

答:对数据进行设置和获取。

import java.util.Date;

public class User {

private String username;

private String password;

private String gender;

private Date birthday;

private String email;

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

public Date getBirthday() {

return birthday;

}

public void setBirthday(Date birthday) {

this.birthday = birthday;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

}

User u = new User();

u.setXXX();

u.getXXX();

想赋值就用u.setXXX(); 取这个类的对象的某个值 就get

7. LinkedList的特点_链表_JDK源码分析

(1) LinkedList集合的特点是什么?

答:查询效率低,增删效率高,线程不安全

(2) LinedList底层所采用的数据结构是什么?

答:双向链表结构,是链表的一种,每个数据节点中都有两个指针,分别指向前一个节点和后一个节点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值