首页 > 编程语言 > 详细

JAVA学习笔记(一)

时间:2015-08-11 20:44:30      阅读:190      评论:0      收藏:0      [点我收藏+]

一、JAVA概述

1.编译型语言和解释型语言

2.JAVA先编译成与平台无关的字节码(*.class)文件,然后由JVM(Java Virtual Machine)来解释,最终转换为机器码。

3.不同平台的JVM都是不同的,但提供了相同的接口,达到跨平台目的。

4.JRE:Java Runtime Environment 

 JDK:Java Development Kit

 SDK:Software Development Kit

 

二、基本数据类型和运算符

1.浮点类型默认为double,欲声明float类型需要在后面加F或者f,例如3.4F

  float a = 3.4//出错! 可以强制转换float a = (float)5.6

2.正无穷:POSITIVE_INFINITY  负无穷:NEGATIVE_INFINITY 非数:NaN   只有浮点数除以0才返回无穷,整数/0会抛出异常

3.当一个算术表达式包含多个 类型的值,将发生自动提升,byte short char将提升为int

4.    & 按位与

    | 按位或

    ~ 按位非

    ^ 按位异或:相同返回0,不同返回1

    << :左移补0

    >> :右移补符号位

    >>>:右移补0

5.数在计算机中以补码存在,正数的补码是其本身,负数补码首位为符号位(0正1负),其余的为反码+1(1000 0000B表示-128D)

6.移位char short char 转换为int 再移位

7.&总是计算两边,&&只有左边为true才计算右边

 

三、面对对象

1.valueOf()、toString()之间的调用关系 

  public static String valueOf(Object obj){
   return (obj == null) ? "null" : obj.toString(); }

2.静态成员:有static修饰的成员属于类本身,可以不实例化调用,没有static修饰的成员属于该类的实例

3.static修饰的方法中this无法指向合适的对象(因为该方法属于类本身),所以不能直接访问非静态成员

4.JAVA参数传递为值传递,欲传递引用需创建类

5.封装:讲对象的状态信息隐藏在内部,不允许外部程序直接访问对象内部信息,而是要通过该类所提供的方法来实现内部信息的操作和访问:

  1)隐藏类的实现细节

  2)只能通过预定的方法访问,限制不合理访问

  3)可数据检查,有利于保证对象信息的完整性

  4)便于修改,提高维护性

6.JAVA里面只有单继承,只有一个直接父类,可以有无限间接父类,使用extend关键字

7.重写override,两同两小一大:方法名相同、形参列表相同,返回值类型、抛出异常要比父类小,访问权限要比父类大

 重载overload发生在同一类的多个同名方法之间,而重写发生在父类和子类的同名方法之间

8.super限定调用父类被覆盖的实例方法

class Base{
  public  int a = 5;  
}
class Sub{
   public int a = 7;
   public int access(){
    return super.a;
}
}

9.多态:JAVA的引用变量有两个类型,编译时类型和 运行时类型,如何他们不一样,将出现多态

 条件:1.要有继承

    2.要有重写

    3.父类引用指向子类对象(BaseClass T = new SubClass() ;//T编译时是子类Base,运行时是父类Sub)

10.初始化块也是类成员,总是在构造器之前执行之前执行;静态初始化块(类初始化块)在类初始化阶段就执行,而不是创建对象才执行,所以他比普通初始化块先执行

11. ==和equals方法

  在比较引用类型变量时,只有他们指向同一个对象,==才返回true,而equals()在String中有重写,先比较引用,若返回false再比较字符,完全相等返回true,否则返回false,详见:http://www.cnblogs.com/xudong-bupt/p/3960177.html

12.final修饰

13.抽象类用abstract修饰,不能被实例化,只能被继承,用abstract修饰的方法在子类必须重写

14.static和abstract不能同时修饰某个方法,但可以同时修饰某个内部类

15.接口定义的是一种规范,使用interface关键字,不能包含构造器和初始化块,只能包含静态成员常量、方法(抽象实例方法、类方法、默认方法)、内部类。

  接口所有成员默认都使用public修饰,成员变量默认public static final修饰,普通方法默认public static 修饰,它不能有方法实现,默认方法(defalt)修饰和类方法(static修饰)必须要有方法实现。

public interface Output
{
    // 接口里定义的成员变量只能是常量
    int MAX_CACHE_LINE = 50;
    // 接口里定义的普通方法只能是public的抽象方法
    void out();
    void getData(String msg);
    // 在接口中定义默认方法,需要使用default修饰
    default void print(String... msgs)
    {
        for (String msg : msgs)
        {
            System.out.println(msg);
        }
    }
    // 在接口中定义默认方法,需要使用default修饰
    default void test()
    {
        System.out.println("默认的test()方法");
    }
    // 在接口中定义类方法,需要使用static修饰
    static String staticTest()
    {
        return "接口里的类方法";
    }
}

16.接口完全支持多继承,不能用于创建实例,但可以声明引用变量,然后引用到实现类的对象,例如:

interface A{}
class B implements A{
}
...
A XX = new B();//用接口A声明一个B实例XX

17.接口体现的是一种规范,而抽象类体现的是一种模板式设计

18.内部类:http://www.cnblogs.com/nerxious/archive/2013/01/24/2875649.html

...

未完待续

 

JAVA学习笔记(一)

原文:http://www.cnblogs.com/wangwxyz/p/4721692.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!