java基础

来源:互联网 发布:淘宝网童装购物街 编辑:程序博客网 时间:2024/06/05 06:02

基本数据类型

  • 整数类型:byte(1字节),short(2字节),int(4字节),long(8字节)
  • 浮点类型:float,double
  • 字符类型:char(2字节)
  • 布尔类型:boolean

注:在java中小数默认是double类型的

string不是基本数据类型,它是一个类

不同精度数据运算时低精度数据会自动向高精度转换

分支控制

switch(条件表达式){

case 常量1:语句;break;

case 常量2:语句;break;

...

default:语句;break;

}

注:条件表达式数据类型应和case后的常量类型一致

switch中可用的数据类型主要是:byte,short,int,char,enum

面向对象

概念:

  • 定义一个类:类名的首字母一般大写
  • 引用类型:指向一个对象,不是原始值,指向对象的变量是引用变量
  • 构造方法:

方法名和类名相同;

没有返回值

一般用于初始化对象

一个类可以有多个不同的构造放法

每个类都有自己的默认构造方法,当用户定义自己的构造方法后,默认构造方法会被覆盖而失效

  • 特征:抽象,封装,继承,多态
  • this:java虚拟机会给每个对象分配this,代表当前对象。只能在类定义的方法中使用,不能在外部使用
  • 类变量:一个类所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的方法去修改它时,修改的也是同一个变量

定义语法:访问修饰符 static 数据类型 变量名

访问类变量:类名 . 类变量名 或 对象名 . 类变量名

package demo1;

public class test_static
{

    /**
     * @param args
     */
    static int i = 1;
    
    static {
        //该静态区域块存在于代码区,在类定义的时候就会执行,并且只执行一次
        i++;
    }
    
    public test_static() {
        i++;
    }
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        test_static teStatic1 = new test_static();
        System.out.println(teStatic1.i);     //输出为 3
        test_static teStatic2 = new test_static();
        System.out.println(teStatic2.i);     //输出为 4
        
    }

}

  • 类方法:属于一个类的

形式:访问修饰符 static 数据返回值类型 方法名(){}

使用:类名 . 类方法名  或  对象名 . 方法名

注:类方法中不能访问非静态变量(类变量)

  • 访问控制修饰符


  • 方法重载:的同一种功能的多种实现方式,到底采用哪种方式取决于调研者给出的参数

注:方法名要相同

        方法的参数类型,个数,顺序至少有一项不同

       方法返回值类型可以不同(如果只是返回值类型不同,不能构成重载)

       方法的修饰符可以不同 (如果只是访问修饰符不同,不能构成重载)

  • 方法覆盖:子类有一个方法和父类的某个方法的名称,返回类型,参数一样,那么就说子类的这个方法覆盖了父类的那个方法

注:子类的方法的返回类型,参数,方法名称,要和父类方法的返回类型,参数,方法名称完全相同

         子类方法不能缩小父类方法的访问权限

  • 多态:通过指向父类的引用调用的它不同子类的方法

注:父类的引用变量可以指向它的子类的实例对象  如:Animal animal = new Cat();这种转换是自动完成的

  • 接口:接口不能被实例化

接口中所有的方法都不能有主体

一个类可以实现多个接口

接口中可以有变量,但变量不能用private 和 protected 修饰

接口中的变量,本质上是static 的,不管你加不加static修饰符,而且是final类型的,必须初始化

在java开发中,经常把常用的变量定义在接口中,作为全局变量使用        访问形式:接口名 .变量名

一个接口不能继承其他的类,但可以继承别的接口

  • final:可以修饰变量或者方法

当不希望父类的某个方法被子类覆盖时,可以用 final 关键字修饰

当不希望类的某个变量被修改,可以用 final 修饰,如果一个变量是 final 类型的,定义的时候必须赋初值

当不希望类被继承时,可以用 final 修饰

集合

  • List结构:ArrayList类,LinkedList类,Vector类,Stack类

Map结构:HashMap类,Hashtable类

Set结构:HashSet类,TreeSet类

Queue结构:Queue接口

  • HashMap

遍历:

//Iterator 迭代器

Iterator it = map.keySet().iterator();

while(it.hasNext())

{

String key = it.next().toString();

Emp emp = (Emp)map.get(key);

}

  • HashMap 和 Hashtable 的区别

Hashtable 是基于Dictionary 类的, HashMap 是基于Map 接口的

Hashtable 是同步的,这个类的一些方法保证了Hashtable 中的对象时线程安全的。 而 HashMap 是异步的,因此HashMap 中的对象并不是线程安全的。

HashMap 可以将空值作为一个表的条目的 key 或 value , 但是Hashtable 是不能放入空值(null)的。

  • ArrayList 和  Vector 的区别

Vector 是同步的,ArrayList 是异步的

数据增长时,Vector 自动增长原来一倍的数组长度,ArrayList 是原来的一半,所以保持大量数据时,Vector更有优


0 0
原创粉丝点击