java复习知识点

  1. Math类中提供了三个于取整有关的三个方法ceil、floor、round,其中ceil是向上取整,floor是向下取整,round是四舍五入,也就是加0.5
  2. switch括号里面的表达式在java1.6之前是不可以支持String类型的,1.7之后是可以支持 String类型的,但long类型的一直是不可以支持的,必须要转化成int类型。
  3. 重载和重写,也就是Overload和Override,Overload是重载,方法名相同,参数不相同,方法的返回值可以不相同,但是当参数列表相同时,方法的返回值不相同时不能构成方法重载;Override,方法重写,也就是子类覆盖父类的方法,返回值是子类返回值的类型 <=父类返回值的类型,(方法重写一般是用在接口和实现类里面),还有父类的方法为private时,子类不能重写其父类私有的方法。
  4. java常量池不在堆中也不在栈中,是独立存在的内存空间管理。    1.栈:
    存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)    2.堆:存放所有new出来的对象。        3.常量池:存放字符串常量和基本类型常量(public static final).
  5. 
    
    对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才能确定的就存储在堆中。对于equals相等的字符串,在常量池中永远只有一份,在堆中有多份。 
  6. 5.Session将信息保存在服务器上,而Cookie保存在客户端上      Session比Cookie更占资源

    6.java中不能被继承的类有:

java复习知识点

    7.Java中is-a 和has-a 的区别

        1.“is-a”是继承的关系,比如人是动物,人和动物是继承的关系;

        2. "has-a"是聚合的关系,比如人有眼睛,人和眼睛是聚合的关系;

        3. 如果一个类继承自另一个类,那么它们是"is-a"的关系,如果一个类的成员中引用了一个类,那么它们是“has-a”的关系。

        is-a  用于继承

        has-a 是组合  一个类中包含了其它类

    8.线程同步主要是用来解决程序拥堵的状况的,,,,,,,,,线程同步  在同一个线程运行  前面的运行完在运行后面的  有先后顺序                                                                                 线程异步   是几个程序同时运行 CPU会每个程序都运行一遍。

    9.实现线程同步的方法:

        (同步方法)

 即有synchronized关键字修饰的方法。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。
注: synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会锁住整个类。

        (同步代码块)

 即有synchronized关键字修饰的语句块。 被该关键字修饰的语句块会自动被加上内置锁,从而实现同步
    代码如: 
synchronized(object){ 
}

    10.最常用的实现线程的方法有两种,

       (1)继承Thread类,重写run方法,

        使用自定义的线程类 调用构造方法,然后生成对象,调用start 方法,启动线程。
        MyThread myThread = new MyThread();
        myThread.start();
        (2):实现Runnable接口。
        MyRunnable target = new MyRunnable();
        Thread thread = new Thread(target);

        thread.start();

    11.加载.class有以下几种途径:

        从本地直接加载 ;通过网络加载.class文件;从类似于jar,zip等其他文件加载.class文件; 通过动态代理的方式,将原文件编译成.class文件

        java的ClassLoader分为两大类 :java中自带的类加载器(根加载器:将class文件从文件或者本地存储中读取到内存中的过程;扩展类加载器:要加载java中扩展的一些jar包中的文件;应用类加载器:要用来加载一些用户自己写的类的.class文件)

用户自定义的类加载器(加载;连接;初始化)

       今天先到这里  明天继续