黑马程序员---常见对象

------<a href=" http://www.itheima.com " target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

Object:

    类 Object 是类层次结构的根类。每个类都使用 Object 作为超类,祖宗类

构造方法:

    Object() 空参数构造方法

 方法:

  protected Object clone()  创建并返回此对象的一个副本

  protected void finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

  public int hashCode() 返回该对象的哈希码值 

  public final Class getClass()返回此 Object 的运行时类

  public String toString()返回该对象的字符串表示

  public boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。

  == 与 equals的区别?
       == : 

            比较的基本数据类型: 比较的是数据的值是否相等

            比较的引用数据类型:比较的是哈希码值是否相等 
       equals:

            比较引用数据类型: 比较两个对象的内容是否相等

            默认的比较方式,采用的哈希码值比较,这种比较不是我们想要的

            建议所有的子类都重写此方法

Scanner:

 构造方法:

  public Scanner(InputStream source)

 方法:

  public int nextXxx(Xxx radix):

   获取Xxx类型的键盘录入的数据, Xxx代表各种基本数据类型

  public boolean hasNextXxx():

   判断键盘输入的数据是否为Xxx类型的数据

 

String:字符串的类类型。

多个字符组成的一个序列,叫字符串。

生活中很多数据的描述都采用的是字符串的。而且我们还会对其进行操作。所以,java就提供了这样的一个类供我们使用。

 特点:一旦被初始化就不可以被改变。

 构造方法:

  public String(): 空参数构造方法

举例:

  String s = new String();

  s = "hello";

  sop(s);

public String(byte[] bytes) 把字节数组 转换成字符串

举例

  byte[] bys = {97,98,99,100,101};

  String s = new String(bys);

  sop(s);

public String(byte[] bytes, int startIndex, int length) 把字节数组一部分 转换成字符串

举例

  byte[] bys = {97,98,99,100,101};

  String s = new String(bys,1,2);

  sop(s);

public String(char[] value) 把字符数组 转换成字符串

举例

  char[] chs = {'a','b','c','d','e'};

  String s = new String(chs);

  sop(s);

public String(char[] value, int startIndex, int count)把字符数组一部分 转换成字符串

举例

  char[] chs = {'a','b','c','d','e'};

  String s = new String(chs,1,2);

  sop(s);

public String(String original) 把字符串 转换成 字符串对象

举例

  String s = "hello";

  sop(s);

1、问String s = new String("hello");创建了几个对象。

  两个。一个"hello"字符串对象,在方法区的常量池;一个s对象,在栈内存。

2、请写出下面的结果

  String s1 = new String("abc");

  Strign s2 = new String("abc");

  String s3 = "abc";

  String s4 = "abc";

  sop(s1==s2);  //false

  sop(s1==s3);  //false

  sop(s3==s4);  //true

3、:字符串对象一旦被创建就不能被改变。

指的是字符串常量值不改变。

方法:

  判断功能:

   boolean equals(Object obj):判断两个字符串内容是否相等,重写了Object类中的equals方法

   boolean equalsIgnoreCase(String str):判断两个字符串内容是否相等,忽略大小写

   boolean contains(String str): 判断当前字符串 是否包含 给定的字符串

   boolean startsWith(String str): 判断当前字符串 是否以给定的字符串开头

   boolean endsWith(String str) : 判断当前字符串 是否以给定的字符串结束

   boolean isEmpty(): 判断当前字符串是否为 空字符串   ,  " " 空字符串


 获取功能:

  int length() : 获取当前字符串的长度

  char charAt(int index): 获取当前字符串中,给定索引位置对应的字符

  int indexOf(int ch) : 获取当前字符串中, 给定的字符第一次出现的位置,没有找到返回-1

  int indexOf(String str): 获取当前字符串中, 给定的字符串第一次出现的位置,没有找到返回-1

  int indexOf(int ch,int fromIndex)从指定的位置开始, 获取当前字符串中, 给定的字符第一次出现的位置,没有找到返回-1

  int indexOf(String str,int fromIndex)从指定的位置开始,获取当前字符串中, 给定的字符串第一次出现的位置,没有找到返回-1

  String substring(int start) 从指定的位置开始,截取当前字符串到末尾,返回一个新的字符串

  String substring(int start,int end)从指定位置开始,到指定位置结束,截取当前字符串,返回一个新的字符串

 

 转换功能:

  byte[] getBytes() 把当前字符串 转换成 字节数组 

  char[] toCharArray() 把当前字符串转换成 字符数组

  static String valueOf(char[] chs) 静态方法,把给定的字符数组 转换成字符串

  static String valueOf(int i) 静态方法,把基本数据类型 转换成 字符串

  String toLowerCase() 把当前字符串全部转换为 小写字母

  String toUpperCase() 把当前字符串全部转换为 大写字母

  String concat(String str) 把当前字符串 与 给定的字符串进行 拼接

 

 替换功能

  String replace(char old,char new) 把当前字符串中,给定的旧字符,用新字符替换

  String replace(String old,String new) 把当前字符串中,给定的旧字符串,用新字符串替换

  

去除字符串两端空格 

  String trim()


 按自然顺序比较两个字符串 

  int compareTo(String str) 比较字符串的大小

  int compareToIgnoreCase(String str)  比较字符串的大小,忽略大小写



StringBuffer:字符串缓冲区,是一个容器。

特点:线程安全的可变字符序列。------代码安全,不会出错,代码的执行效率低。



构造方法:

public  StringBuffer()容量16个字符


方法:

public int capacity()返回当前容量

public int length()返回长度(实际使用的空间)


构造方法:

public  StringBuffer(int capacity)构造一个不带字符的字符缓冲区,但指定容量;

public  StringBuffer(String str)创建一个带字符的字符缓冲区,容量为16加字符串的长度


方法:

添加方法:

public StringBuffer append()追加,在原有数据的基础上,添加新数据

将指定的参数类型数据[任意类型数据],添加到当前的字符串缓冲区对象中,返回当前字符串缓冲区对象

public StringBuffer insert()在原有基础上插入新数据

在指定的位置上,插入到当前的字符串缓冲区对象中,返回当前字符串缓冲区对象


删除方法:

public StringBuffer deleteCharAt(int index)

把指定位置上的数据,把当前的字符串缓冲区对象删除,返回当前的字符串缓冲区对象;

public StringBuffer delete(int start,int end)包左不包右

从指定位置开始,到指定位置结束,在当前字符串对象缓冲区对象删除,返回当前的字符串缓冲区对象;


替换功能:public StringBuffer replace(int start,int end,String str)包左不包右

从指定位置开始,到指定位置结束,用给定的字符串,将字符串缓冲区中的数据替换,返回当前的字符串缓冲区对象

反转功能:public StringBuffer reverse()反转,返回的是当前字符串缓冲区对象


截取功能 :返回的是String类型,本身没有发生改变。

public String subString(int start)

从指定位置开始,到结尾结束,截取该字符串缓冲区的数据,返回的是String类型。

public String subString(int start,int end)

从指定位置开始,到指定位置结束,截取该字符串缓冲区的数据,返回的是String类型

字符串和StringBuffer的转换

String-->StringBuffer通过构造:

如:StringBuffer sb = new StringBuffer(String str)

StringBuffer--String通过toString方法 

如:StringBuffer sb = new StringBuffer();

   sb.toString();

StringBuilder

和StringBuffer的功能是一样的,但是有区别:

StringBuffer(JDK1.0)是线程安全的。

StringBuilder(JDK1.5)不保证线程安全。

 一般来说,我们写的程序都是单线程的,所以,用StringBuilder,效率高。

StringBuilder、StringBuffer、String的区别

String:长度固定,内容不可变;

StringBuffer:长度可变,内容可变,线程同步,代码运行安全,效率低

StringBuilder:长度可变,内容可变,线程不同步,代码运行有隐患,效率高


java参数传递:

传递基本类型:形式参数的改变对实际参数没有影响;

传递引用类型:形式参数的改变对实际参数有影响;

String作为参数传递:形式参数的改变对实际参数没有影响,因为String是一个常量;

StringBuffer作为参数传递:形式参数的改变对实际参数有影响。


基本数据类型包装类

  基本类型   包装类

  byte       Byte

  short      Short

  int        Integer 特殊

  long       Long

  float      Float

  double     Double

  char       Character 特殊

  boolean    Boolean

 

Integer:

 构造方法:

  public Integer(int value)构造一个新分配的 Integer 对象,它表示指定的 int 值。  把int基本类型数据 封装成 对象

  public Integer(String s)构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。理解为: 把多个数字字符 转换为 Integer对象

  

 方法:

  String类方法

  public static String valueOf(int i)(记住) 返回 int 参数的字符串表示形式。

 

  Integer类方法

  public static String toString(int i)

  public int intValue()

  public static int parseInt(String s) (记住) 

  public static Integer valueOf(String s)

  

 自动装箱:int --> Integer

    把基本数据类型 封装成对象

 自动拆箱:Integer --> int

    把对象 还原成 基本数据类型

类型转换

int --> Integer

  int num = 20;

   A:Integer i = new Integer(num);

   B:Integer i = Integer.valueOf(num);

Integer --> int

 Integer i = new Integer(20);

  A:int num = i.intValue();

int --> String

 int num = 20;

  A:String s = String.valueOf(num);

  B:String s = ""+num;

  C:String s = Integer.toString(num);

String --> int

  String s = "20";

   A:int num = Integer.parseInt(s);

   B:Integer i = new Integer(s);或者Integer i = Integer.valueOf(s);

   int num = i.intValue();

Character:

 public static boolean isDigit(char ch)  确定指定字符是否为数字。

 public static boolean isLowerCase(char ch)确定指定字符是否为小写字母。

 public static boolean isUpperCase(char ch)确定指定字符是否为大写字母。

 public static boolean isLetter(char ch)确定指定字符是否为字母。


正则表达式:是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。

正则表达式语法规则:

  字符 (一个字符)

    x 字符 x , x任意字符  

          如:a代表字符a, b代表字符b  

    \x 转义字符  ,x任意字符

    \\反斜线字符  ,代表就是一个 \

    \t  制表符  Tab键

    \n 新行(换行)符

    \r 回车符 

   

  字符类(多个字符)

   [abc] 代表 a、b 或 c中的其中一个字符

   [^abc] 任何字符,除了 a、b 或 c(否定)

   [a-z] 代表 字符a 到 字符z 之间的任意字符

   [a-zA-Z] 代表所有字母中的一个

   [0-9] 代表 0-9之间的一个数字

   

  预定义字符类:

   . 代表任何的一个字符

    就是表示一个.怎么办? \. 

   

   \w 单词字符:[a-zA-Z_0-9]

   \d 数字:[0-9]

   

  边界匹配器

   ^ 行的开头

   $ 行的结尾  

   \b 单词边界  代表不是单词字符的字符,就是单词边界


  Greedy 数量词

   注意: 这里的X 可以代表一个字符,也可以代表一组字符(字符串)


   X? 代表X所代表的字符,出现一次或一次也没有

   X 代表X所代表的字符,出现零次或多次

   X+ 代表X所代表的字符,出现一次或多次

   X{n} 代表X所代表的字符,出现恰好 n 次

   X{n,} 代表X所代表的字符,出现至少 n 次

   X{n,m} 代表X所代表的字符,出现至少 n 次,但是不超过 m 次

 

 方法:

  public boolean matches(String regex)告知此字符串是否匹配给定的正则表达式。

  public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串

  public String replaceAll(String regex,String replacement)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。


Pattern:

  public static Pattern compile(String regex)将给定的正则表达式编译到模式中。

  public Matcher matcher(CharSequence input)创建匹配给定输入与此模式的匹配器。


Matcher:

  public boolean find()尝试查找与该模式匹配的输入序列的下一个子序列。

    相当于hasNextXxx() -- 判断是否有满足条件的数据

  public String group()返回由以前匹配操作所匹配的输入子序列。

    相当于 nextXxx() -- 获取满足条件的数据

  

Math

   字段:

    public static final double E 比任何其他值都更接近 e(即自然对数的底数)的 double 值。

    public static final double PI 比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。

 方法:

    public static double abs(double a) 返回 double 值的绝对值

    public static double cbrt(double a)返回 double 值的立方根


    public static double ceil(double a)返回比double 值大的最小整数

    public static double floor(double a)返回比double 值小的最大整数

    public static double max(double a, double b)返回两个 double 值中较大的一个

    public static long round(double a) 四舍五入, 取整

    public static double sqrt(double a)返回正确舍入的 double 值的正平方根

  

Random:

 构造方法:

  public Random()创建一个新的随机数生成器对象, 默认的种子是当前系统时间的毫秒值

  public Random(long seed)使用单个 long 种子创建一个新的随机数生成器。如果种子相同,每次得到随机数相同

 方法:

  public int nextInt()int范围内的随机数

  public int nextInt(int n)在0-n之间的随机数

 

System:

 public static void gc()运行垃圾回收器

 public static void exit(int status) 退出正在运行的Java虚拟机

 public static long currentTimeMillis()获得当前时间的毫秒值  (1970年1月1日 00:00:00 到当前时间之间的毫秒差值)

 public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length) 数组复制

    参数1:         Object src  源数组

    参数2:         int srcPos  从源数组中的哪个位置开始复制元素

    参数3:         Object dest  目的地 数组

    参数4:         int destPos 复制到目的地数组的哪位位置上

    参数5:         需要在源数组中复制几个元素


BigInteger:

 public BigInteger add(BigInteger val) 加法

 public BigInteger subtract(BigInteger val) 减法

 public BigInteger multiply(BigInteger val) 乘法

 public BigInteger divide(BigInteger val) 除法

 public BigInteger[] divideAndRemainder(BigInteger val) 取商+余数


BigDecimal:

 public BigDecimal add(BigDecimal augend) 加法

 public BigDecimal subtract(BigDecimal subtrahend) 减法

 public BigDecimal multiply(BigDecimal multiplicand) 乘法

 public BigDecimal divide(BigDecimal divisor)除法

 public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)除法,保留指定位数的小数,指定进位方式



  




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值