1、内部类
在一个类内部再定义一个类(class)
特点:
- 编译后可生成独立的字节码文件
- 内部类也可访问外部类的私有(private)成员且不破坏封装
- 可为外部类提供必要的功能组件
1.1成员内部类
package inner;
//成员内部类
public class menberOuter
1.2静态内部类
package inner;
//静态内部类
public class stOuter
1.3局部内部类
package inner;
//局部内部类
public class pOuter
1.4匿名内部类
package inner;
//接口实现多继承,需要重写接口中得方法再实现,这里讲通过局部内部类来实现(但只能使用一次——通过局部内部类来优化)
public class Utest
2、Object类
根类——默认所有类都继承
2.1getClass(){}方法
返回引用中存储得实际对象类型,通常用来判断两个引用中实际存储对象类型是否一致
2.2hashCode(){}方法
返回对象得哈希码值(根据对象得地址或字符串或数字计算出来得int数字)
一般情况下返回相同得哈希码值
2.3toString(){}方法
返回该对象的字符串表示
可以进行覆盖该,如:展示对象各个属性值
2.4equals(){}方法
boolean类型,默认实现为(this==obj),比较两个对象地址是否相同
可以进行覆盖,比较两个对象内容是否相同
- 比较两个引用是否指向同一个对象
- 判断obj是否为null
- 判断两个引用类型指向的实际对象是否一致
- 强制类型转换
- 依次比较各个属性值是否相同
2.5finalize(){}方法
-
一般当对象判定为垃圾对象时,由JVM自动调用此方法,用以标记为垃圾对象行列
-
垃圾对象:没有有效引用指向此对象时
-
垃圾回收:由GC销毁垃圾对象,释放数据储存空间
-
自动回收机制:JVM内存耗尽 ,一次性回收所有垃圾对象
-
手动回收机制:使用System.gc();通知JVM执行垃圾回收
package ob1; import java.util.Objects; //getClass 通常用来判断两个引用中实际存储对象类型是否一致 //hashCode 返回对象得哈希码值(根据对象得地址或字符串或数字计算出来得int数字),一般情况下相同 public class Stuent
3、包装类
- 基本数据类型所对应的引用数据类型
- Object可统一所有数据类型 , 包装类的默认值为null
- 八大基本类型包装类首字母大写,除int——Integer,char——Character
在JDK版本包(中文版)可以查看详细内容
3.1类型转换-装箱和拆箱
基本类型(栈)与引用类型-包装类(堆)的转换
栈——>堆(装箱),反之拆箱
- Number父类提供的6个共性方法
3.2基本类型和字符串转换
- paraseXXX()静态方法
在做转换时,保证类型兼容
package cast;
/*
转换方法
1.Number父类提供的6个共性方法
2.paraseXXX()静态方法
3.valueOf()静态方法
*/
public class Demo1
4、Integer缓冲区
Java预先创建了256个常用的整数包装类型对象
Integer integer3 = 100;//自动装箱,shif+f4查看代码详细语句-实际调的Integer.valueOf(100)方法,点住语句Control键查看源码-128到127
package cast;
//Integer缓冲区-Java预先创建了256个常用的整数包装类型对象
//shif+f4查看代码详细语句
public class Demo2
5、String字符串
5.1String
- 字符串创建以后不可以改变
- 字符串储存在字符串池中,可以共享
- 字符串的另一种创建方式String str = new String("另一种创建方式")
5.2String常用方法
5.2.1字符串返回控制
-
length();返回字符串的长度,从0开始,一个字符算一个(空格也算一个字符)
-
charAt(int index);返回某个位置的字符串,最后一个字符要减一(因为从0开始),否则会报错
-
contains(String str);判断是否包含某个字符串
-
toCharArray();返回字符串对应的数值
-
indexOf(String str);返回字符串首次出现的位置-还可以指定开始
-
lastIndexOf(String str);返回字符串最后出现的位置
5.2.2字符串修改
-
trim();去掉字符串前后的空格
-
toUpperCase();把小写改成大写,toLowerCase();把大写改成小写
-
endWith(String str);判断是否以str结尾,startswith(str);判断是否以str开头
-
replace(char oldChar,char newChar);用新的字符或字符串替换旧的字符或字符串
-
split(String str);对字符串进行拆分
-
equals();比较内容,equalsIgnoreCase();compare();忽略大小写的比较,比较字典表中的大小
package str; import java.util.Arrays; //String public class Demo1
5.3案例演示
已知String str = "this is a text"
-
将str中的单词单独提取出来
-
将str中的text替换为practice
-
在text前面加入一个easy
-
将每个单词的首字母改为大写
package str; /* 已知String str = "this is a text" 1. 将str中的单词单独提取出来 2. 将str中的text替换为practice 3. 在text前面加入一个easy 4. 将每个单词的首字母改为大写 */ public class Demo2
5.4StringBuffer和String Builder
-
StringBuffer,可变长字符串,效率慢,线程安全
-
String Builder,可变长字符串,效率快,线程不安全——推荐使用
效率比String高并且更节省空间
-
append();追加
-
insert();添加
-
replace();指定位置替换
-
delete();删除
-
清空,sb.delete(0,sb.length());
package str; /* - StringBuffer,可变长字符串,效率慢,线程安全 - String Builder,可变长字符串,效率快,线程不安全——推荐使用 效率比String高并且更节省空间 */ public class Demo3
6、BigDecimal类的使用
小数类型在存储时采用的近似——使用BigDecimal精度更高
进行计算时采用的调用方法
-
subtract();减法
-
add();加法
-
multiply();乘法
-
复合运算的div();除法—注意这里除不得是除尽的,用除中的BigDecimal保留,BigDecimal.ROUND_HALF_UP(四舍五入)
package bd; /* 小数类型在存储时采用的近似——使用BigDecimal精度更高 进行计算时采用的调用方法 */ import java.math.BigDecimal; import java.math.RoundingMode; public class Demo1
7、Date类的使用
表示特定的瞬间,精确到毫秒,但已被Calender类所替代
但有些还在用
打印当前时间
Date date1 = new Date();
System.out.println(date1.toString());
1.after(); ,before();
2.comparedTo();
3.equals();
package dt;
/*
Date
表示特定的瞬间,精确到毫秒,但已被Calender类所替代
但有些还在用
*/
import java.util.Date;
public class Demo1
8、Calender类的使用
Calender提供了获取或者设置各种日历字段的方法
构造方法protected Canlender();由于修饰符是protected,所以无法直接创建该对象
2.获取参数值-点进Calendar进去看可以获得参数值
3.set();修改时间
4.add();方法修改时间
5.补充方法,getActualMaxinum();这个月的最大天,getActualMininum();这个月的最小天
package bd;
/*
Calender提供了获取或者设置各种日历字段的方法
构造方法protected Canlender();由于修饰符是protected,所以无法直接创建该对象
*/
import java.util.Calendar;
public class Demo2
9、SimpleDateFormat类的使用
格式化(把日期转成字符串),解析(把字符串转成日期)
y,M,d,H(24小时),m,s,S(毫秒)
package bd;
/*
格式化(把日期转成字符串),解析(把字符串转成日期)
y,M,d,H(24小时),m,s,S(毫秒)
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo3
10、System类
System系统类,主要用于获取系统的属性数据和其他操作,构造方法是私有的(直接引用)
10.1static void arraycopy();-复制数组
- arraycopy();-复制数组,src-源数组,srcPos-从那个位置开始复制(第一位置是0),dest-目标数组,destPose-目标数组的位置,length-复制的长度
- Arrays.copyOf与之的区别:效率更高
10.2static long currentTimeMillis();以毫秒返回当前时间
10.3static void gc();启动垃圾回收站(JVM)
10.4、static void exit(int status);退出(JVM),0表示正常,非0表示异常
package st;
//System
public class Demo1
标签:常用,String,package,public,process1,str,字符串,class
From: https://www.cnblogs.com/moulixu/p/18343893