Java基础-数据类型-面试资料整理

数据类型

八大基本类型

  • 整型
    • byte 1字节
    • short 2字节
    • int 4字节
    • long 8字节
    • Java 没有任何无符号(unsigned) 形式的 int、 long、short 或 byte 类型
  • 浮点型
    • float 4字节
    • double 8字节 绝大部分应用程序都采用double 类型
  • char型 2字节
  • boolean型 1 bit

类型转换

  • 自动类型转换
  • 强制类型转换
    • 将高级变量转换成低级变量时,可能导致溢出或精度的降低。

包装类

  • 六个包装类 Byte Short Integer Long Float Double Charartor Boolean
  • 类型转换方法

  • 拆箱 装箱
    • 装箱过程是通过调用包装器的 valueOf 静态方法实现的
    • 拆箱过程是通过调用包装器实例的 xxxValue 方法实现的

和字符串转换

  • 基本类型转换成字符串类型
    • 包装类 的 toString() 方法
    • String 类的 valueOf() 静态方法
    • 空字符串+一个基本类型变量
  • 字符串转换成基本类型
    • 包装类的 parseXxx 静态方法
    • 包装类的 valueOf() 静态方法

String类

String str1 = 'A'String str2 = new String("A")区别?

  • 当执行第一句话的时候,会在常量池中添加一个新的A字符,str1指向常量池的A
  • 当执行第二句话的时候,因为有new操作符,所以会在堆空间新开辟一块空间用来存储新的String对象,因为此时常量池中已经有了A字符,所以堆中的String对象指向常量池中的A,而str2则指向堆空间中的String对象。

String空判断

  • if(str == null || str.equals(""))
  • if(str == null || str.length() != 0 )
  • if(str == null || str.isEmpty())

String,StringBuilde,StringBufferr区别

  • String声明的是不可变的对象,每次操作都会生成新的对象,然后将指针指向新的对象
  • StringBuilder,StringBuffer可以在原有对象上修改,StringBuider为非线程安全

StringBuffer方法

  • StringBuffer append(String s) 将指定的字符串追加到此字符序列
  • StringBuffer reverse() 将此字符序列用其反转形式取代
  • delete(int start, int end) 移除此序列的子字符串中的字符
  • replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符
  • insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中

String方法

  • int length() 返回此字符串的长度
  • char charAt(int index) 返回指定索引处的字符
  • int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引
  • String substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个子字符串
  • boolean equals(Object anObject) 将此字符串与指定的对象比较
  • boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写
  • int compareTo(String anotherString) 按字典顺序比较两个字符串
  • int compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写
  • String concat(String str) 将指定字符串连接到此字符串的结尾
  • String replace(char oldChar, char newChar) 返回一个新的字符串,newChar替换此字符串中出现的所有oldChar
  • String trim() 返回字符串的副本,忽略前导空白和尾部空白
  • String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串
  • String toUpperCase()/String toLowerCase() 字符串大小写转换

== 和equals区别

  • =1=对于基本类型比较的是值,对于引用类型比较是引用
  • equals 本质上就是==,String和Integer等重写了equals方法,把它变成了值比较

大数计算

jaVa.math 包中的两个很有用的类,可以处理包含任意长度数字序列的数值

  • Biglnteger 实现了任意精度的整数运算
  • BigDecimal 实现了任意精度的浮点数运算

转载于:https://juejin.im/post/5cd22b81f265da037516b8b6

你可能感兴趣的:(Java基础-数据类型-面试资料整理)