JAVA常用类

外部类与内部类

  1. 内外部类属性名相同优先访问内部类

  2. 访问外部类用法:Outer(外部类名).this.xxx

  3. 内部类可以直接访问外部类的私密成员而不破坏封装性

  4. 创建内部类对象

    //1.创建外部类对象
     Outer outer = new Outer();
    //2.创建内部类对象
     Outer.Inner inner = outer.new Inner();

    //一步到位
    Outer.Inner inner = new Outer().new Inner();

     

局部内部类

  • 局部内部类不能加任何修饰符

  • 步骤:

    1. 声明内部类

    2. 创建内部类对象

    3. 调用内部类

      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();
}

 

静态内部类

  1. 与外部类级别相同

  2. 创建静态内部类对象

    Outer.Inner inner = new Outer.Inner();
    //与创建非静态内部类对象区分
    Outer.Inner inner = new Outer().new Inner();

     

包装类

自动拆装箱

自动装箱:基本类型转换成引用类型

Integer integer1 = 100;

自动拆箱:引用类型转换成基本类型

int age = integer1;

 

基本类型与字符串类型之间的转换

  • 基本类型转换成字符串

  1. 使用“+”号

     int n1 = 255;
    String s1 = n1+"";
  2. 使用Integer中的toString()方法

    String s2 = Integer.toString(n1);
  • 字符串转换成基本类型

    1. 使用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

 

 

 

常用方法

  1. length();返回字符串的长度

  2. charAt(int index);返回某个位置的字符

  3. contains(String str);判断是否包含某个子字符串

  4. toCharArray();返回字符串对应的数组

  5. indexOf();返回子字符串首次出现的位置

  6. lastIndexOf();返回字符串最后一次出现的位置

  7. trim();去掉字符串前后的空格

  8. toUpperCase();把小写转成大写 toLowerCase();把大写转成小写

  9. endsWith(str);判断是否以str结尾,startsWith(str);判断是否以str开头

  10. replace(char old,char new);用新的字符或字符串替换旧的字符或字符串

  11. split();对字符串进行拆分

 

StringBuffer和StringBuilder

  1. 和String的区别:(1).效率比String高 (2).比String节省内存

  2. 常用方法: append(); 追加 insert(); 添加 replace();替换 delete();删除 toString();

 

BigDecimal类

  • 用于大的浮点数进行精确计算

  • 方法

    1. add(BigDecimal bd);加

    2. subtract(BigDecimal bd);减

    3. multipli(BigDecimal bd);乘

    4. 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();告诉垃圾回收器回收

 

 

posted @   CC&  阅读(88)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示