第四次总结

clone方法


创建对象并返回副本
Object obj=s.clone();//进行复制操作(浅克隆)
Student s=(Student)obj;

throws:表示抛出异常了可能性,放在main(String[] args)这里,+异常具体名字{   }

Scanner类:提供判断功能

​ 构造方法:public Scanner(InputStream source)
​ 形式参数:抽象类:java.io.InputStream:字节输入流
​ 如果方法的形式参数是一个抽象类,那么需要传递该类的子类对象

判断功能:
public boolean hasNextXXX():判断当前是否是秩序XXX类型
	int short float double......
if(sc.hasNextInt()){
	int num=sc.next.Int();
	int line=sc.nextLine();//String 类型数据
	
	System.out.println(num);
}
录入细节:
	先录入int,在录入String。当前字符串录入数据值就被漏掉了,回车键本身就是字符串
处理:1:再度创建一个录入对象进行赋予
	2:将sc.nextLine();换成sc.next();

String类:一旦被赋值,其值不能被改变

​ String 代表字符串
​ 字符串是常量:它们的值在创建后不能更改(常量的地址值)
​ String str=“abcaa” studengt s=new student();
​ 作为引用类型,当做参数传递,形式参数不会影响实参
​ String s=new String();
​ System.out.println(s);//打印的不是地址值:当前String类型中已经重写了Object的toString方法。

构造方法:

​ public String():无参构造,创建一个字符串对象空字符序
​ public String(byte[] bytes);:使用平台,偶然编码集,将字节数组构造为String类型
​ public String(byte[] bytes,int offset,int length):将字节数组的一部分转换为字符串
​ 位置 个数
​ String s1=new String(“hello”);
​ System.out.println(s1); //hello
System.out.println(s1.length());//5
​ String 类型已经重写了Object方法,所以equals直接比较两个字符串内容是否相同
​ 常量相加:常量相加后再比较常量池是否存在这个值,存在则返回地址,不存在再开辟空间。
​ 变量相加:先开辟空间再相加

分割功能:
	public String[] split(String regex):通过指定字符串进行分割,返回字符串数组
转换功能:
	public char[] tcCharArray():将字符串转换成字符数组
		byte[] getBytrs():将字符串--->变成字节数组
		static String valueOf(XXX xxx):可以将任何类型数据转换为String类型
			int i=100;
			String.valueOf(i);
		String toUpperCse();转换为大写
			toLoweCase();转换为小写

String类的其他功能

​ 获取每一个字符:char a=字符串变量.charAt(x);
​ 替换:replace(char old,char new)
​ 截取:substring(int begIndex):从指定位置开始默认截取到末尾
​ subtring(int beginIndex,int endIndex):从指定位置开始截取,到指定位置结束。包前不包后

去除前两端空格:trim()
按照字典顺序比较:compareTo(String anotherString):解析源码

String类型的应用

StringBuffer:支持可变的字符序列(字符缓冲区)

​ 缓冲区中存储的内容都是字符串内容,但是类型为StringBuffer类型
​ StringBuffer,StringBuilder和String的区别
​ StringBuffer的构造方法
​ StringBuffer()空参构造
​ StringBuffer(String str)指定具体的内容存储到到字符缓冲区中
​ StringBuffer(int a)指定具体的缓冲区大小
​ 常用功能
​ 获取功能:int length()
​ 反转功能:reverse()
​ 替换类型:replace(ing star,int eng ,String atr):从指定位置开始,到指定位置结束,用字符串替换
​ 返回类型为字符串

	截取功能:substring(int start):从指定位置开始截取,末尾结束
		substring(int statry ,int ebd ):从制定位置开始截取,指定位置前一位结束
			返回类型为字符串

	追加功能:append(任何类型数据):将任何类型数据追加到数据缓冲区中

	插入功能:insert(int offers,char[] arr):在指定位置插入一个字符数组,字符数组可以换为任何类型数据

	删除功能:deleteCharAt(int a)删除指定索引处了字符
			delete(int start,intend)删除从指定位置开始到后面减一位置的字符;包前不包后
	转换String:toString()方法。		

关于String类型和StringBuffer的相互转换
StringBuffer作为形式参数,形参的改变会改变实际参数
处理方式:
	1:通过StringBuffer构造方法:StringBuffer(String str)
	2:将StringBuffer通过无参构造方法StringBuffer()+append(Stringstr)追加
	3:用String类型的构造法:String(StringBuffer buffer)
	4:用toString方法:String str=new String(buffer)

区别:StringBuffer与StringBulid
共同点:两者之间兼容,功能是相同的
StringBuffer:可变的字符序列
		线程是安全的--->同步的--->执行效率低
StringBulid:可变的字符序列、
		线程不安全--->不同步的--->执行效率高
		在单线程程序中,StringBulid替换StringBuffer因为效率高

共同点:都属于引用类型,都是容器
	StringBuffer:可变的字符序列(长度可变)
			里面可以存储任何数据类型	length()方法
	数组:(长度固定)只能存储同一种类型元素
		length属性,

Interger类以及Chercter(int ,char的包装类类型) (传入Strin数据,创建Interger i=100类型数据并赋值,i+=200;输出i)

​ 自动拆装箱功能,静态导入
为了方便操作,每一个基本类型,都提供了对应的引用类型–>Interger
​ Interger.toBinaryString(int i);二进制方法
​ Interger.toOctalString(int i):八进制
​ Interger.toHexString(int i):十六进制

Interger.MIN_VALUE :最小值
Interger.MAX_VALUE :最大值

构造方法:转换为Interger类型
	Interger(int value)
	Interger(String s )

如何将Interger转换为String类型
	String s=Interger.toString();
String转换为int类型:
	parseTnt(String s);
	Interger nem2=Interger.valueOf(str);



​ 功能:Interger.parseInt(“XXX”)
​ 或者相互转换

自动拆装箱(基本类型首字母大写)

int和Interger类型的自动升降转换

其他类:Carlendar

​ 判断功能
​ Carlendar.isUp…大写
​ Carlendar.isLow…小写
​ Carlendar.isDig…数字

其他类

日历类 Date 能够拿到当前计算机系统的日历时期,系统资源

Calendar类,日历类,抽象类 不能直接实例化
首先,里面存着一些静态功能,返回值就是该类本身
public static Calender getInstance();
创建对象:
Calendar c=new Calendar.getInstance();
如何显示当前日历C的具体时间,年,月,日
方法:get(int field):获取日历字段的值 参数:日历字段
int year=c.get(Calender.YEAR);
int month=c.get(Calender.MONTH);
int date=c.get(Calendar.DATE);
System.out.println(year+“年”+(month+1)+“月”+date+“日”);

		add(int a)方法,添加或者减去时间偏移量
		日历对象.add(Calendar.DATE,-5)日历的五天前
//3年前的今天
c.add(Calendar.YEAR,-3);
int year2=c.get(Calendar.YEAR);
再度输出即可
//5年后的10天前
c.add(Calendar.YEAR,5);
c.add(Calendar.DATE,-10);
再度输出

设置自己的时间:
	set(int year,int month,int date)方法
c.set(2018,5,12);
int year=c.get(Calender.YEAR);
int month=c.get(Calender.MONTH);
int date=c.get(Calendar.DATE);
然后在打印输出

日期类 Random,

日期:Date精确到毫秒;特定的瞬间
构造方法:无参构造
public Date()
导包:import java.util.Date;
//创建对象
Date date=new Date();
输出date 即可得到当前时间
成员方法:
public long getTimp():返回1970年1月1日 的时间毫秒
应用场景:String和Date的相互转换
Date—>String 文本“格式化”操作
java.text,DateFormat:可以将日期和文本相互转换,但是是抽象类,继承自Date
它的子类:SimpleDateFormate
构造方法:SimpleDateFormate (String pattern)
参数:指定一个模式,要遵循一个规则
y年------2020 yyyy
M月份----10/03 MM
d月中的天------03-12 dd
h上午或者下午的小时
H一天中的小时 hh/HH
m:分钟数 mm
s:秒数 ss
创建对象:
Date date=new Date();
输出
SimpleDateFormate sdf=new SimpleDateFormate (“yyyy-MM-dd”);
输出
String datesr=sdf.format(date);
输出

//日期文本	String---->Date
	String soc="2020-6-30";
	SimpleDateFormate sdf=new SimpleDateFormate ("yyyy-MM-dd");
	Date d=sdf.parse(soc);
	输出即可

工具类:

​ 构造方法私有化:外界不能直接创建对象
​ 提供静态功能
​ 格式化
​ 解析
​ public static String dateString(Date date,String pattern){
​ //将Date日期格式转换成日期文本模式
​ //patte 指定模式yyyy-MM-dd
​ //创建对象
​ SimpleDateFormate sdf=new SimpleDateFormate (pattern);
​ //格式化
​ String dateStr=sdf.format(date);
​ return dateStr;
​ //或者直接简便:return new SimpleDateFormate (pattern).format(date);

}	

日期文本转换为日期格式:
public static Date stringDatr(String sou,Sting pattern)throws ParseException(抛出异常){
	SimpleDateFormate sdf=new SimpleDateFormate (pattern);
	Date date=sdf.format(sou);
	return date;


​ }

Math类的其他功能,直接用Math.来访问方法
abs(double a/…):求某个数据的最值
ceil(double a)向上取整
floor(double a )向下取整
min(int a ,int b)
max(int a, int b)
round(float 返回 int/double 返回 long):四舍五入
random()随机数
sqrt(double a )开正平方根
pow(double a ,double b)a的b次幂

导入方法:

​ 静态导入
​ import static 包名.类名.方法名;
​ 注意事项:
​ 如果当前类中出现了和导入静态方法名一样,冲突了,在使用这个方法的时候必须加上限定(包名.类名)

exit(int statsu):参数为0
表示正常终止jvm
System.exit(0);

currenTimeMillis():获取当前系统时间的毫秒值
long l=System.currenTimeMillis();

Rutime类:代表每一个java程序运行实例

Arrays工具类

​ 针对数组操作工具类
​ Arrays.short(arr);排序
​ Arrays.toString(arr);任意类型的数组转换
​ System.arraycopy(arr1,2,arr2,3,2):从arr1的2角标(从0开始)开始复制两个元素到arr2的3位置(从1开始)

Random类,产生一个随机数:java.util.Random
Random a=new Random();

int r=a.nextInt(int b)得到一个0–b之间的随机数

java.math.BigDecimal;
描述对浮点类型数据的精确计算
构造方法:
BigDecimal(String val)
内部蕴含方法:
add(BigDecimal a)加
subtract(BigDecimal a)减
multiply(BigDecimal a )乘
divide(BigDecimal a )除
方法用对象引用!!

集合

Collection java.util.Collection
基本功能
添加
add(Object a )

删除
	remoce(Object a )

判断
contains(Objext a )
isEmpty()	
clear()

高级功能

​ 对集合的遍历
​ 遍历的几种方式
​ 迭代器遍历 Iterator接口

Collection的高级功能

​ addAll(Collection c)添加一个集合中的所有元素
​ removeAll(Collection c):删除
​ conrainsAll(Collection c):包含
​ Collection b.retainAll(Collection c):取交集

创建对象
	Collection c1=new ArrayList();
	c.add("xxx");
	c2.add("yyy");
	System.out.println(c.addAll(c2));:将c2 中的所有元素添加到c中
	
	c1.removeAll(c2);:把c1中的c2包含的元素删除
	
	c1.conrectionAll(c2):若c1中包含c2的所有元素,即为true
	
	c1.retainAll(c2):将c1与c2相交的元素留下,将交集的元素给c1,boolean表示的是c1是否发生变化
	
Interator iterator();专有遍历方式
(返回值接口)	(方法:返回该接口的子实现对象)

	Iterator:存在一个方法
		Oblect next():获取下一个元素
	//创建一个集合,存储字符串元素
	Collction c=new Arraylist
	//添加字符串元素
	c.add("xxx");
	//获取当前Collection集合的迭代器
	Interator i=c.iterator();
	//获取下一个元素
	Object next=i.next();
	//第二次获取
	System.out.println(i.next);//运行一次,获取一次
	
	//加入判断:有元素可以迭代就继续,没有就停止
	//hasNext():判断当前迭代器中是否有下一个可以遍历的元素,存在就返回true
	if(i.hasNext()){
	Object next =it.next();
	System.out.println(next);
	}
	//不明确循环次数,优先考虑while循环
	while(i.hasNext()){
	System.out.println(it.next());
	}
	//输出元素从同时,输出字符串长度
	//向下转型
	String s=(String)i.next();
	System.out.println(s+"--"+s.length());

泛型:

什么是泛型:数组在定义时,就已经将类型限定了
集合为了迎合数组的特点,在创建数组的时候,将类型定义了,来保证集合中的元素类型一致
格式:
<数据类型:引用类型>
特点:将集合的类型创建的时候就明确

好处:
避免强制类型转换
将运行时期异常提前到编译时期
解决了黄色警告线问题
提高了程序安全性

应用在那些地方:
集合中使用居多
定义在类上
可以放在方法上
也可以放在接口上
加入泛型之后,大大提高程序安全性,定义在类上

泛型高级通配符:<?>
当前Objet类型/任意java类型

<? extend E> 向下限定:E类型以及它的子类 最起码与E保持一致,不能限定在E之上 <? super E> 向上限定,E类型以及它的父类 不能保持平级 ## List接口: ​ 有序的集合,可以允许元素重复 ​ //使用List集合存储字符串并遍历 ​ //存储自定义对象 ​ Object[] toArray() ​ Collection 集合的Interator ​ //创建对象 ​ List list=new ArryList(); ​ list.add(); ​ //方式1 ​ Object o=list.toArray(); ​ for(int x=0;x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值