Core Java学习笔记(一)--Java程序设计基础

Java概述

  1. 发展简史:Sun–>Oracle,Java1.0–>…Java1.4–>Java5.0(重大更新)…–>Java9.0
  2. 技术分支:JavaSE(基础)、JavaEE(企业应用、Web开发)、JavaME(嵌入式、安卓)
  3. 语言特点:简单性、面向对象、分布式、健壮性、安全性、体系结构中立、可移植、解释型、高性能、多线程、动态性
  4. 运行机制:HelloWorld.java–>javac.exe编译–>HelloWorld.class(与平台无关的字节码,二进制)–>java.exe解释执行(jvm)–>特定平台机器码
    1
    2
    3
    4
    5
    public class HelloWorld {
    public static void main(String[] args) {
    System.out.println("Hello World");
    }
    }

Java开发环境搭建

  1. JDK:Java Development Kit,Java开发工具包,面向开发人员,包括了Java运行环境JRE、Java工具和Java基础类库
    JRE:Java Runtime Environment,Java运行时环境,面向用户,包含JVM标准实现及Java核心类库
    JVM:Java Virtual Machine,Java虚拟机,是整个java实现跨平台的最核心的部分,.class文件交由JVM解释执行
  2. 从Oracle官网下载JDK,进行环境变量配置:计算机–>属性–>高级系统设置–>环境变量,最后javac验证
    JAVA_HOME:新建系统变量,指JDK的安装路径,如D:\JDK
    Path:计算机存在Path变量,指命令搜索路径,如%JAVA_HOME%\bin
    CLASSPATH(Java5.0后无需配置):新建系统变量,指类搜索路径,如.;D:\JDK\lib
  3. 常用DOS命令:cd,cd..,md,rd,dir,cls,del等

注释、标识符、关键字

  1. 注释:注释不会出现在可执行程序中,Java有三种标记注释的方式

    1
    2
    3
    //   单行注释
    /* 多行注释 */
    //* 文档注释 */
  2. 标识符:Java中的包、类、方法、参数和变量名字,可由大小写字母、数字、下划线和美元符号组成,但不能以数字开头,不能使用Java中的保留关键字
    表示类名的标识符用大写字母开头:HelloWorld 驼峰命名法
    表示方法和变量的标识符用小写字母开头,后面的描述性词以大写开始:eat(),eatFood()

  3. 关键字

数据类型

  1. 常量 & 变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Variable {
    /*关键字final定义常量(const是java保留关键字),final type VAR_NAME = value;
    常量赋值之后不能更改,常量名一般全部大写
    如果希望常量在一个类中的多个方法中使用,使用static final VAR_NAME设置成类常量*/
    final double CM_PER_INCH = 2.54;
    /*Java属于强类型语言,变量必须先声明才能使用,type varName = value;
    变量名必须是合法标识符;大小写敏感,长度无限制;
    变量类型可以是基本数据类型,也可以是引用类型;*/
    String a = "Java";
    //可以在一行声明多个变量,不提倡!!逐一声明提高可读性
    double b = 20.0;double c = 10.0;
    }
  2. 数据类型

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public class TestDataType {
    public static void main(String[] args) {
    byte a = 11; //byte 1字节,8位,-128~127
    byte a1 = 011; //数字前面加0表示8进制数
    byte a2 = 0x11; //数字前面加0X/0x表示16进制数
    short b = 150; //short 2字节,16位,-2^15~2^15-1
    int c = 250; //int 4字节,32位,-2^31~2^31-1
    long d = 9999; //8字节,63位,-2^63~2^63-1
    System.out.println(Integer.toBinaryString(a)); //将a转换为2进制数
    System.out.println(Integer.toOctalString(a)); //将a转换为8进制数
    System.out.println(Integer.toHexString(a)); //将a转换为16进制数

    float e = 3.14F; //单精度类型,4字节,尾数精确到7位有效数字,浮点数默认double,加F/f转换为float
    //double f = 6.82; 数值精度是float类型的两倍,双精度类型,8字节,默认double型
    double f = 6.28e2; //科学计数法写法,e2,E2,e-2
    //浮点数存在舍入误差,很多数字无法精确表示,精确无舍入误差计算,使用BigDecimal类
    float f1 = 0.1F;
    double f2 = 1/10;
    System.out.println(f1==f2); //false,避免比较中使用浮点数

    char h = '陈'; //2个字节,单引号用来表示字符常量,双引号表示字符串:"陈"
    int h1 = h + 2;
    char h2 = '\''; //用转义字符输出特殊字符
    System.out.println(h);
    System.out.println(h1);
    System.out.println(h2);

    //布尔boolean型:未精确定义字节,true/false,用于判断逻辑条件;不能用0或非0代替
    }
    }
  3. 数据转换
    容量小–>容量大 自动 容量不是指字节,而是表述范围

    1
    2


运算符

  1. 1122

流程控制

  1. 条件语句

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    public class TestIf01 {
    public static void main(String[] args) {
    double i = 100 * Math.random();
    int score = (int) i;
    if (score > 90) {
    System.out.println("优秀");
    }
    if (score > 60 && score <= 90) {
    System.out.println("良好");
    }
    if (score < 60) {
    System.out.println("不合格");
    }
    System.out.println("你的分数为:" + score + "分");

    double r = 10 * Math.random();
    double area = Math.PI * Math.pow(r, 2);
    double circle = 2 * Math.PI * r;
    System.out.println("半径为: " + r);
    System.out.println("面积为: " + area);
    System.out.println("周长为: " + circle);
    if(area >= circle) {
    System.out.println("面积大于等于周长");
    } else {
    System.out.println("周长大于面积");
    }

    int age = (int) (100 * Math.random());
    System.out.print("年龄是" + age + ", 属于");
    if (age < 18) {
    System.out.println("未成年");
    } else if (age < 60) {
    System.out.println("中年");
    } else if (age < 85) {
    System.out.println("老年");
    } else {
    System.out.println("寿星");
    }
    }
    }
  2. 循环语句

    1
    2


数组

  1. 数组:数组是一种数据结构,用来存储同一类型值的集合;通过一个整型下标可以访问数组中的每一个值。
  2. 数组定义:
  3. 数组的初始化:动态、静态、默认
  4. 二维 & 多维数组
  5. 数组的引用传递

方法

  1. 定义:类似于函数,实现特定功能从来被反复调用的代码片段

    1
    2
    3
    {修饰符1  修饰符2} 返回值类型  方法名(类型 参数1,类型 参数2...) {
    语句;
    }
  2. 重载:一个类中存在同名但参数不同的多个方法,调用方法时会根据参数/参数个数/参数顺序同调用不同的方法

    1
    2


  3. 递归

0%