JAVA常用类
-
内外部类属性名相同优先访问内部类
-
访问外部类用法:Outer(外部类名).this.xxx
-
内部类可以直接访问外部类的私密成员而不破坏封装性
-
创建内部类对象
//1.创建外部类对象
Outer outer = new Outer();
//2.创建内部类对象
Outer.Inner inner = outer.new Inner();
//一步到位
Outer.Inner inner = new Outer().new Inner();
局部内部类
-
局部内部类不能加任何修饰符
-
步骤:
-
声明内部类
-
创建内部类对象
-
调用内部类
public class Outer{
class Inner{
//声明内部类
}
Inner inner = new Inner();//创建对象
inner.xxx//调用
}
-
匿名内部类
//接口
public interface Usb {
void service();
}
class TextUsb{
Usb usb = new Usb(){
public void service(){
System.out.println("链接电脑成功,风扇开始工作...");
}
};
usb.service();
}
静态内部类
-
与外部类级别相同
-
创建静态内部类对象
Outer.Inner inner = new Outer.Inner();
//与创建非静态内部类对象区分
Outer.Inner inner = new Outer().new Inner();
包装类
自动拆装箱
自动装箱:基本类型转换成引用类型
Integer integer1 = 100;
自动拆箱:引用类型转换成基本类型
int age = integer1;
基本类型与字符串类型之间的转换
-
基本类型转换成字符串
-
使用“+”号
int n1 = 255;
String s1 = n1+""; -
使用Integer中的toString()方法
String s2 = Integer.toString(n1);
-
字符串转换成基本类型
-
使用Integer.parsexxx();
String str = "150";
int n2 = Integer.parseInt(str);
System.out.println(n2);
-
-
boolean类型字符串形式转成基本类型 :"true"---->true 非true ---->false
String str2 = "true";
boolean b1 = Boolean.parseBoolean(str2);
String类
两种创建方法
String name = "hello";//"hello"常量存储在方法区中的字符池中
name = "zhangsan";//把张三的值赋给name,给字符串赋值时没有修改数据,而是重新开辟一个空间
//演示字符串的另一种创建方式:new String()
String str = new String("java");
String str2 = new String("java");
System.out.println(str==str2);//false
System.out.println(str.equals(str2));//true
常用方法
-
length();返回字符串的长度
-
charAt(int index);返回某个位置的字符
-
contains(String str);判断是否包含某个子字符串
-
toCharArray();返回字符串对应的数组
-
indexOf();返回子字符串首次出现的位置
-
lastIndexOf();返回字符串最后一次出现的位置
-
trim();去掉字符串前后的空格
-
toUpperCase();把小写转成大写 toLowerCase();把大写转成小写
-
endsWith(str);判断是否以str结尾,startsWith(str);判断是否以str开头
-
replace(char old,char new);用新的字符或字符串替换旧的字符或字符串
-
split();对字符串进行拆分
StringBuffer和StringBuilder
-
和String的区别:(1).效率比String高 (2).比String节省内存
-
常用方法: append(); 追加 insert(); 添加 replace();替换 delete();删除 toString();
BigDecimal类
-
用于大的浮点数进行精确计算
-
方法
-
add(BigDecimal bd);加
-
subtract(BigDecimal bd);减
-
multipli(BigDecimal bd);乘
-
divide(BigDecimal bd);除
-
除不尽 (scale:保留两位小数 BigDecimal.ROUND_HALF_UP四舍五入)
-
BigDecimal r5 = new BigDecimal("20")
.divide(new BigDecimal("3"),2,BigDecimal
.ROUND_HALF_UP); -
时间类型
Date类
public static void main(String[] args) {
//1.创建date对象
//今天
Date date1 = new Date();
System.out.println(date1.toString());
//Wed Apr 06 13:22:40 CST 2022
System.out.println(date1.toLocaleString());
//2022年4月6日 下午1:22:40
//昨天
Date date2 = new Date(date1.getTime()-(60*60*24*1000));
System.out.println(date2.toLocaleString());
//2022年4月5日 下午1:22:40
//2.方法after before
boolean b1 = date1.after(date2);
System.out.println(b1);//true
//比较compareTo();
int d = date1.compareTo(date2);
System.out.println(d);//1
//比较是否相等equals();
boolean b2 = date1.equals(date2);
System.out.println(b2);//false
}
Calendar类
public static void main(String[] args) {
//1.创建Calendar对象
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime().toLocaleString());
//2022年4月6日 下午1:25:02
System.out.println(calendar.getTimeInMillis());//1649222702589
//2.获取时间信息
//获取年
int year = calendar.get(Calendar.YEAR);
//月 从0-11
int month = calendar.get(Calendar.MONTH);
//日
int day = calendar.get(Calendar.DAY_OF_MONTH);//Date
//小时
int hour = calendar.get(Calendar.HOUR_OF_DAY);
//HOUR12小时。HOUR_OF_DAY24小时
//分钟
int minute = calendar.get(Calendar.MINUTE);
//秒
int second = calendar.get(Calendar.SECOND);
System.out.println(year+"年"+(month+1)+"月"+day+"日:"+hour+":"+minute+":"+second);
//2022年4月6日:13:25:2
//3.修改时间
Calendar calendar2 = Calendar.getInstance();
calendar2.set(Calendar.DAY_OF_MONTH,5);
System.out.println(calendar2.getTime().toLocaleString());
//2022年4月5日 下午1:25:02
//4.add方法修改时间
calendar2.add(Calendar.HOUR,-1);
System.out.println(calendar2.getTime().toLocaleString());
//2022年4月5日 下午12:25:02
//5.补充方法
int max = calendar2.getActualMaximum(Calendar.DAY_OF_MONTH);
int min = calendar2.getActualMinimum(Calendar.DAY_OF_MONTH);
System.out.println(max);//30
System.out.println(min);//1
}
SimpleDateFormat类
public static void main(String[] args) throws Exception{
//1.创建SimpleDateFormat对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//2.创建Date
Date date = new Date();
//格式化date(把日期转成字符串)
String str = sdf.format(date);
System.out.println(str);
//解析(把字符串转成日期)
Date date2 = sdf.parse("1990/01/12 12:02:03");//需与上面的格式相同
System.out.println(date2);
}
System类
public static void main(String[] args) {
//arrayCopy 复制数组
//src 源数组
//srcPos 从哪个位置开始复制
//dest 目标数组
//destPos 目标数组的位置
//length 长度
int[] arr={20,18,15,8,35,26,45,90};
int[] dest=new int[8];
System.arraycopy(arr,0,dest,0,arr.length);
for(int i=0;i<dest.length;i++){
System.out.println(dest[i]);
}
//读取毫秒
long start =System.currentTimeMillis();
for(int i=-9999;i<9999;i++){
for(int j=-9999;j<9999;j++){
int result =i+j;
}
}
long end = System.currentTimeMillis();
System.out.println("用时:"+(end-start));
//System.gc();告诉垃圾回收器回收
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理