Java教程

Java高级特性

本文主要是介绍Java高级特性,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 Java高级特性

属于面向对象的使用

使用的就是API(Application Programming Interface):应用程序接口文档

学习的就是Java中常用的核心类以及核心接口,---->Jdk提供的

Object类:

每个类都有Object作为超类--->父类的意思

所有的类都默认继承自Object

常用方法:

public final Class getClass() (重要):获取当前正在运行的Class类对象(字节码文件对象

public String getName():获取当前类或者接口的名称,字符串形式 包名.类名

public int hashCode():理解 "一个地址值"不是实际意义的地址值,它是经过底层的哈希算法(hash)算出来的

public String toString():返回对象的字符串表示形式,

public boolean equals(Object obj):比较对象是否相等,引用该类型比较的是地址值是否相同

==和equals的区别

==:如果连接都是两个基本数据类型:比如int 比较的是数据值是否相等,如果连接的是引用类型,那么比较的是地址值是否相同。

equals()是Object类的方法,如果我们不重写Object的equals方法,默认比较的是两个引用类型的地址值是否相同,如果重写了equals方法而且同时重写了hashCode()比较的是成员信息是否相同!

Scanner类

构造方法:

public boolean hasNextXXX(){} XXX就对应的数据类型,判断下一个录入的数据是否为XXX类型

boolean hasNextInt() :判断是否下一个录入的是int类型

boolean hasNextLine(); 判断是否下一个录入的是String类型 int nextInt() {} 录入的是int类型

String nextLine(){} 录入的是String类型

先录入的String,在录入int,没问题

先录入int,在录入String,有问题

String类:(重点类)

//String中“==”与"equals"区别:
public class StringTest {
    public static void main(String[] args) {
        String s1="hello";
        String s2="world";
        String s3="helloworld";
        String s4="helloworld";
        String s5 = new String("hello") ;
        System.out.println(s3==(s1+s2));//false
        System.out.println(s3==s4);//true
        System.out.println(s3.equals(s1+s2));//false
        System.out.println(s3=="hello"+"world");//false
        System.out.println(s3.equals("hello"+"world"));//false
        System.out.println(s1==s2);//false
        System.out.println(s1.equals(s2)) ;//true      
    }
}

String常用的判断功能

public boolean contains(String序列 s):字符串中是否包含指定的字符

public boolean endsWith(String suffix):是否以指定的字符串结尾

public boolean startsWith(String prefix):是否以指定的字符串开头

public boolean isEmpty()判断字符串内容是否空字符,长度为0,就是true

public boolean equals(Object anObject)-->重写Object,区分大小写判断字符串内容是否相同

public boolean equals(Object anObject):不区分大小写判断字符串内容是否相同

public class StringDemo2 {
    public static void main(String[] args) {
        String s="helloworldmanlovemystyle";
        System.out.println(s.contains("dman"));
        System.out.println(s.endsWith("yle"));
        System.out.println(s.startsWith("hell"));
        System.out.println(s.isEmpty());
    }
}
​

String类的获取功能(都必须掌握)

public char charAt(int index)获取指定索引出的字符值

public String concat(String str):拼接功能--->获取新的字符串,最传统的拼接使用+:字符串拼接符号 public int indexOf(int ch)返回指定字符第一次出现的字符串内的索引

public int indexOf(String str):返回指定字符串中子字符串第一次出现索引值

public int lastIndexOf(int ch):返回指定字符最后一次出现的索引

public int lastIndexOf(String str)

String substring(int beginIndex) :从指定位置开始默认截取到末尾--->返回一个新的字符串 String substring(int beginIndex, int endIndex) :从指定位置开始截取到指定位置结束

public String[] split(String regex):按照指定的分割符号--拆分成字符串数组

public class StringDemo2 {
    public static void main(String[] args) {
        String s="helloworldmen";
        System.out.println(s.charAt(3));
        System.out.println(s.concat("QQ"));
        System.out.println(s.indexOf("e"));
        System.out.println(s.lastIndexOf("e"));
        System.out.println(s.substring(5));
        System.out.println(s.substring(0,8));
        String str = "JavaEE-Python-Php-Go-R-Hadoop-C";
        String[] strArray = str.split("-");
        for (int i = 0; i <strArray.length ; i++) {
            System.out.println(strArray[i]);
        }
    }
}

String类的转换功能:

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

public byte[] getBytes():将字符串转换成字节数组---使用平台默认字符集编码

String的构造方法---String(byte[] bytes):使用平台默认字符集解码

public String toLowerCase():将字符串转换成小写

public String toUpperCase():将字符串转换成大写

Arrays工具类:可以将任何数组---转换成String public static String toString(int[]/byte[]/double[]/float[]/Object[]等等 )

万能方法:将任何数据类型转换成String

public static String valueOf(int/double/float/char[]/Object i)

public String replace(char oldChar,char newChar)

将指定的字符使用新字符进行替换

public String replace(String oldStr,String newStr)

替换指定字符串

import java.util.Arrays;
public class StringDemo {
    public static void main(String[] args) {
    String s = "好好学习天天向上" ;
    byte[] bytes = s.getBytes();
    System.out.println(Arrays.toString(bytes));
    String myStr = "今天老地方见" ;
        char[] chs = myStr.toCharArray();
        for (int i = 0; i <chs.length ; i++) {
            System.out.println(chs[i]);
            }
     String result = String.valueOf(100);
        System.out.println(result);
        }

安装字典顺序比较

public int compareTo(String anotherString)

StringBuffer:字符串缓冲区--->里面都存储的可变的字符序列

构造方法

StringBuffer() 空参构造

StringBuffer(String str):有参构造

获取功能:

int length():获取字符串缓冲区的长度(里面实际的字符序列的长度)

public int capacity():获取缓冲区的容量大小

添加功能

public StringBuffer append(任何类型数据) :追加功能 (常用的),返回值是字符串缓冲区本身,在缓冲区中的默认的字符序列后面依次追加。

public StringBuffer insert(int offset,char c/String str):返回值是字符串缓冲区本身,在指定的位置插入指定的字符或者字符串。

public StringBuffer deleteCharAt(int index):删除指定索引处的字符,返回字符串缓冲区本身

public StringBuffer delete(int start,int end):删除从执行位置开始到指定位置的字符序列,不包括end位置,是end-1处,返回字符串缓冲区本身

public class StringBufferDemo {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer() ;
        sb.append(12);
        sb.append("q");
        sb.append("wert");
        System.out.println(sb);
        sb.insert(3,"插入");
        System.out.println(sb);
        System.out.println(sb.deleteCharAt(2));
        System.out.println(sb.delete(4,7));
    }
}

StringBuffer的反转功能:

StringBuffer reverse() 返回字符串缓冲区本身

截取功能和String类型的截取功能一样,

String subString(int beginIndex):从指定位置默认截取到末尾--->String

String subString(int beginIndex,int endIndex)--->从指定开始,截取到指定位置结束endIndex-1出,返回的新的字符串

StringBuffer和StringBuilder有什么区别?

共同点:就是具有相互兼容的API(StringBuffer能用的StringBuilder也可以)
        都是支持可变的字符序列,不断在字符串缓冲区进行追加字符!
不同点:
       StringBuffer线程安全的类--->同步操作--->执行效率低
       StringBuilder线程不安全的类---不同步的操作--->执行效率高
//String--->StringBuffer
String s = "hello" ;
//1)StringBuffer的无参构造方法+append(String str)
StringBuffer sb = new StringBuffer();
sb.append(s) ;
//2)StringBuffer的有参构造方法StringBuffer(String s)
StringBuffer sb2 = new StringBuffer(s) ;
​
//StringBuffer--->String
StringBuffer buffer = new StringBuffer("JavaEE") ;
//1)String的构造方法String(StringBuffer sb)
String s = new String(buffer) ;
​
//2)StringBuffer的toString()方法
String s2 = buffer.toString() ;

Integer类---包含int类型的值

byte --- Byte

short--- Short

int --- Integer

long --- Long

float--- Float

double --- Double

char --- Character

boolean --- Boolean

Integer类的有些成员变量

public static final int MAX_VALUE ;自定义常量

public static final int MIN_VALUE ;

静态方法

public static String toBinaryString(int i):将十进制数据--->二进制数据的字符串形式

public static String toOctalString(int i):将十进制数据--->八进制字符串形式

public static String toHexString(int i):将十进制数据---->十六进制数据的字符串形式

Integer的构造方法

Integer(int value)--->可以将基本类型数据--->Integer

Integer(String s)throws NumberFormatException :将String--->Integer

形式参数必须为"数字字符串",否则如果不是数字字符串--->NumberFormatException出现数字格式化异常

public class IntegerDemo2 {
    public static void main(String[] args) {
        //Integer(int value)--->可以将基本类型数据--->Integer
        Integer i = new Integer(100) ; //它和Integer i = 100 ;//不一样
       // Integer ii = 100 ;//左边是Integer引用类型  右边:基本类型100
                // 底层执行的public static Integer valueOf(int i)
        System.out.println(i);
        System.out.println("-------------------------------") ;
        //Integer(String s)throws NumberFormatException
        Integer integer = new Integer("20") ;//数字字符串
        System.out.println(integer); //20
​
    }
}

1.String和int之间的相互转换
int--->String
1)使用字符串拼接符号+ 拼接空字符串""
2)通过int---->Integer的构造方法 Integer(int i)
    Integer的成员方法public String toString() 
3)直接就通过Integer的静态功能
    public static String toString(int i)
String ---> int :直接转换(推荐的方式)
Integer
    1)静态功能public static int parseInt(String str)
   2)String--->Integer--->int
   Integer的构造方法:Integer(String s):s必须为数字字符串,否则出现NumberFormatException
   Integer的成员方法
    int intValue()

Date类

public Date(long date):是字符串日期的文本格式

//Date--->String
    public static String date2String(Date date,String pattern){
        //一步走
        return  new SimpleDateFormat(pattern).format(date) ;
    }
    //String---Date
    public static Date string2Date(String source,String pattern) throws ParseException {
        return new SimpleDateFormat(pattern).parse(source) ;
    }
​

public class DateDemo {
    public static void main(String[] args) throws ParseException {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入你出生日期");
        String s=sc.nextLine();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
        Date date=sdf.parse(s);
        Long l=date. getTime();
        long day=l/86400000;
    System.out.println("你来到这个世界"+day+"天");
    }
}

Character:char类型保证类型

构造方法

Character(char value) 包含 char类型的值

Character类有三个判断判断经常用到

public static boolean isDigit(char ch):是否数字字符

public static boolean isLowerCase(char ch):是否为小写字母字符

public static boolean isUpperCase(char ch):是否为大写字母字符

这篇关于Java高级特性的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!