黑马程序员—java基础复习—常用对象



------- android培训java培训、期待与您交流! ----------

第一部分、String类

1、概述

      String即字符串,是一个特殊的对象,字符串一旦被初始化就不可以被改变。对String类的任何改变,都是返回一个新的String类对象。这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似。

public class Test{
	public static void main(String args[]){
			String s1="abc";
			String s2=new String("abc");
			String s3="abc";
			
			System.out.println(s1==s2);//false
			System.out.println(s1==s3);//true
			System.out.println(s1.equals(s2));//true
			System.out.println(s1.equals(s3));//true
}
}

       对于初始化s1="abc",s1指向于字符串常量"abc",字符串常量"abc"存在于常量池中;对于s2=new String("abc"),new会重新开辟一个空间用于存放新建的对象"abc",并使s2指向于新建的"abc"对象。对于s3="abc",由于常量池中已经存在常量"abc",故不会再为其开辟新的空间,s3直接执行常量池中的对象"abc"。

       s1==s2为false因为二者指向的不是同一个"abc",s1==s3,为true,二者指向的都是头一个"abc"对象。Object中,equals方法是比较两个对象的地址值是否相同,在String中重写了equals方法,比较的是两个字符串的值是否相同。s1、s2、s3指向的对象值均为"abc",故s1.equals(s2)为true。s2.equals(s3)为true。

2、String常见的方法

       2.1构造方法:

            String():无参构造

            String(byte[]  bytes):  指定byte数组构造一个新String。

            String(byte[]   bytes,String  charsetName):指定byte数组和编码集构造一个新的String。

            String(char[]   value):指定char数组构造一个新的String。

            String(StringBuffer  buffer):新建一个包含字符缓冲区的字符的字符串。

        2.2获取

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

             char  chatAt(int index):根据下标,获取字符串中指定下标位子的字符

              获取制定字符在字符串中的位子

              int   indexOf(int ch):获取制定字符在字符串中第一次出现的下标。没有返回-1

              int   indexOf(int ch,int formIndex):  从指定下标formIndex开始寻找ch在字符中出现的位子,没有返回-1.

              String  substring(int  beginIndex,int  endIndex):返回从beginIndex开始,endIndex-1之间字符组成的子串  

              String   trim():将字符串首位空白去除。

         2.3判断

              int  compareTo(String anotherString):按字典顺序比较两个字符串,不考虑大小写。

              boolean   contains(CharSequence  s):判断该字符串是否包含指定char值

              boolean    endsWith(String  suffix):判断此字符串是否是以字符串suffix结尾。

              boolean    startsWith(String  prefix):判断此字符串是否是以字符串prefix开头。

              boolean    equals(Object  anObject):将字符串与指定对象比较。

              boolean    matches(String regex):判断字符串是否满足指定正则表达式

           2.3转换

               String  concat(String  str):将指定字符串连接到此字符串的结尾

               byte[]   getBytes():将字符串转换为字节数组。

               byte[]   getBytes(String charsetName):使用指定编码将字符串转换为字节数组。

               char[]   toCharArray():将字符串转换为一个新的字符数组。

               String   toLowerCase():将字符串中所有字符转换为小写

               String   toUpperCase():将字符串中所有字符转换为大写

               String   valueOf(八种基本数据类型):将八种基本数据类型转换为字符串。

            2.4替换

                 String   replace(char  oldChar ,  char  newChar)使用新字符newChar替换字符串中所有旧字符oldChar。    

                 String   replaceAll(String regex,String replacement)使用给定的字符串replacement替换所有符合匹配正则表达式的子串。

            2.5切割

                 String[]    split(String  regex):使用匹配给定正则表达式的子串切割字符串

                 String[]    split(String  regex):使用匹配给定正则表达式的子串切割字符串

第二部分、八种基本数据类型对象包装

1、基本数据类型对象的包装类

byte-------Byte       short------Short             int---------Integer      long--------Long       Boolean------Boolean    

float--------Float      double------Double      char---------Character

     对于包装类对象,此时多了一个null,使用数据前要对数据进行非空的判断,否则为空时会出现空指针异常。

2、基本数据类型转换成字符串

      基本数据类型+""

                           例如: String   str=1+"";

      基本数据类型对象.toString(基本数据类型值)

                           例如:Integer.toString(20);将整数20转变为字符串"20"

3、将字符串转换为基本数据类型

               基本数据类型      b=基本数据类型对象.parse基本数据类型对象("基本数据类型");

                             例如:    double  b=Double.parseDouble("23.33");

                                            boolean   b=Boolean.parseBoolean("true");

4、自动装箱、拆箱

        自动装箱:可以把一个基本数据类型直接赋值给对应的包装类。

        自动拆箱:可以把一个包装类对象直接赋值给基本数据类型。

   

Integer i=1;//自动装箱
int  j=i;//自动拆箱
System.out.println("i="+i+";j="+j);

5、注意

       StringInteger都复写了Object中的equals方法,Sting比较的是字符串是否相等,Integer比较的是数值是否相等,而Object比较的是引用在内存中的地址是否相同。==比较的是指向的地址值。

public class Test{
	public static void main(String args[]){
			Integer m=128;
			Integer n=128;
			
			Integer a=127;
			Integer b=127;
			System.out.println("m==n:e"+(m==n));//false
			System.out.println("a==b:"+(a==b));//true
  }
}

        当在数值在byte范围内,一个字节范围(-128—127),如果存在的数值,则补开辟新的空间。m=128,大于128,n=128开辟了新的空间,故m与n的地址值不同。a和b的值为127在一个字节的范围类,故对b复制时b不再开辟新的空间,a和b指向同一个地址值,所以a==b。

 第三部分、其他常用类            

1、System

         A、  System类中的方法和属性都是静态的。

                 out:  标准输入,默认是输出到控制台。

                 in:    标准输入,默认是键盘输入。

        B、系统描述信息的获取与设置   Properties

              Properties是Hashtable的子类,也就是Map集合的一个子类对象,那么可以通过map的方法来获取该集合中的元素,该集合中存储的都是字符串。

2、Calendar

       A、常用方法:

             abstract  void    add(int field,int amount)     根据日历的规则,为给定的日历字段添加或减去指定的时间变量

              static   Calendar    getInstance()       使用默认时区和语言环境获得一个日历

              static   Calender    getInstance(Locale   aLocale)     使用默认时区和指定语言环境得一个日历

              static   Calender     getInstance(TimeZone   zone)     使用指定时区和默认语言环境获得一个日历

              static    Calender    getInstance(TimeZone zone,Locale  aLocale)    使用指定时和语言环境获得一个日历

               int   get(int   field)    返回给定日历字段的值。

              

public class Demo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Calendar c=Calendar.getInstance();
		System.out.println(c.get(Calendar.YEAR)+"年");//获得年
		System.out.println(c.get(Calendar.MONTH)+1+"月");//获得月
		System.out.println(c.get(Calendar.DATE)+"日");//获得日
		c.add(c.YEAR,1);//将年增加一年
		System.out.println(c.get(Calendar.YEAR)+"年");
	}
}
3、Math

                        double d=Math.ceil(13.33);//ceil返回大于指定数据的最小整数
			double d1=Math.floor(22.33);//floor返回小于指定数据的最大数据
			long l=Math.round(23.333);//四舍五入
			double d2=Math.pow(2, 3);//指数





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值