zoukankan      html  css  js  c++  java
  • 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



  • 相关阅读:
    opencv下载,安装教程
    VS2010中程序编译生成都是正确的,直接生成的exe也是正确的,就是在VS中运行出现错误
    Oracle11g em启动报此网站的安全证书有问题的解决方案
    Python教程百度云资源分享,全套,完整版!!!
    Python视频教程免费分享(2020年最新版)
    Python 环境搭建(Win 安装以及Mac OS 安装)
    Python学习路线图(2020年最新版)
    Python爬虫入门教程之BeautifulSoup
    Python数据分析练手:分析知乎大V
    python 可变对象与不可变对象
  • 原文地址:https://www.cnblogs.com/20120810bubu/p/3075887.html
Copyright © 2011-2022 走看看