JAVA7.25

本文介绍了Java中的基础API,包括Object类的关键方法如hashCode和equals,以及String类的常用操作如拼接和转换。还讨论了包装类的作用,Math类的数学函数,Random类生成随机数,Date类和Calendar类处理日期时间的方式。
摘要由CSDN通过智能技术生成

API

Object:所有类的父亲;1、object类中的方法都可以被子类使用

Object类中的方法

  1. getClass:返回对象的字节码文件对象(获取类名)
  2. hashCode:返回对象的哈希码值(对象的十进制内存地址值)
  3. Equals:比较两个对象是否相同
  4. toString:如果我们想要按自己的想法输出,我们就需要重写toString方法;未重写前的输出方式: getClass.GetName()+“@”+Integer.toHexString(hashCode());类的全路径名+@+对象的哈希码值的十六进制

全限定符命:包类,类名

例:

		Person person = new Person();
        System.out.println(person);
        System.out.println(person.hashCode());

Equals和==的区别:

  1. equals底层的代码就是==
  2. Equals只能比较引用数据类型
  3. ==:可以比较基本数据类型和引用数据类型,比较基本数据类型的时候比较的是值,比较引用数据类型的时候比较的是地址值

String类

  1. 被final修饰的类(太监类),不能被继承
  2. 字符串存在与常量池中。如果new String()会在堆内存中开辟空间,如果是直接赋值的话,会在常量池中开辟空间
  3. String可以通过+完成字符串拼接,但是效率低下

String的常用方法:

方法名作用返回值
isEmpty()判断是否为空boolean
length()取到该String的长度int
equals(Object obj)判断两个字符串是否相等boolean
equalsIgnoreCase(String as)不区分大小写比较Object
charAt(int index)返回该下标的charchar
substring(int start)截取字符串下标从start开始String
substring(int start,int end)截取区间字符串从start开始到end结束(包头不包尾)String
replace(char old,char new)替换字符串/替换全部String
trim()去掉字母首尾空格String
indexOf()寻找某个字符串在目标字符串的位置int

String类的型转换功能:

方法名作用返回值
getBytes()转换成bytes型数组byte[]
toCharArray()转换成char型数组char[]
String valueOf(char[] chs)将入参类型转换为StringString
toLowerCase()将所有英文字母转换为小写字母String
toUpperCase()将所有英文字母转换为大写字母String
concat(String str)将指定字符串连接到此字符串的结尾String

例:

		System.out.println(name.isEmpty());
        System.out.println(name.length());
        String s2 = "0123145617891";
        String s3 = "Abc";
     System.out.println(s2.equalsIgnoreCase(s3));
        char c = s2.charAt(1);
        System.out.println(c);
        String substring = s2.substring(3,7);    
        System.out.println(substring);
        String replace = s2.replace("1", "9");  
        System.out.println(replace);
        String s4 = "  bcbab  ";
        System.out.println(s4.trim());
        int i = s4.indexOf("ab");  
        System.out.println(i);
        byte[] bytes1 = "66".getBytes();
       System.out.println(Arrays.toString(bytes1));

StringBuffer类的常用方法:
StringBuffer是用来解决String更改字符串造成的时间浪费和空间浪费的

声明:
StringBuffer sb =New StringBuffer();

方法:

方法名作用返回值
append(String str)追加字符串StringBuffer
insert(int offset,String str)指定位置追加字符串StringBuffer
deleteCharAt(int index)删除下标处的字符StringBuffer
delete(int start,int end)删除下标区间的字符StringBuffer
replace(int start,int end,String str)替换区间符StringBuffer
reverse()反转字符串StringBuffer
substring(int start,int end)截取区间字符串从start开始到end结束(包头不包尾)String
substring(int start)截取字符串String
split()拆分字符串String[]

split():加上正则化用来分割字符串

1、正则表达式 \s 表示匹配任何空白字符,+ 表示匹配一次或多次。

str = "  hello world!      ";
 
String[] words = str.split("\\s+");  //按照一个或多个空格分割字符串

2、某些特殊字符,如果字符(串)正好是正则的一部分,则需要转义才能用:
这些字符有 | , + , * , ^ , $ , / , | , [ , ] , ( , ) , - , . , \等, 必须得加 \ 。

(想用 | 竖线去分割某字符,因 | 本身是正则表达式中的一部分,所以需要 \ 去转义,因转义使用 , 而这个 \ 正好也是正则表达式的字符,所以还得用一个 \ , 所以需要两个 \。)

String[] words = "aaa|bbb|ccc".split("\\|");

例:

		 StringBuffer sb = new StringBuffer("小王");
        sb.append("是个大帅哥");
        sb.insert(2,"哥");
        System.out.println(sb);
       sb.deleteCharAt(2);
        System.out.println(sb);
        sb.delete(5, 6);    //  [5,6)
        System.out.println(sb);
        sb.replace(5, 8, "大渣男");//[5,8)
        System.out.println(sb);
        String substring = sb.substring(5, 8);
        System.out.println(substring);
        sb.reverse();
        System.out.println(sb);
        String ss = "186-3623-7200";
        String[] split = ss.split("-");
      System.out.println(Arrays.toString(split));
        StringBuffer sb1 = new StringBuffer("15735256010");
        sb1.replace(3, 7, "****");
        System.out.println(sb1);

包装类:

基本数据类型:是没有方法的,但是可以通过包装类来实现方法的调用
写法上只有
int Integ
char Character
剩下的都是首字母大写

装箱和拆箱:
装箱:穿装备(变强)基本数据类型—>包装类
拆箱:脱装备(变弱) 包装类---->基本数据类型

  1. byte的包装类 public final class Byte extends Number implements
    Comparable
  2. short的包装类 public final class Short extends Number implements
    Comparable
  3. int的包装类 public final class Integer extends Number implements
    Comparable
  4. long的包装类 public final class Long extends Number implements
    Comparable
  5. float的包装类 public final class Float extends Number implements
    Comparable
  6. double的包装类 public final class Double extends Number implements
    Comparable
  7. Boolean和Character两个类就是正常的属性方法封装,但是数值型的包装类继承了一个Number类。 public
    abstract class Number implements java.io.Serializable
    其实Number中定义的方法就是用于拆箱装箱的。

Integer的常用方法:

方法名作用返回值
intValue()转换成intint
parseInt(String s)String转换成intint
valueOf(String s)String转换成IntegerInteger
String toBinaryString(int i)转换成2进制String
toOctalString转换成8进制String
toHexString(int i)转换成16进制String
toHexString(int i)十进制到其他进制String
parseInt(String s,int radix)其他进制到十进制int

Character常用的方法:

方法名作用返回值
isUpperCase(char ch)判断指定字符是否为大写字母boolean
isLowerCase(char ch)判断指定字符是否为小写字母boolean
isDigit(char ch)如果字符串中只含有数字则返回Trueboolean
toUpperCase(char ch)将小写字符转换为大写char
toLowerCase(char ch)将大写字符转换为小写char

例:

 public static void main(String[] args) {
        int a = 1;
        Integer b = a;
        int c = b;
        int i = b.intValue();
        Integer r = Integer.valueOf("123");// 字符串必须是数字,否则报错
        System.out.println(r);
        int i1 = Integer.parseInt("12");
        boolean a1 = Character.isUpperCase('A');
        System.out.println(a1);
        boolean a2 = Character.isLowerCase('a');
        System.out.println(a2);
        boolean a3 = Character.isDigit('A');
        System.out.println(a3);
        char a4 = Character.toLowerCase('A');
        System.out.println(a4);
        Demo01 demo01 = new Demo01();
        int aa = demo01.toCase("123");
        System.out.println(aa);
  	 }
    public int toCase(String s){
        char[] charArray = s.toCharArray();
        for (char c : charArray) {
            if(!Character.isDigit(c)){
                throw new RuntimeException("字符串中含有非数字字符");
            }
        }
        return Integer.parseInt(s);
    }

math常用方法:

方法名作用返回值
abs(int a)取绝对值int
ceil(double a)返回最小值向上取值double
floor(double a)返回最大值向下取值double
max(int a,int b)取最大值int
pow(double a,double b)求幂double
random()随机数double
round(float a)四舍五入成整数int
sqrt(double a)求double值的正平方根double

例:

		int a = -100;
        System.out.println(Math.abs(a));
        double b = 3.56;
        double ceil = Math.ceil(b);
        System.out.println(ceil);
        double floor = Math.floor(b);
        System.out.println(floor);
        int max = Math.max(100, 200);
        System.out.println(max);
        double pow = Math.pow(2, 10);
        System.out.println(pow);
        long round = Math.round(b);
        System.out.println(round);
        double random = Math.random();  //0-1之间的小数
        int aa = (int)(random * 100);
        System.out.println(aa);
        System.out.println(Math.sqrt(9));

Random类常用方法:

方法名作用返回值
nextInt()生产一个随机数int
nextInt(int n)生成一个0~n之间的随机数int

例:

	Random random = new Random();
        int i = random.nextInt(100);
        System.out.println(i);
        int x = 20+ random.nextInt(70-20);
        System.out.println(x);

Date常用方法:

Date表示日期
获取当前时间

Date date = new Date();
 System.out.println(date)

获取当前时间毫秒值

1秒等于=1000毫秒

日期格式化: yyyy-MM-dd HH:mm:ss;SSS
New SimpleDateFormat(格式化字符串);
Foemat(date)会获取一个被格式化的当前时间字符串
Parse(被格式化的当前时间字符串)将被而格式化的时间字符串转换为date类型
例:

        Date date1 = new Date();
        SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
        String format = date.format(date1);
        String[] s = format.split("-");
        int[] ss =new int[s.length];
        for (int i = 0; i < s.length; i++) {
            int sss = Integer.parseInt(s[i]);
            ss[i]=sss;
        }
        Random random = new Random();
        int year= random.nextInt(30)+1973;
        int month= random.nextInt(12)+1;
        int day= random.nextInt(30)+1;
        int hour = random.nextInt(24);
        int minute = random.nextInt(60);
        int second = random.nextInt(60);
        long alltime =(ss[0]*12*30*24*60*60+ss[1]*30*24*60*60+ss[2]*24*60*60+ss[3]*60*60+ss[4]*60+ss[5])-(year*12*30*24*60*60+month*30*24*60*60+day*24*60*60+hour*60*60+minute*60+second);
        System.out.println("随机一位人员来到这个世界多少秒"+alltime);

Calendar日历类

1、日历类擅长是对日期进行加减
Calendar.getInstance();获取日历类
Calendar对象.getTime()转换为日期
Calendar对象.setTime()日期转换为日历类
Add(Calendar.要修改的元素,改成多少)对日期进行修改
例:

        Calendar instance = Calendar.getInstance();
        System.out.println(instance);
        instance.add(Calendar.MONTH,2);
        instance.add(Calendar.DAY_OF_MONTH,-2);

        // calendar转换成date
        Date time = instance.getTime();


        System.out.println(time);

        // date转换成calendar
        instance.setTime(new Date());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值