8.常用类
相关类:
- 包装类(重点)
- String类
- StringBuffer类
- StringBuild类(重点)
- System类
- Date类
- SimpleDateFormat类
- Calendar类
- Math类
- BigInteger类与BigDecimal类
8.1 包装类
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
基本数据类型---->包装类:
- 手工装箱:Integer t1 = new Integer(i);
- 自动装箱:Integer t2 = 10;
包装类---->基本数据类型:
- boolean a = obj.booleanValue();
- boolean b = obj;
字符串---->基本数据类型:
- 通过包装类的构造器实现:int i = new Integer(“12”);
- 通过包装类的parseXxx(String s)静态方法:int i = Integer.parseInt(“12”);
基本数据类型---->字符串:
- 调用字符串重载的valueOf()方法:String str = String.valueOf(12);
- 直接方式:String str = “” + 12;
JDK 1.5之后支持自动装箱、自动拆箱,前提是类型必须匹配
8.2 字符串相关类
**String类:**构造字符串对象
String类常用构造方法:
- String s1 = new String();
- String s2 = new String(String original);
- String s3 = new String(char[] a);
- String s4 = new String(char[] a, int startIndex, int count);
String字符串:
-
String是一个final类,代表不可变的字符序列,内容不可改变的Unicode字符序列
-
任何改变字符串内容都会产生新的对象,不适用于频繁修改
String方法:
- public int length();
- public char charAt(int index);
- public char[] toCharArray();
- public boolean equals(Object anObject);
- public int compareTo(String anotherString);
- public int indexOf(String s);
- public int indexOf(String s ,int startpoint);
- public int lastIndexOf(String s);
- public int lastIndexOf(String s ,int startpoint);
- public boolean startsWith(String prefix);
- public boolean endsWith(String suffix);
- public String substring(int start,int end);
- public String substring(int startpoint);
- public String replace(char oldChar,char newChar);
- public String replaceAll(String old,String new);
- public String trim();
- public String concat(String str);
- public String toUpperCase();
- public String toLowerCase();
- public String[] split(String regex)
StringBuffer类:
- java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删
- 很多方法与String相同,但StingBuffer是可变长度的
- StringBuffer是一个容器
StringBuffer类的三个构造方法:
- StringBuffer()初始容量为16的字符串缓冲区
- StringBuffer(int size)构造指定容量的字符串缓冲区
- StringBuffer(String str)将内容初始化为指定字符串内容
StringBuffer类的常用方法:
- StringBuffer append(String s);
- StringBuffer append(int n) ;
- StringBuffer append(Object o) ;
- StringBuffer append(char n);
- StringBuffer append(long n);
- StringBuffer append(boolean n);
- StringBuffer insert(int index, String str);
- public StringBuffer reverse() ;
- StringBuffer delete(int startIndex, int endIndex);
- public char charAt(int n );
- public void setCharAt(int n ,char ch);
- StringBuffer replace( int startIndex ,int endIndex, String str);
- public int indexOf(String str);
- public String substring(int start,int end);
- public int length()
**StringBuilder类:**StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且方法也一样
StringBuilder是JDK1.5 以后出的,效率更高
三者的区别:
- String:不可变字符序列
- StringBuffer:可变字符序列、效率低、线程安全
- StringBuilder(JDK1.5):可变字符序列、效率高、线程不安全
8.3 日期类
1. java.lang.System类
currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
2. java.util.Date类
date类的构造方法:
- Date( )使用Date类的无参数构造方法创建的对象可以获取本地当前时间
- Date(long date)
常用方法:
- getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数
- toString():把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准
**java.text.SimpleDateFormat类:**java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类
3. java.util.Calendar(日历)类:
Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能
获取Calendar实例的方法:
- 使用Calendar.getInstance()方法
- 调用它的子类GregorianCalendar的构造器
新时间日期API:
Java 8 新的 java.time 中包含了所有关于时钟(Clock),本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类
使用 LocalDate、LocalTime、LocalDateTime:LocalDate、LocalTime、LocalDateTime 类的实例是不可变的对象
解析与格式化:
java.time.format.DateTimeFormatter 类三种格式化方法:
-
预定义的标准格式
-
语言环境相关的格式
-
自定义的格式
8.4 Math类
java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型
- abs 绝对值
- acos,asin,atan,cos,sin,tan 三角函数
- sqrt 平方根
- pow(double a,doble b) a的b次幂
- log 自然对数
- exp e为底指数
- max(double a,double b)
- min(double a,double b)
- random() 返回0.0到1.0的随机数
- long round(double a) double型数据a转换为long型(四舍五入)
- toDegrees(double angrad) 弧度—>角度
- toRadians(double angdeg) 角度—>弧度
8.5 BigInteger类:
Integer类作为int的包装类,能存储的最大整型值为2^31−1
BigInteger类的数字范围可以支持任意精度的整数
**构造器:**BigInteger(Stringval)
常用方法:
- public BigInteger abs()
- public BigInteger add(BigIntegerval)
- public BigInteger subtract(BigIntegerval)
- public BigInteger multiply(BigIntegerval)
- public BigInteger divide(BigIntegerval)
- public BigInteger remainder(BigIntegerval)
- public BigInteger pow(int exponent)
- public BigInteger[] divideAndRemainder(BigIntegerval)
8.6 BigDecimal类:
科学、工程计算:Float、Double
商业计算:BigDecimal,BigDecimal类支持任何精度的定点数
构造器:
- public BigDecimal(double val)
- public BigDecimal(String val)
常用方法:
- public BigDecimal add(BigDecimal augend)
- public BigDecimal subtract(BigDecimal subtrahend)
- public BigDecimal multiply(BigDecimal multiplicand)
- public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)