A_程序、逻辑

一:Java概述

  1. 什么是程序: 为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合
  2. Java的来历
    1. 历史:最早大概可追溯至1991年四月份,Sun的绿色计划(Green Project)开始着手于发展消费性电子产品(Consumer Electronics),所使用的语言是C、C++、及Oak (为Java语言的前身),后因语言本身和市场的问题, 使得消费性
      电子产品的发展无法达到当初 预期的目标,再加上网络的兴起, 绿色计划也因此而改变发展的方向,这已是 1994年了。Java自1995诞生,至今已经10几年历史。
    2. Java的名字的来源:Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。SUN和JAVA的标识也 正是一杯正冒着热气的咖啡。据JamesGosling回忆,最初这个为TV机顶盒所设计的语言在Sun内部一直称为Green项目。我们的新语言需要一 个名字。Gosling注意到自己办公室外一棵茂密的橡树Oak,这是一种在硅谷很常见的树。所以他将这个新语言命 名为Oak。但Oak是另外一个注册公司的名字。这个名字不可能再用了。在命名征集会上,大家提出了很多名 字。最后按大家的评选次序,将十几个名字排列成表,上报给商标律师。排在第一位的是Silk(丝绸)。尽管大家都 喜欢这个名字,但遭到JamesGosling的坚决反对。排在第二和第三的都没有通过律师这一关。只有排在第四位的 名字、得到了所有人的认可和律师的通过,这个名字就是Java。10多年来,Java就像爪哇咖啡一样誉满全球,成为实至名归的企业级应用平台的霸主。而Java语言也如同咖啡一般醇香动人。Java的出生地:美国。
  3. 什么是Java
    1. Java是一门高级编程语言
    2. 技术架构
      • JavaSE(Java Platform Standard Edition(Java平台标准版))是Java技术的核心,提供基础的Java开发工具,执行环境与应用程序接口(API),主要用于桌面应用程序的开发。
      • JavaEE(Java Platform Enterprise Edition(Java平台企业版)),它主要用于额昂罗程序和企业级应用的开发:web开发 。
      • JavaME(Java Platform Micro Edition)移动嵌入式开发,用来做手机移动端开发。
    3. JDK(Java Development Kit)Java的开发和运行环境,Java的开发工具和Jre
      • JRE(Java Runtime Environment)java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)
      • 环境变量配置: JDK安装与环境变量配置
    4. 命令
      • Java命令分两部分的:一个是编译,一个是运行
      • javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。
      • java: 负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行。
    5. 程序起始点:一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数
    6. 编写Java程序步骤
      • 第一步:编写源程序(.java)
      • 第二步:编译(.class)
      • 第三步:运行

二:基础语法

  1. 关键字:其实就是某种语言赋予了特殊含义的单词。保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。
  2. 标识符
    1. 简要:工程名:要有意义、包名:小写、类名:首字母大写、方法名:首字母小写,其他遵循骆驼命名法。
    2. 变量名:
      • 首字母:要小写,可以使用字母、下划线、$符号,不能以数字开头。
      • 其他部分:可以使用字母、下划线、$符号、数字、变量名不能使用Java的关键字。
      • 同一程序中变量名不能重复。
      • 变量名要有意义(即要人只要看到这个变量名,就知道这个变量是用来干什么的)。
  3. 变量
    1. 定义:变量是储存数据的一个基本单元,不同的变量相互独立。
    2. 作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。
    3. 特点:变量空间可以重复使用。
    4. 变量空间的开辟需要什么要素呢?(三要素)
      • 这个空间要存储什么数据?数据类型。
      • 这个空间叫什么名字啊?变量名称。
      • 这个空间的第一次的数据是什么? 变量的初始化值。
    5. 变量的作用域和生存期:
      - 作用域:从变量定义的位置开始,到该变量所在的那对大括号结束。
      - 生存期:变量从定义的位置开始就在内存中活了;变量到达它所在的作用域的时候就在内存中消失了。
    6. 变量的使用顺序:声明变量、赋予初值、调用变量
  4. 常量:是在程序中的不会变化的数据。变量名全部大写,声明的同时,既要赋予初值,之后不可改变
  5. 数据类型
    1. 基本数据类型
      • byte
      • short
      • int
      • long
      • float
      • double
      • char
      • boolean
    2. 引用数据类型
      • 数组
        1. 定义:用于存储同一类型数据的一个容器。好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。
        2. 结构
          1. 元素类型[] 变量名 = new 元素类型[元素的个数];
          2. 元素类型[] 变量名 = {元素1,元素2…};
          3. 元素类型[] 变量名 = new 元素类型[]{元素1,元素2…};
      • 类:class
      • 接口:interface
    3. 类型转换
      • 自动类型转换:从低级别到高级别,系统自动转的;
      • 强制类型转换:高级别的数赋给一个比该数的级别低的变量;
  6. 运算符
    1. 算术运算符
      • + - * / % :加、减、乘、除、取余
      • + :连接符
      • ++ :加加
      • – :减减
    2. 赋值运算符
      • = += -= *= /= %=
    3. 比较运算符
      • > < = !=
        1. 特点:该运算符的特点是:运算完的结果,要么是true,要么是false
    4. 逻辑运算符
      • & | ^ ! && ||
      • 逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。
      • &:只有两边都为true结果是true。否则就是false。
      • |:只要两边都为false结果是false,否则就是true
      • ^:异或:和或有点不一样
        1. 两边结果一样,就为false。
        2. 两边结果不一样,就为true.
      • & 和 &&区别:
        1. & :无论左边结果是什么,右边都参与运算。
        2. &&:短路与,如果左边为false,那么右边不参数与运算。
      • | 和|| 区别:
        1. |:两边都运算。
        2. ||:短路或,如果左边为true,那么右边不参与运算。
    5. 位运算符:用于操作二进制位的运算符
      • &
      • |
      • ^
      • <<
      • >>
      • >>>(无符号右移)
      • 练习:对两个变量的数据进行互换。不需要第三方变量
  7. 语句:Ifswitchdo whilewhilefor
    1. 运用场景
      • 当判断固定个数的值的时候,可以使用if,也可以使用switch,但是建议使用switch,效率相对较高。

        1. 工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了,就执行哪个case后面的语句,如果没有相同的则执行default后面的语句。
          1. 细节
            • break是可以省略的,如果省略了就一直执行到遇到break为止;
            • switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;
            • default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始 执行直到第一个break出现。
      • 当判断数据范围,获取判断运算结果boolean类型时,需要使用if
      • 当某些语句需要执行很多次时,就用循环结构
      • while和for可以进行互换
        1. 区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。
    2. break
      • 作用于switch ,和循环语句,用于跳出,或者称为结束。
      • break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号
    3. continue
      • 只作用于循环结构,继续循环用的。
      • 作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。
  8. 方法
    1. 定义:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的方法。方法就是体现之一。
    2. 结构

    3. 运用场景

      • 方法其实就是一个功能,定义方法就是实现功能,通过两个明确来完
        1. 明确该功能的运算完的结果,其实是在明确这个方法的返回值类型。
        2. 在实现该功能的过程中是否有未知内容参与了运算,其实就是在明确这个方法的参数列表(参数类型&参数个数)。
    4. 作用
      • 用于定义功能。
      • 用于封装代码提高代码的复用性。
      • 注意:方法中只能调用方法,不能定义方法
    5. 主方法(main方法)
      • 保证该类的独立运行。
      • 因为它是程序的入口。
      • 因为它在被jvm调用。
    6. 方法重载
      • 重载的定义是:在一个类中,如果出现了两个或者两个以上的同名方法,只要它们的参数的个数,或 者参数的类型不同,即可称之为该方法重载了。
      • 如何区分重载:当方法同名时,只看参数列表。和返回值类型没关系。
  9. Java内存分配
    1. java分了5片内存
    2. 1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。
      • 栈: 存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );只要数据运算完成所在的区域结束,该数据就会被释放。
      • 堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。
        1. 每一个实体都有内存首地址值。
        2. 堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。
        3. 垃圾回收机制。

三:基础定义

  1. 包:定义包用package关键字。

    1. 对类文件进行分类管理。
    2. 给类文件提供多层名称空间。
    3. 如果生成的包不在当前目录下,需要最好执行classpath,将包所在父目录定义到classpath变量中即可。
      一般在定义包名时,因为包的出现是为了区分重名的类。所以包名要尽量唯一。怎么保证唯一性呢?可以使用url域名来进行包名称的定义。
      package pack;//定义了一个包,名称为pack。 注意:包名的写法规范:所有字母都小写。
      //package cn.itcast.pack.demo;
    4. 类的全名称是 包名.类名
      编译命令:javac –d 位置(.当前路径) java源文件 (就可以自动生成包)
    5. 包是一种封装形式,用于封装类,想要被包以外的程序访问,该类必须public;类中的成员,如果被包以外访问,也必须public;
    6. 包与包之间访问可以使用的权限有两种:
      • public
      • protected:只能是不同包中的子类可以使用的权限。
    7. 总结java中的四种权限:
      图片总结
  2. Import

    1. 导入:类名称变长,写起来很麻烦。为了简化,使用了一个关键字:import,可以使用这个关键字导入指定包中的类。记住:实际开发时,到的哪个类就导入哪个类,不建议使用.
      import packa.
      ;//这个仅仅是导入了packa当前目录下的所有的类。不包含子包。
      import packa.abc.*;//导入了packa包中的子包abc下的当前的所有类。
      如果导入的两个包中存在着相同名称的类。这时如果用到该类,必须在代码中指定包名。
    2. 常见的软件包:
      • java.lang : language java的核心包,Object System String Throwable jdk1.2版本后,该包中的类自动被导入。
        java.awt : 定义的都是用于java图形界面开发的对象。
        javax.swing: 提供所有的windows桌面应用程序包括的控件,比如:Frame , Dialog, Table, List 等等,就是java的图形界面库。
        java.net : 用于java网络编程方面的对象都在该包中。
        java.io : input output 用于操作设备上数据的对象都在该包中。比如:读取硬盘数据,往硬盘写入数据。
        java.util : java的工具包,时间对象,集合框架。
        java.applet: application+let 客户端java小程序。server+let –> servlet 服务端java小程序。
    3. jar :java的压缩包,主要用于存储类文件,或者配置文件等。
      • 命令格式:jar –cf 包名.jar 包目录
      • 解压缩:jar –xvf 包名.jar
      • 将jar包目录列表重定向到一个文件中:jar –tf 包名.jar >c:\1.txt
    4. 静态导入:导入了类中的所有静态成员,简化静态成员的书写。
      • import static java.util.Collections.*; //导入了Collections类中的所有静态成员

猜你喜欢

转载自www.cnblogs.com/cqhcxm/p/9198918.html