A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 664941114 中级黑马   /  2016-7-19 20:52  /  301 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.字符串类:String
  a.特点:
     1.所有的字符串常量("abc","def")都是String的类对象  
     2.字符串的字面值在创建之后不能更改

       String str="abc";
       str="def";//这里改变的是str指向的字符串对象的地址值
  b.功能:
     1.转换功能:
        toUpperCase();//转换大写
        toLowerCase();//转换小写
        toCharArray();//"abc".charArray()=>{'a','b','c'}   
     2.获取功能:
        length();//获取字符串长度
        trim()://去除字符串两端空白
        substring(int begin,int end)//截取[begin,end-1]的字符
        indexOf(String str)//"abcd".indexOf("bc")//1
                           //"abcd".indexOf("e")//-1

        charAt(int index)//"abcde".charAt(3)//d

     3.判断功能:
        contains()//判断大串是否包含小串
2.基本类型包装类
a. int  Integer
  char Character
  byte Byte
  long Long
  float Float
  double Double
  boolean Boolean   

  包装类中都有一个将字符串转换为基本数据类型的静态的方法:parseXXX()
  但是Character没有parseChar方法  
b.JDK1.5以上支持:装箱与拆箱:
   装箱:基本数据类型转换为该基本数据类型对应的包装类 例如:int-->Integer
   拆箱:该基本数据类型对应的包装类转换为基本数据类型 例如:Integer-->int
        如果参与数学运算,需要将包装类拆箱成基本类型

   例如:
     Integer i=12;//Integer i=new Integer(12);
     i+=12;//i=i+12;//由于要参与数学运算,因此先把i指向的Integer对象拆箱成12
                    //i=12+12(24)
                     //由于i是Integer类型,不能直接赋值一个基本数据类型的值
                    //需要将24装箱,new Integer(24)把Integer对象地址给了i
c.装箱缓存机制:
  如果装箱的数值在1byte范围(-128~127),同一个数值装箱将使用同一个对象
   Integer i=127;//Integer i=new Integer(127);
   Integer j=127;//i和j都指向new Integer(127);
   System.out.println(i==j);//true

3.构造代码块与静态代码块
  public class BlockDemo {
          private static final String RESTAURANT = "牛肉汤";
          static {
                  System.out.println("静态代码块被执行");
          }

          {
                  System.out.println("我是构造代码块");

          }

          public static void main(String[] args) {
                  /*
                   * 静态代码块随着类的加载而执行,并且只执行一次 构造代码块仅在创建该类对象的时候被执行,创建几次对象,就执行几次
                   * JVM中同名的(完全限定名:包名+类名)类只有一份
                   */
                  System.out.println(BlockDemo.RESTAURANT);

                  new BlockDemo();
                  new BlockDemo();

          }

  }

4.四大皆空:
         public class AllNull {
          
                 public static void main(String[] args) {
                        
                         //第一空:局部变量未初始化不能直接使用
         //                int i;
         //                System.out.println(i);
                        
                         //第二空:有变量,变量有值,但是值为null。   变量可以被打印!但是不能调用方法,会出现运行时异常空指针异常NullPointerException
                         int[] arr=null;
                         arr[0]=3;//运行时报空指针异常
                          String s = null;
                      System.out.println(s);//当s被传递的时候,已经确定参数的类型为String
                                            //所以编译器回去调用println(String)
         //                System.out.println(s.length());
                        
                         //第三空:""也是一个字符串对象,因此可以使用String类所有方法
         //                String s = new String();
         //                String s = "";
         //                System.out.println(s);
         //                System.out.println(s.length());
         //                System.out.println(s.isEmpty());//true
                        
                         //第四空:
                         //null可以被任意引用类型接收,而println()方法底层有大量的重载方法(println(char[]),println(String))
                         //而这些重载方法的参数类型都是引用数据类型,都可以接收null,所以编译器无法确定调用哪个方法,所以编译报错
          //    System.out.println(null);
                      System.out.println(method());
            //    System.out.println(method2());//无返回值不能打印,没有意义直接编译报错
         
                
                 public static int method() {
                         return 1;
                 }
                 public static void method2() {
                        
                 }
         }


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马