欢迎来到岁月无声的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

Java学习(一)

  1. Java三大平台
    1. Java SE标准版 适合桌面应用
    2. Java EE企业版 适合网络应用
    3. Java ME微型版 适合手机应用
  2. Java的特点
    1. 简单易学
    2. 面向对象
    3. 平台无关性
    4. 安全稳定
    5. 支持多线程
    6. 有丰富的类库
  3. Java三种核心机制
    1. Java虚拟机
    2. 代码安全性检测
    3. 垃圾收集机制
  4. 类与对象
    1. 类:具有共同属性和行为的对象集合 
      1. 属性:变量                         
      2. 行为:函数
    2. 类与对象的关系
      1. 类是对象的抽象
      2. 对象是类的实例
  5. 面向对象的三大特征
    1. 封装性
      1. 模块化:将属性和行为封装在类中,程序定义很多类
      2. 信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某各类
    2. 继承性
      1. 继承性:父类和子类之间共享数据和方法
      2. 继承的好处
        1. 更好地进行抽象和分类
        2. 增强代码的重用率
        3. 提高可维护性
    3. 多态性
      1. 不同的对象收到同一个消息(调用方法)可产生完全不同的效果
      2. 实现的细节有接受对象自行决定
  6. java的类型(Application和Applet)
    1. 两者结构和运行环境不同
      1. 前者是独立的程序,需要执行器(调用虚拟机)来运行
      2. 后者是潜在HTML网页中的非独立的程序
        1. 用专门的appletviewer来运行
        2. 或者由Web浏览器(调用Java虚拟机)来运行
    2. Application
    3. Applet
  7. 程序中进行输入与输出
    1. 文本界面
      1. 使用Scanner类
      2. 使用in及out
        1. 输入输出字符
        2. char c = '';
        3. System.out.print("Please input a char:");
        4. try{
        5.      c = (char) System.in.read();
        6. }catch(IOException e){}
        7. System.out.println("You have entered:"+c);
        8. 输入输出行
        9. try{
        10.      BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
        11.      s = in.readLine();
        12. }catch(IOException e){}
        13. 输入输出数字
        14. BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
        15. System.out.print("Please input an int:");
        16. s = in.readLine();
        17. n = Integer.parseInt(s);
    2. 图形界面输入与输出
      1. 可以使用文本框对象(TextField)获取用户输入的数据
      2. 可以使用标签对象(Label)或文本框对象输出数据
      3. 可以使用命令按钮(Button)来执行命令
  8. 数据类型
    1. 基本数据类型(变量在栈)
      1. 数值型
        1. 整数类型(默认是int类型,声明long型常量可以后加‘l’或‘L’)
          1. 整数类型常量有四种表达形式
            1. 十进制整数,如12,0,234
            2. 八进制整数,要求以0开头,如012
            3. 十六进制整数,要求以0x或0X开头,如0x12,其中10-15分别以a-f(此处a-f不区分大小写)来表示
            4. 二进制数,以0b或0B开头,如0b00010010(Java7以上使用)
          2. byte(1字节,范围在-128到127)
          3. short(2字节,范围在-2的15次方到2的15次方-1)
          4. int(4字节,范围在-2的31次方到2的31次方-1)
          5. long(8字节,范围在-2的63次方到2的63次方-1)
            1. 如果使用一个巨大的整数值(超出int类型的表数范围)是,java不会自动把这个整数值当做long类型来处理。如果希望吧一个整数值当做long类型来处理,应该在这个整数值后增加英文字子母l或者L作为后缀。通常推荐L作为后缀,因为英文字母l很容易和1搞混。
            2. 可以把一个较小的整数值(在int类型的表数范围以内)直接赋给一个long类型的变量,这并不是因为java会把这个较小的整数值当成long类型来处理,java依然把这个整数值当成int类型来处理,只是因为int类型的值会自动类型转换到long类型。
        2. 浮点类型(默认是double,如果声明常量为float型,需在数字后面加F或者f,如float f 3.14f)
          1. 科学计数法(只有浮点类型的数值才可以使用科学计数法表示)
            1. 3.14E2表示的是3.14乘以10的2次方
          2. double(8字节,范围-1.798E308~1.798E308)
          3. float(4字节,范围-3403E38~3.403E38)
          4. java还提供了三个特殊的浮点数值:正无穷大通过Double或Float类的POSITIVE_INFINTY表示;负无穷大通过Double或Float类的NEGATIVE_INFINTY表示,非数通过Double或Float类的NaN表示。所有的正负无穷大都是相等的,而NaN不与任何数值相等,甚至不与NaN相等。
      2. 字符型(char)
        1. 字符型值有如下三种表示形式
          1. 直接通过单个字符来制定字符型,例如‘A’
          2. 通过转义字符表示特殊字符型,例如‘\n’
          3. 直接使用Unicode值来表示字符型值,例如‘\u0001’
      3. 布尔型(boolean):只允许取值为true和false,不允许用0或者非0代替。其他数据类型的值也不能转换为boolean类型。
        1. java规范并没有强制指定boolean类型的变量所占有的内存空间。虽然boolean类型的变量或值只要一位即可保存,但由于大部分计算机在分配内存时允许分配的最小内存单元是字节(8位),因此bit大部分时候实际上占用8位。
      4. Java7引入一个新功能:程序员可以在数值中使用下划线,不管是整型数值,还是浮点型数值,都可以自由的使用下划线。通过下划线分割,可以更直观的分辨数值中到底包含多少位。如:double pi = 3.14_15_92_6; int a = 1231_1231_1231_1231_1231;
    2. 引用数据类型(变量引用到堆)
      1. 接口
      2. 数组
      3. null类型
        1. null没有名称,不可能声明一个null类型的变量或者转换到null类型
        2. 空引用(null)是null类型变量唯一的纸。空引用可以转换为任何应用类型。
        3. 空引用只能转换成引用类型,不能转换成基本类型,因此不要把一个null值付给基本数据类型的变量。
    3. 转义字符
      1. \r 回车
      2. \n 换行
      3. \f 走纸换页
      4. \t 横向跳格
      5. \b 退格
    4. 标识符(任何一个变量、常量、方法、对象和类都要有名字,最好与其意义相符,以增加程序可读性)
      1. 标识符要满足如下规定
        1. 标识符可以有字母、数字和下划线(_)和美元符号($)组合而成
        2. 标识符必须以字母、下划线或者美元符号开头,不能以数字开头
      2. Java是大小写敏感的语言
        1. 按照Java惯例,类名首字母用大写
        2. 其余的首字母都用小写
        3. 少用下划线
        4. 常量随用随定义
    5. 自动类型转换
  9. 运算符
    1. 算数运算符:+,-,*,/,%,++,--
    2. 关系运算符:>,<,>=,<=,==,!=
    3. 逻辑运算符:!,&,|,^,&&,||
    4. 位运算符:&,|,^,~,>>,<<,>>>
    5. 赋值运算符:= 拓展赋值运算符:+=,-=,*=,/=
    6. 字符串连接运算符:+
  10. 流程控制语句
    1. 程序的三种基本流程
      1. 顺序
      2. 分支
      3. 循环
  11. 程序的注释
    1. Java可以采用三种注释方式
      1. //用于单行注释。注释从//开始,终止于行尾
      2. /*……*/用于多行注释,注释从/*开始,到*/结束,且这种注释不能相互嵌套
      3. /**……*/是Java所特有的doc注释。他从/**开始,到*/结束
        1. javadoc命令可以对源文件、包生成API文档。Java源文件可以支持通配符。javadoc的常用选项有如下几个。
          1. -d<directory>:该选项指定一个路径,用来将生成的API文档放到指定的目录下。
          2. -windowwtitle<text>:该选项指定一个字符串,用于设置API文档的浏览器窗口标题
          3. -doctitle<html-code>:该选项指定一个HTML格式的文本,用于指定概述页面的标题
            1. 只有对处于多个包下的源文件来生成API文档时,才有概述页面
        2. 这种注释主要是为了支持JDK工具javadoc二采用的,javadoc能识别主时钟用标记@标识的一些特殊变量,并把doc注释加入它所生成的HTML文件。常见的@标记如下。
          1. @see:引用其他类
          2. @version:版本信息
          3. @author:作者信息
          4. @param:参数名说明
          5. @return:说明
          6. @exception:异常说明
          7. 对于有@标记的注释,javadoc在生成有关程序的文档事,会自动地识别他们,并生成相应的文档。javadoc常用选项有如下几个。
            1. -d <directiory>:该选项指定一个路径,用于将生成的API文档放到指定目录下。
            2. -windowtitle<text>:该选项指定一个字符串,用于设置API文档的浏览器窗口标题
            3. -doctitle<html-code>:该选项指定一个HTML格式的文本,用于指定概述页面的标题(只有对于多个包下的源文件来生成API文档时,才有概述页面)
            4. -header<html-code>:该选项指定一个HTML格式的文本,用于指定概述页面页眉
            5. javadoc工具默认不会提取@author和@version两个标记的信息,如果需要提取这两个标记的信息,应该在使用javadoc工具时指定-authour和-version两个选项。
  12. 分支语句--if
    1. if(条件表达式)
    2. 语句块;//if分支
    3. else
    4. 语句块;//else分支
  13. 分支语句--switch语句
    1. 使用switch要注意
      1. 变量类型是整数、字符、字符串(String)
      2. case后面是常量
      3. 注意break;
  14. 循环语句(在循环条件满足的情况下,反复执行特定代码)
    1. 循环的五个要素
      1. 初始化部分
      2. 循环条件部分
      3. 循环体部分
      4. 迭代部分
      5. 结束后处理
    2. 循环的三种写法
      1. for循环
      2. while循环
      3. do/while循环
  15. 特殊的流程控制语句
    1. break
      1. break;用于终止某个语句块的执行
        1. {……
        2. break;
        3. ……
        4. }
      2. break语句出现在多层嵌套的语句块中,可以通过标签指明要终止的是哪一层语句块
        1. label1:{……
        2. label2:       {……
        3. label3:               {……
        4.             break label2;
        5.                                            ……
        6.                             }
        7.                }
        8.               }
    2. continue
      1. continue语句用于跳过某个循环语句块的一次执行
      2. continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环
  16. 数组
    1. 数组是多个相同类型数据的组合
    2. 一维数组的声明方式:
      1. int[] a;
      2. double []b;
      3. Mydate []c;(对象数组)
        1. 注意,int []a,b,c;a,b,c三个都是数组
        2. int a[],b,c;a是数组,b,c是不是数组。
    3. Java语言中声明数组时不能指定其长度(数组元素的个数)
    4. 数组时引用类型
      1. int [] a  = new int [5];
      2. 这里的a只是一个引用
      3. 数组一经分配空间,其中的元素也被按照成员变量同样的方式被隐式初始化。例如:
        1. (数值类型为0,引用类型是null)
          1. int [] a  = new int [5];
          2. //a[3] 则是0
    5. 是静态初始化
      1. 在定义数组的同时就为数组元素分配空间并赋值
        1. int [] a = {3,6,9};
        2. 或者写为 int [] a = new int[]{3,6,9};
    6. 数组元素的引用方式
      1. index为数组元素下标,可以是整型常量或整型表达式。如a[3],b[i],c[i*6];
      2. 数组元素下标从0开始;长度为n的数组合法下标取值范围:0~n-1;
    7. 每一个数组分配空间以后,这个数组的空间就固定了,同事,有一个属性length来指明它的长度
      1. 例如:a.length指明数组a的长度
    8. Java还有一个增强的for语句来方便处理数组,或者集合里面的元素。
      1. 如:
      2. int [] ares = new int[10];
      3. for(int age : ages)
      4. {
      5. System.out.println(age);
      6. }
      7. 这种语句是只读式的遍历
    9. 复制数组
      1. Array.Copy方法提供了数组元素复制功能
        1. 例如:
        2. //源数组
        3. int [] source = {1,2,3,4,5,6};
        4. //目的数组
        5. int []dest = {10,9,8,7,6,5,4,3,2,1};
        6. //复制源数组中从下标0开始的source.length个元素到目的数组,从下标0的位置开始存储
        7. Array.Copy(source,0,dest,0,source.Lenght);
    10. 多维数组
      1. 二维数组
        1. 举例:int [][] a = {{1,2},{3,4,0,9},{5,6,7}};
        2. 二维数组是数组的数组
        3. 多维数组的声明和初始化应按从高维到低维的顺序进行

  

posted on 2019-02-21 10:12  <岁月无声>  阅读(234)  评论(0编辑  收藏  举报

导航