1月15日内容

一,昨日回顾
1)Jdk5新特性之自动拆装箱是什么意思? 其他特性: 静态导入(导入到方法的级别)/增强for循环/可变参数
自动拆装箱:是将基本类型的包装类型 默认转换为 基本数据类型
基本数据类型 自动转换为 包装类类型
包装类类型
Byte byte
Short short
Integer int
Long long
Float float
Double double
Character char
Boolean boolean
2)StringBuffer和数组,集合(今天讲Collection)的区别?
都是一个容器,都可以存储元素
StringBuffer:构造一个字符串缓冲区,在内存存储的数据都是字符串内容,支持可变的字符序列(长度可变)
数组:可以多个元素,多个元素的数据类型一致,(只能存储同一种类型的元素),长度是固定的,不支持长度可变的!

3)StringBuffer和StringBuilder的区别?
StringBuffer:线程安全的---->同步----->执行效率低
StringBuilder:线程不安全的----->不同步------>执行效率高(单线程程序中,StringBuilder去替代StringBuffer)
单线程:整个程序在执行过程中,执行路径只有一条(main主线程)
String类和StringBuffer一些重要的成员方法:
String类:
转换功能/获取/截取…
将字符串转化成字符数组:public char[] toCharArray(){}
字符串转换字节数组 public byte[] getBytes() :空参的,平台默认编码集:GBK
将任何类型转换字符串 public String valueOf(int i)
拼接功能: public String contact(){}
public int length():获取字符串长度
截取功能:
public String substring(int begin) :从指定位置默认截取到末尾
public String substring(int begin,int end) :从指定位置开始截取到指定位置结束(不包含end位置)
StringBuffer:
追加功能
public StringBuffer append(任何类型…) 使用最多
反转功能
public StringBuffer reverse()
截取功能
public String substring(int begin) :从指定位置默认截取到末尾
public String substring(int begin,int end) :从指定位置开始截取到指定位置结束(不包含end位置)
String和StringBuffer类型的相互转换
String----->StringBuffer
String s = “abc” ;
//StringBuffer sb = s;
方式1:StringBuffer的有参构造
StringBuffer sb = new StringBuffer(s) ;
//方式2:StringBuffer无参构造+追加功能
StringBuffer sb = new StringBuffer() ;
sb.append(s) ;
StringBuffer sb2 = new StringBuffer(“hello”) ;
StringBuffer—>String
方式1:String的构造方法
String str = new String(sb2) ;
//方式2:StringBuffer的toString功能.
Integer类: int类型的包装类类型
构造方法
Integer(int i)
Integer(String s): 字符串必须为数字字符串,否则出现"数字格式化异常"
String 和 基本类型做转换 int
int ---- > String
valueOf(int i) :
String---- >int
Integer的静态功能:
通用的方法
public static int parseInt(String s) 开发中使用最多的
String---->long
public static long paresLong(String s)
Calendar:
二,今日内容
类是一个抽象类(无法实例化),它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段提供一些成员方法!
成员方法:
public static Calendar getInstance() :创建当前日历类对象(和时区以及语音环境有关系)!
public int get(int field):获取 当前时区的日历中的具体的字段值
常用的成员方法:
public abstract void add(int field, int amount):
给日历类中的某个字段设置偏移量
public final void set(int year, int month, int date):设置当前日历类中年月日时间
键盘录入任意的年份(int值),获取二月份有多少天?
1)键盘录入年份
2)int year = sc.nextInt() ;
//创建日历类对象
set(int year ,int month,int date) set(year,2,1); //其实3月1日
获取指定日历类Date:月中的某天
Character类:char类型的 包装类类型
构造方法:
public Character(char value)
public static boolean isDigit(char ch):判断该字符是否为数字
public static boolean isUpperCase(char ch):判断该字符是否为大写字母字符
public static boolean isLowerCase(char ch):判断该字符是否为小写字母字符
Date:日期类
表示特定的瞬间,精确到毫秒
允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串
构造方法:
public Date():创建一个Date对象,精确毫秒值(使用它,根据系统时间分配!)
public Date(long date):传入指定的实际毫秒值
成员方法:
Date----> long 时间毫米值
public long getTime(): 如果知道Date对象,获取当前long时间毫秒值
public void setTime(long time) :设置时间毫秒值
Date日期格式----->String转换 (日期文本格式)
格式化操作
public final String format(Date date)
解析操作
String(日期文本格式) ----- >Date 日期格式
public Date parse(String source) throws ParseException (该方法调用的时候会抛出异常)
中间必须使用
DateFormat 是日期/时间格式化子类的抽象类 ,无法实例化
所以必须使用它的子类来实例化
SimpleDateFormat允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)
构造方法:
public SimpleDateFormat(String pattern):
参数pattern:描述日期和时间格式的模式
y表示年 yyyy表示一个具体的年份 举例: 2020 yyyy
m表示月 MM 表示年中的月份 举例: 01
d 月份中的天 dd表示 举例: 15/07
HH:小时
mm:分钟
ss:秒数
Math:针对数学运算(三角函数,指数…)
成员方法:静态的功能
public static double abs(double a) :绝对值
public static double ceil(double a) :向上取整
public static double floor(double a):向下取整
public static double max(int a, int b):求最大值
public static int min(int a,int b):求最小值
public static double pow(double a,double b):a的b次幂
public static double random():随机数 [0.0,1.0)
public static long round(double a):四舍五入
public static double sqrt(double a):开平方根
Random类:
产生一个随机数的类
构造方法:
public Random():创建一个随机数生成器 ,该方式每次调用nextInt()/nextInt(int n)
产生的随机数不一样
public Random(long seed):通过一个时间毫秒数创建一个随机数生成器,每次随机数相同的
成员方法:
public int nextInt() :每次产生的随机数在int类型的范围内取值
public int nextInt(int n) :产生的随机数的范围在[0,n)之间
获取随机数:
两种方式:
Math里面的random方法() ---->double [0.0,1.0)
Random类:随机数生成器
无参构造方法+nextInt(int n) :结合使用 [0,1)
System类:包含一些有用的类字段和方法。它不能被实例化。
字段(成员变量)
static PrintStream err
“标准”错误输出流。
static InputStream in
“标准”输入流。
Scanner(InputStream in) -----> Scanner(System.in)
static PrintStream out
“标准”输出流。
printStream:字节打印流 (java.io包下) 和IO流相关(SE高级部分)
成员方法:
public static void gc()运行垃圾回收器。
之前Object类的
protected void finalize() :和垃圾回收器有关系
throws Throwable :当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
子类需要重写finalize()方法
面试题
final ,finalize,finally 三者之间的区别?
final:状态修饰符 :
修饰类,该类不能被继承
修饰变量,该变量是一个常量
修饰成员方法,该方法被重写
finalize()方法,和gc有关系,有GC调用finalize()回收不用对象,而GC由Java虚拟机开启的
java虚拟机 是一个多线程环境
至少有两条线程:
main方法所在的线程—>主线程
GC:垃圾回收线程
public static void exit(int status) :终止当前正在运行的jvm,
一般情况参数是0
public static long currentTimeMillis()返回以毫秒为单位的当前时间 (毫秒值)
public static void arraycopy(Object src,int srcPos,Object dest,
int destPos,int length)
从指定源数组中src中的某个位置 srcPos开始,到目标数组dest中的指定位置destPos,指定长度复制
集合:
是一个容器
StringBuffer/数组:都是容器
StringBuffer:字符串缓冲区,只能存储字符串内容
数组:长度是固定的,不符合长度可变的要求
面试题:
集合和数组的区别?
1)长度的区别:
数组长度是固定的
集合长度是可变的
2)存储元素的区别
数组:只能存储同一种类型的元素
集合:可以存储不同的类型(都只能引用类型)
3)存储类型的区别:
数组:既可以存储基本类型,也可以引用类型
集合:只能引用类型
Collection:
顶层次的根接口
List子接口 :允许元素重复的
三个子实现类:ArrayList,LinkedList,Vector
Set子接口
两个子实现类:HashSet,TreeSet(牵扯到排序:选择器排序/自然排序)
Collection: 接口 ,不能实例化
JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现
基本功能
boolean add(E e):给集合添加元素
boolean remove(Object o):删除指定的元素
void clear():暴力删除(删除所有)
boolean contains(Object o) 判断是否包含指定的元素
boolean isEmpty():判断集合是否为空
int size():获取集合中的元素
对象数组 :可以存储对象的数组
Collection的遍历操作:遍历集合
Object[] toArray() :将集合转化成对象数组(传统方式遍历)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值