码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA第二周

时间:2015-04-06 14:04:55      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

  一、 第五章 

调试断点debug    

  1、定位逻辑错误(设置断点)    

  2、启动调试    

  3、单步执行,观察变量    

  4、修改

 null与" "是有区别的,后者分配了空间

调用方法  

当一个方法正在执行时,有三种情况  

  1、方法返回一个值  

  2、方法不反回一个值  

  3、方法抛出一个异常给调用者(以后专门讨论)

方法签名  

  方法签名包括访问修饰符、可选修饰符、  方法名、参数列表、返回值的数据类型等信息  

  例如:   public static double random()

访问修饰符

   public、private、protected

可选修饰符  

  static、final、abstract、native、synchronized.  

  用static修饰的方法为静态成员,为类的所有对象共享  

  在静态方法中,只能够直接调用静态成员,不能直接调用非静态成员     

  静态成员的调用,通过类名打点的方式调用  

  在成员方法中(未被static修饰的方法),可以直接调用静态成员与非静态成员  

  形式参数与实际参数 按值调用 方法重载(真他妈机智的方式,也叫做静态的多态)  

  当一个类有两到多个同名但是有不同参数列表的方法时,就是方法重载。  

  重载一个方法,只要方法的形式参数列表对编译器来说是截然不同时,就会方法重载。  

  与参数的类型相关,与名字无关。  

  例如:getDay(int year)与getDay(int day)不是方法重载   

  而println()中如果输入不同的参数就可以调用不同的方法

   构造器  Person someOne = new Person();

   注意:构造方法的名字必须和类名一致,构造方法没有返回类型       

  默认情况下,类中有一个无参构造方法       

  例如:public Person( ){

     }       

  并且我们可以在这个构造方法中初始化数据。       

  除此之外,我们可以创建一个含参数的构造方法。       

  注意:如果我们写出了有参构造器时,系统不会再产生无参构造器,如果要使用,必须自己重新再写。  

  构造器是一个特殊的方法,它在类创建一个实例时被调用执行。  

  构造器的目的是初始化类的实例,使其成为一个有效的状态。  

  只要是一个对象被创建,构造器中再调用同一个类中其他的构造器,用到this语句 (必须要是构造语句中的第一句)。  

  例如:   public Person(int stuNum,char name){

    }   

      public Person(int stuNum,char name,String age){    

        this(stuNum,name);   

      }

比较字符串的大小  

  忽略大小写.equalsIgnoreCase( );    

 

   二、第六章

数组  

  什么是数组? 

   数组是存储在一个连续的内存块中的元素集合     

   数组中的每个元素必须是相同的数据类型,并且通过索引  进行区分。

   数组中的第一个元素的索引为0

 为什么要使用数组?     

  单一值类型变量有时候很难满足应用程序的设计要求。     

  数组类型变量可以同时存储多个同类型基础数据类型变量或对象。

创建数组  

  声明数组      

  int score [];      

  int [] score;//提倡使用的方式  分配空间      

  score = new int [10];(分配空间后,默认的值是0)      

  ArrayIndexOutOfBoundExceotion(数组下标越界)  

  声明并分配空间     

  int [] score = new int [10];

   初始化      

  score [0] = 1;  

  声明、分配空间并初始化      

  int [] score = new int []{1,2,3,4,5};      

   int [] score = {1,2,3,4,5};//不能分开成两条语句

   数组的大小(长度)     

  用到length属性     

  例如:for(int i = 0;i < score.length;i++){    sum += score;    }    

   int avg = sum / score.length;     

  java中的数组是对象

  补充  

  循环结构for each:用于数组或者集合的遍历操作   

  用法:for(单个数据类型  变量 : 数组或集合的名称){

       }   

  例如:   for (int item : score){         sum += score;    }  

  注意:不可以通过item改变数组元素的值

  对象数组/* 难点 */  

  User [] users = new User[100];

  数组拷贝  

  使用Arrays.copyof(oraginalArrays,length)  

  int [] score = new int []{1,2,3,4,5};  

  int [] temp = Arrays.copyof(score,score.length);

  数组的排序(升序)  

  签名  public static void sort(int [] a)

  多维数组  

  arrays[行][列]  

  arrays.length 的结果值是行数  

  arrays[0].length的结果是列数  

  如何遍历?  

  for (int [] is : arr){  

     for(int [] i : is){

      }      

   }  

 

  三、JVM  

java程序运行在JVM上  

JVM是java程序和操作系统之间的桥梁  

JVM实现了java的平台无关性  

JVM是内存分配原理的基础与前提

内存分配  

——寄存器     

  JVM内部虚拟寄存器,存取速度非常快,程序不可控制  

——栈(First in,last out)     

  保存局部变量的值,包括:

    1、用来保存基本数据类型;     

    2、保存类的实例(即堆区对象)的引用(指针)  

——堆     

  用来存放动态产生的数据,比如new出来的对象。  

  注意创建出来的对象只包含属于各自成员变量,并不包含成员方法。  

  因为同一个类的对象拥有各自的成员变量,存储在各自的堆中。

——java运行过程涉及的内存区域     

  1、常量池           

    常量池就是这个类型用到的常量的一个有序集合   

例如字符串的创建    

  String str = "abc";    

    这里是在常量池中查找或者创建abc,再由栈引用常量池中的值   

    而String str2 = new String("abc");(这儿会创建两个对象,分别在堆和常量池中)    

    先在堆中拷贝下常量池中的值,再由栈引用堆中的值   

    注意: System.out.println(str == str2);比较的是地址的值,返回false;         

  2、代码段     

  3、数据段  

字符串常用的方法

 测试后缀名字是否相同  

  public boolean endswith(String suffix);

 返回指定字符在此字符串中第一次出现的索引  

  public int indexOf(int ch);

  返回值是否为空

   public boolean isEmpty();  

       当且仅当length()为0时返回true.

  分割字符串  

  public String[] split (String regex);  

  Regex  

结果  :     { "boo", "and", "foo" }

    o  { "b", "", ":and:f" }

  返回一个新的字符串,它是此字符串的一个子字符串。

  该子字符串从指定索引处的字符开始, 直到此字符串末尾。

     public String substring(int beginIndex);     

    示例:  

       "unhappy".substring(2) returns "happy"   

      "Harbison".substring(3) returns "bison"   

      "emptiness".substring(9) returns "" (an empty string)

使用默认语言环境的规则

  将此 String 中的所有字符都转换为小写

     public String toLowerCase();

  使用默认语言环境的规则将此

  String 中的所有字符都转换为大写  

    public String toUpperCase();

  返回字符串的副本,忽略前导空白和尾部空白(去掉前后空格)  

    public String trim();

 字符串的拼接  

  String name = "张三";  

  String address = "成都";  

  String infor = name + address;    

  StringBuilder = new StringBuilder();  

 

    四、补充

在字符串中,length是一个属性,后面不加括号  

而在求字符串的长度的时候,调用的是一个方法,length后面要加括号

 访问修饰符    

        本类 同一包中不同类 不同包 子类  

public         ?           ?               ?       ?

protected    ?           ?                       ?  

default        ?           ?  

private        ?   

注:?表示可以使用

JAVA第二周

标签:

原文地址:http://www.cnblogs.com/lightskyblue/p/4395783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!