首页 > 其他分享 >常用类

常用类

时间:2022-11-01 09:36:29浏览次数:39  
标签:常用 String int System 字符串 println out

getclass()类

判断两个引用中的实际存储对象类型是否一致。

使用方法:

Class class1=s1.getClass();
Class class2=s2.getClass();
if(class1==class2){
    ...
}else{
    ...
}

hashCode

返回该对象在内存中的地址,相同对象返回的哈希值一致。

s1=s2
System.out.println(s1.hashcode=s2.hashcode)
 true

equals方法

比较两个对象内容是否相同。返回值为布尔类型。

Integer integer1=new Integer(100);
Integer integer2=new Integer(100);
System.out.println(integer1.equals(integer2));//结果为true,如果括号内的数值不一致,则返回false

拓展:equals和“==”有什么区别?

  1. 对象类型不同。equals()是Object超类的方法,而”==“是操作符。

  2. 比较的对象不同。equals()是用来检测两个对象的内容是否相同。

    ==:用于比较引用和比较基本数据类型时具有不同的功能,具体如下:

    (1)基础数据类型:比较的是他们的值是否相等,比如两个int类型的变量,比较的是变量的值是否一样。

    (2)引用数据类型:比较的是引用的地址是否相同,比如说新建了两个User对象,比较的是两个User的地址是否一样。

    3.运行速度不同

    1、equals():没有==运行速度快。

    2、:运行速度比equals()快,因为只是比较引用。

装箱/拆箱

早期java的缺陷。准确来说java不完全是面向对象,因为存在基本类型。

装箱:把基本类型转换为引用类型

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

//装箱 两种方法
int num1=100
Integer integer1= new Integer(100);//或者(num1)
Integer integer2=Integer.valueOf(num1);
//拆箱
Integer integer =new Integer(14);
int age= integer.intValue();
//JDK1.5之后引入自动拆箱装箱
Integer integer3=10;//自动装箱

int age2=integer3;//自动拆箱

基本类型和字符串的转换

基本类型转字符串:Integer.toString(n1)

字符串转基本类型:Float.parseFloat(Str1)

注意:字符串转换为布尔类型时,会把非true的任意字符串输出为false!!!

//基本类型转字符串
int n1=13;
String str1=n1+"";//结果为13
String s2 =Integer.toString(n1)//结果为13

字符串转基本类型
String str2= "123.1";
float n2=Float.parseFloat(str2);

//字符串转布尔类型
String str3="truee";
boolean a=Boolean.parseBoolean(str3);
System.Out.println(a)//结果为false

String类

  1. 字符串是常量,创建后不能改变。

  2. 字符串字面值存储在字符串池中,(字符串池在方法区里),可以被共享。

  3. String s="hello"产生一个对象,在字符串池中存储。

  4. String s=new String(“hello”)产生两个对象,一个在堆,一个在字符串池里。


    String类方法

    String s=" Java123你好,Java "

    public int length():返回字符串的长度。例如:s.length //结果为18

    public char charAt(int index):根据下标获取字符串的某个字符。注意返回值为char!。例如:s.charAt(0)//结果为j

    public boolean contains(String str):判断字符串里是否有str,返回值为布尔类型。例如:s.contains("好")// 结果为true

    public char[] toCharArray():把字符串转换为数组。

    public int indexOf(String str):查找str第一次出现的下标,若存在,返回下标的值,若不存在,返回值为-1。例如:s.indexOf("java")//结果为0

    public int indexOf(String str,int a):可按照从哪个地方开始查找,例如java结束后为3,则s.indexOf("Java",3)//结果为14

    public int lastIndexOf(String str):查找str最后一次出现的下标。若不存在返回-1,跟indexOf一样用法。

    public String trim():去掉字符串前后的空格,注意是前后,不是中间。

    public String toUpperCase(LowerCase):把字符串的小写字母转换成大写,LowerCase为小写。例如:s.toUpperCase() //结果为JAVA123你好,JAVA

    public boolean endWith(String str):判断字符串是否以str为结尾,返回值为布尔类型。判断开头用 startWith()。

    public String replace(char oldChar,char newChar):替换字符串,(原来的,新的字符串)

    public String[] split(String str): 以str字符为分割,将字符串分隔开。

    String str3="java 你 好";
            String s[]=str3.split(" ");//中间存在1个空格
            for (String string:s
                 ) {
                System.out.println(string);
            }
                //输出结果为如下:
    java
    你
    好
    
    //如果为想多个分隔符作分割,则添加"[]"中括号内填分割符,如需多个相同的分割符,例如两个空格,只需在之前的条件下加一个“+”号
     String str3="java,你  好";
            String s[]=str3.split("[ ,]+");
            for (String string:s
                 ) {
                System.out.println(string);
    
            }//输入结果如下:
    java//没有逗号!!!
    你
    好
    

    subString():

    (1)substring是用来截取字符串的,根据参数的个数不同,方法含义也不同;

    (2)substring(0,2)这个只含开头不含结尾,因此截取是截取两个字符,从第一个到第二个字符,不包含第三个。

    (3)substring(2)这个表示截掉前两个,得到后边的新字符串。

    String str="hello World";
    String s1=str.substring(0,5);//结果为hello
    String s2=str.substring(6)//意思是去掉前面6个字符,结果为World
    

    补充方法 equals和compareTo()

    equals:比较值 equalsIgnoreCase:无视大小写

    equalsIn

    compare():比较大小

    1. 如果字符串长度一致,返回的是ASCII的差值。如果首字符相同,则对比下一位直到不相同为止,返回不同对比的字符的ASCII的差值
    2. 如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值。
    //equals
    String str1="hello";
            String str2="HELLO";
            System.out.println(str1.equals(str2));//结果为false
    //equalsIgnoreCase
    String str1="hello";
            String str2="HELLO";
            System.out.println(str1.equalsIgnoreCase(str2));//结果为true
    
     
    //如果首字符相同,则对比下一位直到不相同为止,返回不同对比的字符的ASCII的差值
    String s1="abc";
     String s2="xyz";
    System.out.println(s1.compareTo(s2));//结果为-23
    
    //如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值。
     String a1 = "aa";
            String a2 = "aa12345678";        
            System.out.println(a1.compareTo(a2));//结果为-8
    

    StringBuffer和StringBuild类

    可变长字符串。和String的区别:效率比String高,速度要比String快,比String节省内存,在JDK1.0引入。

    StringBuffer和StringBulid,前者线程安全,速度比较慢。后者线程不安全,速度更快,在JDK1.5引入。

    四种常用方法:append(追加)、insert(插入)、replace(int start ,int end,String str)、delete(int start,int end),用法详见代码。

    //两者用法一样。
     StringBuilder sb = new StringBuilder();
            sb.append("hello!");
            System.out.println(sb.toString());//结果为hello!
            sb.append("world");
            System.out.println(sb.toString());//结果为hello!world
            System.out.println(sb.insert(0,"我在最前面"));//结果为:我在最前面hello!world
            System.out.println(sb.replace(0,5,"你好"));//结果为:你好hello!world
            System.out.println(sb.delete(0,2));//结果为:hello!world
    

    BigDecimal类

    
    BigDecimal r1 = new BigDecimal("1.0");//必须记住括号内为字符串类型!!!
     BigDecimal r2 = new BigDecimal("0.9");
    BigDecimal r3=r1.subtract(r2);//-
     System.out.println(r3);
     BigDecimal s1 = new BigDecimal("1.5");
     BigDecimal s2 = new BigDecimal("0.7");
     System.out.println(s1.add(s2));//+
     BigDecimal s3 = new BigDecimal("1.7");
     BigDecimal s4 = new BigDecimal("0.1");
     System.out.println(s3.multiply(s4));//*
    //输出(1.4-0.5)/0.9
     BigDecimal r5 = new BigDecimal("1.4").subtract(new BigDecimal("0.5")).divide(new BigDecimal("0.9"));
     System.out.println(r5);
    //如果除不尽,会抛出异常。这时就要用到四舍五入的方法,2是保留两位小数,ROUND_HALF_UP为Bigdecimal的四舍五入方法!记忆!!
     BigDecimal divide = new BigDecimal("10").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
     System.out.println(divide);//结果为:3.33
    

    date类()

    当创建一个Date类对象时,对象已经获取到当前的时间!

    Date date1 = new Date();//获取到时间。
    System.out.println(date1.toLocaleString());//结果为当前时间
    Date date2 = new Date(date1.getTime()-60*60*24*1000);//今天减去一天等于昨天
    System.out.println(date2.toLocaleString());//结果为昨天
    System.out.println(date1.before(date2));//返回布尔类型,false
    int i = date2.compareTo(date1);
    System.out.println(i);//昨天减去今天,结果为-1
    

    Calendar类()

    提供各种获取或设置日历字段的方法。

    Calendar类构造方法为:protected Calendar(),因此无法通过new来创建对象,通过调用静态方法static Calendar getInstance()来创建。

    static Calendar getInstance():使用默认时区和区域获取到当前日历。

    void set():设置日历的年月日时分秒。

    int get():返回日历的某个(年月日时分秒)值。

    void setTime():设置日历的某个值。Date-Calendar

    void getTime():返回日历的某个值。Claendar-Date

    void add():修改日历某个值。可以add负数!

    long getTimeInMillies():返回日历的毫秒数。

    int getActualMaximum():返回日历某个值的最大值。

    int getActualMinimum():返回日历某个值的最小值。

    Calendar calendar=Calendar.getInstance();//注意,这里的getInstance的方法已经返回了一个calendar的对象,所以直接Calendar.方法就行了
            System.out.println(calendar.getTime().toLocaleString());//2022-10-31 15:43:31
            System.out.println(calendar.getTimeInMillis());//1667202211080(毫秒值)
            int year =calendar.get(Calendar.YEAR);
            int month =calendar.get(Calendar.MONTH);
            int day =calendar.get(Calendar.DAY_OF_MONTH);
            int hour= calendar.get(Calendar.HOUR_OF_DAY);
            int minute =calendar.get(Calendar.MINUTE);
            int second=calendar.get(Calendar.SECOND);
            System.out.println(year+"年"+month+"月"+day+"日"+hour+"时"+minute+"分"+second+"秒");2022年10月31日15时50分28秒
             //注意!外国的算月是从0-11月,所以表示中国的方式得在month+1
            Calendar calendar1=Calendar.getInstance();
            calendar1.set(Calendar.DAY_OF_MONTH,30);//把日改为30号
            System.out.println(calendar1.getTime().toLocaleString());2022-10-30 15:50:28
            calendar1.add(Calendar.DAY_OF_MONTH,-4);//减去四天
            System.out.println(calendar1.getTime().toLocaleString());2022-10-26 15:50:28
    
            calendar1.add(Calendar.MONTH,+1);//增加了一个月
    
            int max=calendar1.getActualMaximum(Calendar.DAY_OF_MONTH);//11月最大值为30号
            System.out.println(max);
    

    SimpleDateFormat()类

    把日期按照某种格式去输出。

    可以把这个日期转换成文本(字符串)去输出,也可以把一个字符串解析成详细的年月日乃至星期几(文本--->日期)。

     SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd");//括号内填模板
            Date date = new Date();
            System.out.println(sdf.format(date));//2022/10/31 16:39:24
            Date date1 = sdf1.parse("1990/05/10");//把字符串强制转为日期,即解析日期
            System.out.println(date1);//Thu May 10 00:00:00 CDT 1990精确到星期四
    

    System类

    arraycopy():复制数组,可实现元素覆盖。5个参数(源数组名,源数组从第几开始复制,目标数组名,覆盖目标数组的第几个元素,长度(复制多少个)

    currentTimeMillis():获取自1970年到现在有多少毫秒,可用于计算程序运行时间!

    exit():退出jvm。有参数,如果是0,则正常退出程序,如果是非0,则异常退出jvm。

//数组的复制
        int []a={1,2,3,4,5};
        int[] dest=new int[5];
        System.arraycopy(a,3,dest,0,2);
        System.out.println(Arrays.toString(dest));//[4, 5, 0, 0, 0]
        //打印从1970年距离现在有多少毫秒
        System.out.println(System.currentTimeMillis());//1667209242799
        long start=System.currentTimeMillis();
        for (int i = -999; i < 9999999; i++) {
            for (int j = 0; j < 999999; j++) {
                int result=i+j;
            }
        }
        long end =System.currentTimeMillis();
        System.out.println("用时:"+(end-start)+"毫秒");//用时:4毫秒
        //退出JVM
        System.exit(0);
        System.out.println("程序退出了.....");//不输出,因为提前退出JVM了

标签:常用,String,int,System,字符串,println,out
From: https://www.cnblogs.com/1234kun/p/16846621.html

相关文章

  • 命令行常用快捷键
    常用:Ctrl+L:清屏Ctrl+M:等效于回车Ctrl+C:中断正在当前正在执行的程序历史命令:Ctrl+P:上一条命令,可以一直按表示一直往前翻Ctrl+N:下一条命令Ctrl+R......
  • Masm常用预定义符号及变量
    Masm定义了一些符号及变量,用了表示一些常用的值或地址,常用的有:一、$,表示当前行地址:  比如:可以用来计算字符串的长度,$-StringVar。二、?、表示没有初始化值:  比如:db......
  • 常用变量缩写
    argument可缩写为argbuffer可缩写为buffclock可缩写为clkcommand可缩写为cmdcompare可缩写为cmpconfiguration可缩写为cfgdevice可缩写为deverror可......
  • [VScode] 常用设置以及常用操作
    常用快捷键:Ctrl+P:搜索打开文件Ctrl+`:快速打开关闭终端.Ctrl+T:全局字符搜索Ctrl+Shift+O:在当前文件中搜索变量函数Alt+O:切换源头文件Ctrl+......
  • WSL常用命令
    查看WSL中的分支wsl-l-v关闭所有分支wsl--shutdown导出相关分支wsl--export[分支名称][导出路径]e.g.wsl--exportdocker-desktop-dataD:\wsl\docker......
  • Qt下常用的数值计算(绝对值qAbs,最大qMax,最小qMin,开根号Sqrt,N次方是pow,断言宏Q_ASSERT和
    TqAbs(constT&value)Comparesvaluetothe0oftypeTandreturnstheabsolutevalue.ThusifTisdouble,thenvalueiscomparedto(double)0.Example:intabsolu......
  • 4.Redis系列之常用数据类型列表list
    1.基本操作#lpush/rpush从左边或右边插入一个或多个值127.0.0.1:6379>lpushusernameshenjiandomi(integer)2#lpop/rpop从左边或右边抛出一个值127.0.0.1:6379......
  • 3.Redis系列之常用数据类型字符串String
    本文系列学习redis五大常用数据类型之字符串String的基本操作及编码与底层数据结构1.基本操作//setkeyvalue设置键值对127.0.0.1:6379>setblogshenjian.onlineO......
  • 5.Redis系列之常用数据类型集合Set
    本文讲解redis常用数据类型集合Set的基本操作与数据结构1.基本操作#sadd集合添加元素127.0.0.1:6379>saddusernameshenjianshenjiandomijing(integer)3#sme......
  • 6.Redis系列之常用数据类型有序集合Zset
    本文学redis常用数据类型有序集合Zset基本操作与底层数据结构1.基本操作#zadd<key><score><member>将多个member元素及其score值加入有序集合key中127.0.0.1:6379>......