DAY01
- .JDK API
JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口)就是一些已写好、可供直接调用的功能(在Java语言中,这些功能以类的形式封装)。
JDK API 包含的类库功能强大,经常使用的有:字符串操作、集合操作、文件操作、输入输出操作、网络操作、多线程等等
JDK包结构:
JDK中经常使用的包有:
包 | 功能 |
java.lang | Java程序的基础类,如字符串、多线程等,该包中的类使用的频率非常高,不需要import,可以直接使用 |
java.util | 常用工具类,如集合、随机数产生器、日历、时钟等 |
java.io | 文件操作、输入/输出操作 |
java.net | 网络操作 |
java.math | 数学运算相关操作 |
java.security | 安全相关操作 |
java.sql | 数据库访问 |
java.text | 处理文字、日期、数字、信息的格式 |
- 文档注释
以/**开头,以*/结尾
通常加在类和方法的上方,用于说明作者,时间,版本,要实现功能的详细描述等信息;
用法:
- 通过javadoc视图查看
- 将整个项目的api文档导出
- .String
3.1 String是不可变的对象,本质是字符数组
3.2 String对象的创建 – 2种方式
String对象的创建方式一:
String str = new String(); //空字符
String str = new String(“abc”) //此对象的值为abc
String对象创建的方式二:
String str = “hello”; //创建了一个String对象
“”:叫做字符串直接量
对象的存储位置:
字符串常量池 -- JDK1.7之前在方法区,之后在堆中
字符串常量池保存字符串直接量:
特点:
字符串常量池中保存的是字符串直接量,保存的对象是唯一存在的。创建String直接量对象时先去找这个值是否存在,如果存在,直接让引用指向,如果不存在,再开辟空间。
3.3 常用方法:
---构造方法
---方法:
length()
indexOf() –练习:统计一个子串在父串中出现的次数
substring()—练习:截取域名
trim()
charAt() - 练习:回文判断
startsWith()
endsWith()
toUpperCase()
toLowerCase()
valueOf()
- .StringBuilder
StringBuilder提供了一个可变的字符数组,所以字符串内容的修改都是在这个数组中进行,而不会每次修改都创建一个新对象.
使用:
- 构造方法
- 方法:
- append(String str)
- toString()
- insert(int destOffSet,String str)
- delete(int start,int en
- replace(int strat,int end,String str)
- reverse()
注意点:
StringBuilder的很多方法的返回值均为StringBuilder类型。这些方法的返回语句均为:return this。
java的字符串连接的过程是利用StringBuilder实现的
Striuffer和StringBuilder
- .日期操作
- Date
方法:getTime,setTime
-
- SimpleDateFormat
- Calendar
Calendar是抽象类,其具体子类针对不同国家的日历系统,其中应用最广泛的是GregorianCalendar(格里高里历,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统。
得到Calendar对象 – 2种方式
- 创建实现类对象
- 调用静态方法getInstanceof()
- getInstance()-会根据系统当前时区来创建子类对象(有可能会创建当地历法对象),但是一般创建的都是GregorianCalendar对象
Calendar类中定义了一些日历字段(字段摘要)
- 使用Calendar提供的get方法及一些常量可以获取日期及时间分量
- static int YEAR 指示年份的字段数字
- static int MONTH 指示月份的字段数字
- static int DATE 指示一个月份中的第几天
- static int DAY_OF_WEEK 指示一个星期中的某天,1为星期日
方法:
GET方法:
get(int Field)
getTime()
getTimeInMills()
getActualMaximum(int field)
SET方法:
set(int Field,int value)
setTime(Date date)
add(int field,int amount)
练习:
查看3年2个月零5天以后的那周的周一?
获取任意一年的二月有多少天
计算出你到今天活了多少天?
作业:
1.有一个字符串:“abcdef我爱java”,需求:将字符串逆序输出。
2.用StringBuilder判断字符串是否是回文(对称字符串)
3.
String s = " abc abc Abc ";
System.out.println(s);
System.out.println(s.charAt(1));
System.out.println(s.charAt(2));
System.out.println(s.indexOf("bc"));
System.out.println(s.indexOf("bc",3));
System.out.println(s.lastIndexOf("bc"));
System.out.println(s.indexOf("xxx"));
System.out.println(s.substring(5));
System.out.println(s.substring(5, 10));
System.out.println(s.trim());
4.class A{
main(String[] args){
String s = "good";
char[] ch = {g,h,f};
A a = new A();
a.change(s,ch);
System.out.println(s); //good
System.out.println(ch); //khf
}
public void change(String s1,char[] chs){
s1 = "mm";
chs[0] = "k";
}
}
写出输出结果,并画出内存示意图