Java基础知识 1

1 面向对象

特点:封装、继承、多态、抽象
过程是函数,对象就是将函数等一些内容进行封装
定义类:定义成员变量和成员函数
成员变量:对应事物的属性
  存储数据,通常私有化,提供公共的访问方法(setXXX(),getXXX())
成员函数:对应事物的行为
主函数:保证所在类的独立运行,是程序的入口,被jvm调用
成员变量和局部变量:
  1)成员变量直接定义在类中,局部变量定义在方法中
  2)成员变量在该类中有效,局部变量在自己所属大括号内有效
  3)成员变量存在于堆内存中,随对象产生而产生、消失而消失,
   局部变量存在于栈内存中,随所属区域的运行而存在、结束而释放
构造函数:用于给对象初始化,函数中的一种;
  1)函数名和所在类名 相同
  2)不需要定义返回值类型
  3)没有具体返回值
  所有对象创建时,都需要初始化才可以使用;如果没有,会默认生成一个空参数的构造函数
  一个类可以有多个构造函数,函数名相同,而参数列表不同,是以函数重载体现的
构造函数和一般函数:
  1)定义格式不同
  2)构造函数在对象创建时就被调用,用于初始化,而且初始化动作只执行一次;
   一般函数是对象创建后,需要调用才执行,可以被调用多次
构造代码块和构造函数的区别:
  构造代码块:是给所有的对象进行初始化,也就是说,所有的对象都会调用这个代码块。只要对象一建立,就会调用这个代码块。
  构造函数:是给与之对应的对象进行初始化,具有针对性。
创建对象在内存中做了什么:  

2 封装

含义和原则:隐藏对象的属性和实现细节,仅对外提供公共访问方式 
好处:将变化隔离;便于使用;提高重用性;安全性
this:

static:

特点

3 设计模式

单例模式:保证一个类只有一个实例,并提供被访问的方法
  实现单例模式:饿汉式和懒汉式(区别 http://wenku.baidu.com/view/6a8b52f10242a8956bece4aa.html)    
//饿汉式:预先加载类对象
class Sigle{
    private Single(){}     //私有化构造函数
    private static Single s=new Single();   //创建私有并静态的本类对象
    public static Single getInstance(){  //定义公有并静态的方法,返回该对象
        return s;
}
}

//懒汉式:延迟加载类对象
class Sigle{
    private Single(){}     
   private static Single s=null;   
   public static Single getInstance(){  
        if (s==null)
                s=new Single();
        return s;
}
}

4 继承

继承特点
super
final

4 抽象类 abstract

特点:
解决的问题:当功能内部一部分实现时确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。
abstract class GetTime{   
    public final void getTime(){ //此功能如果不需要复写,可加final限定   
        long start = System.currentTimeMillis();   
            code(); //不确定的功能部分,提取出来,通过抽象方法实现   
        long end = System.currentTimeMillis();    
            System.out.println("毫秒是:"+(end-start));  
    }   
    public abstract void code(); //抽象不确定的功能,让子类复写实现 
}  

class SubDemo extends GetTime{   
    public void code(){ //子类复写功能方法   
        for(int y=0; y<1000; y++){    
                System.out.println("y");  
             }  
       } 
}

5 接口 interface

类与类存在继承关系,继承用extends;类与接口存在实现关系,实现用implements

6 多态

特点

7 对象Object

特点

8 内部类

直接定义在类B中的类A。A可以直接访问外部类B的成员变量,外部类B可以建立内部类A的对象来访问内部类。

9 异常

程序运行不正常的情况;将之封装成对象。
问题包括问题产生的原因、问题的名称、问题的描述等问属性信息。
异常就是java按照面向对象的思想将问题进行对象封装,方便操作和处理。
常见异常:
  越界异常:IndexOutOfBoundsException,包括数组、字符串
  空指针异常:NullPointerException
  类型转换异常:ClassCastException
  空元素异常
  不支持操作异常
——java.lang.Throwable:
  |Error:错误,一般不进行处理,通常是jvm发生的,需要对程序进行修正
  |Exception:异常,可有针对性的处理方式
特点:可抛性 throwable
关键词:throws throw
class ExceptionDemo{
       public static void main(String[] args){
                byte[] buf=new byte[1024*1024*700];  //java.lang.OutOfMemoryError 内存溢出错误
        }
}
当定义功能(函数)时,如果发现可能会出现一些问题,就通过抛出异常给出预处理方式。
格式:
  try{需要被检测的代码}
  catch(异常名 变量名){异常处理代码}
  finally{一定会执行的代码}
catch(Exception e){
        system.out.println("message:"+e.getMessage()); //获取的是异常的信息
        system.out.println("toString:"+e.toString());  //获取的是异常的名字+异常的信息
        e.printStackTrace(); //打印异常在堆栈中的信息:异常名称+异常信息+异常的位置
}
异常处理原则:
throw和throws的区别:
异常分:
  编译时被检测的异常,即Exception及其子类;
  运行时异常,即Exception的特殊子类RuntimeException编译时不被检查。
try or throws:
  功能内部出现异常,如果内部可以处理,用try;
  内部处理不了,声明出来,让调用者处理。
可以对项目中特有的问题进行封装,自定义异常:
  1)定义一个子类继承Exception或RuntimeException,让该类具备 可抛性;
  2)通过throw或 throws进行操作。
try cathc finally 结合方式:
  1)try catch finally
  2)try catch
  3)try finally (无论是否发生异常,必须关闭资源)
  System.exit(0); //退出jvm,只要这种情况finally不执行 (?)
异常出现后,子父类覆盖时特点:(?)

尽量避免异常;避免不了就预先给出处理方式。

10 包

包名小写,一种封装形式,封装类,包外只能访问public声明的类。
java中的4种权限:public protected default private
import:导入指定包中的类;导入的两个包存在相同名的类,需在代码中指定包名。
常见软件包:
  java.lang 通常自动导入
  java.awt
  javax.swing
  java.net
  java.io
  java.util
  java.applet
jar:java的压缩包,主要用于存储类文件,或者配置文件等
  命令格式:jar -cf 包名.jar 包目录
  解压缩:jar -xvf 包名.jar

11 多线程

线程和进程:
  
同步

(for myself 附加:例程的理解 -简单理解 ,就是 某个系统对外提供的功能接口或服务的集合,类似函数)

12 字符串

== 和 equals:
  s1==s2:比较是否为同一对象
  s1.equals(s2):比较数值是否相等

13 集合

14 数组

15 泛型

16 API



原文地址:https://www.cnblogs.com/20120810bubu/p/3075887.html