zoukankan      html  css  js  c++  java
  • java基础知识(上)

    第一章:Java程序设计概述
    Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。
    具体来说,它具有如下特性:
    简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。
    Java的三种技术架构:
    JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;
    JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;
    JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;
     
    第二章:Java程序设计环境
    1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。
    2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。
    3,jvm: Java Virtual Machine,java程序的编译器。
    4,环境变量的配置:
          JAVA_HOME=%安装路径%Javajdk
           path=%JAVA_HOME%in
           classpath=%JAVA_HOME%lib(windows10系统可以不配)
     
    第三章:Java的基本程序设计结构
    数据类型:
    1、八大基本数据类型:byte、short、int、long、float、double、char、boolean
    2、引用数据类型: 数组、类、接口。
    级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
    自动类型转换:从低级别到高级别,系统自动转的;
    强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;
    自动装箱: 将基本数据类型封装为对象类型   int-> Integer
    自动拆箱: 将对象重新转化为基本数据类型    Integer --> int
    运算符号:
    算术运算符、赋值运算符、比较运算符、逻辑运算符。
    5,语句。
    顺序结构 默认
    条件结构 if  switch  
    循环结构 do while   while  for
     
    第四章:对象和类
    1.类 -- 对一堆对象的抽像(抽出像的部分)
    2.对象 -- java中万事万物皆对象
    引用数据类型:类,接口,数组,对象
    ==和equals
    String类的equals比较的是值
    Object类的equals比较的是内存地址
    ==基本数据类型比较的是值
    ==引用数据类型比较的是地址
     
    类变量和实例变量的区别
    1.共享性:类变量被所有对象共享,实例变量为每个对象独有
    2.初始化时间:类变量在类加载时分配内存,实例变量在创建对象时分配内存
    3.消亡时间:类变量在程序退出时释放内存,对象不存在则实例变量就不存在
    4.调用形式:类变量一般通过类名.来调用,实例变量通过对象.调用
    5.声明的形式:类变量static来声明,实例变量没有static声明
     
    类加载的时间点要早于对象创建的时间点
    类加载:发生在类第一次被虚拟机调用,类会被虚拟机加载,一般类只被加载一次
        1.初始化类变量
        2.分配类方法的函数入口
        3.执行静态块
                    可以写多个且执行顺序从上往下依次执行(内部将所有静态块合成一个静态块)
                    可以在静态块里调用静态方法和使用静态变量
    对象创建晚于类加载的时间    
        声明一个对象
        创建对象
        通过赋值号为声明变量赋值
        1.初始化实例变量
        2.分配实例方法的函数入口
        3.执行对象块
                    可以写多个且执行顺序从上往下依次执行,对象块在构造方法之前
        4.执行构造函数
        每次创建一个新的对象都会重复上面的操作
    类方法和实例方法的区别
    1.类加载时类方法被分配入口地址,实例方法是在第一个对象创建时被分配入口地址
    2.类方法一般是类名.来调用
    3.类方法中不能使用this关键字,this表当前对象,类方法是在类加载时就存在而此时对象还不存在
     
    空指针异常 -- 使用了为null的类型
     
    JVM:内存分区:
    1. 栈区:函数入口,基本数据类型,对象的引用,变量名
    2. 堆区:通过new关键字新建的对象
    3. 方法区:代码,静态变量
    4. 常量池:常量
     
    gc -- 垃圾回收器
    java里把没有任何应用的对象视为垃圾
    为了清理内存
    java虚拟机会自动进行回收
    程序员可以通过System.gc()进行强制回收
    当对象被释放时,将自动调用对象的finalize()方法 
    System.gc()只是一个提示,不会立即执行finalize(),真正调用还是JVM虚拟机
     
    值传递:基本数据类型采用值传递
                实参的值永远不发生变化
    引用传递:类类型采用引用传递    
                实参的内存地址不变化,但内容有可能变化
     
    包名: 建议小写    域名倒写+项目名+功能
    无包名的类可以调用有包名(默认包)的类
    有包名的类不能调用无包名的类
     
    import导入包
    包名.类名(全类名)可以解决同类名的冲突问题,只能使用一次
     
    访问修饰符:
        通过访问修饰符可以进行访问权限的控制,主要用来修饰类,变量和方法
    protected受保护的
     
    封装:将属性和方法封装成一个类形成一个新的数据类型
    实现了模块化和信息隐藏
     
    JavaBean:    
        1.是一个java组件,主要用于数据的传输
        2.类必须使用public修饰
        3.所有属性都需要使用private修饰
        4.每个属性都需要使用public修饰的setXxx()和getXxx()来操作属性
        5.必须有一个无参构造函数
    接口是一个特殊的类,也可以用来多态(面向接口编程)
     
    继承:解决分层次的类结构
            好处:1.便于建模分析
                      2.代码的复用
     
     
    第五章:面向对象对象三大特性:封装、继承、多态
    多 态(面向对象特征之一)
    多态性是指允许不同类的对象对同一消息作出响应。
    发生条件:
    1. 必须有继承
    2. 发生重写
    3. 子类引用指向父类类型
    上转型对象:子类引用指向父类类型
            Animal animal = new Dog()
    1. 子类新增的方法会丢失
    2. 子类新增的属性也会丢失
    下转型对象:
            Dog dog = (Dog)animal
    animal instanceof Cat 判断 animal是否是Cat的实例
     
    编译期间进行的绑定(静态绑定或者前期绑定)
    java在运行时动态决定实例方法的调用叫做后期绑定
     
    封 装(面向对象特征之一):是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
    好处:将变化隔离;便于使用;提高重用性;安全性。
    封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。
    private:只有本类可以访问
    default:同一包类可以访问
    protected:同一包类及不同包内的子包可以访问
    public:任何包下都可以访问
     
    继 承(面向对象特征之一)
    好处:
    1:提高了代码的复用性。
    2:让类与类之间产生了关系,提供了另一个特征多态的前提。
     
    父类的由来:其实是由多个类不断向上抽取共性内容而来的。
    java只支持单继承,C++可以多继承,但java可以继承多个父接口
    单继承:一个类只能有一个父类。
    多继承:一个类可以有多个父类。
     
    第六章:接口与内部类:
    抽象类:用abstract关键字来修饰一个类时,该类叫做抽象类;
    1. 抽象类必须被继承。
    2. 抽象类不能被直接实例化。它只能作为其它类的超类,这一点与最终类(final类)正好相反。
    抽象方法:用abstract来修饰一个方法时,该方法叫做抽象方法。
    1. 抽象方法必须被重写
    2.  抽象方法只有声明,不能有实现{}。
    3.  定义了抽象方法的类必须是抽象类。
    接口(interface)就是方法定义和常量值的集合。从语法上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有方法的实现。
    1.  通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。
    2.  通过接口可以指明多个类需要实现的方法。
    3.  通过接口可以了解对象的交互界面,而不需了解对象所对应的类。
     
    1.接口的定义:interface
    2.接口意义:方法定义和实现  分离--制定规范
    3.接口的实现:implements
    4.解决单继承的问题
     
    抽象类与接口异同点
    1. 相同点:都必须通过其它类实现才能使用; 
    2. 不能直接实例化  
    不同点: 
    1. 抽象类是类,其中可包含变量及(抽象)方法的定义; 
    2. 接口实质并不类,其中只包含类常量及抽象方法的定义;
    3.  类只能单一继承,接口允许多重继承 
    4. 接口中只能有public修饰符,类可以是任何修饰符 
    5. 设计模式讲:继承强调是一种的关系  is-a 接口:强调功能具有  has - a
    内部类
            1.父类实例
            2.父类实例.子类名 变量 = 父类实例.new 子类名()
            父类名.this.属性名
    静态内部类和非静态内部类
           
    内部类标识符
            外围类的名字+$+内部类的名字
  • 相关阅读:
    windows和linux下安装 redis
    YII1 配置redis并使用
    YII1 安装smarty模版引擎
    thinkphp5 阿里云短信 发送多参数的短信
    利用securecrt或者xshell 下载服务器端文件到本地windows系统中
    Swift 内存管理
    扩展和协议
    继承
    构造与析构
    方法
  • 原文地址:https://www.cnblogs.com/pengao/p/10849163.html
Copyright © 2011-2022 走看看