JAVA基础知识学习

本文介绍了Java编程的基础知识,包括Java的特点(简单性、面向对象、分布式、健壮性、跨平台性、多线程、动态性),JVM、JRE、JDK的关系及其在程序设计中的角色。讲解了Java程序的类型,如应用程序和小程序,并展示了如何编写第一个Java程序。此外,还涵盖了标识符命名规则、数据类型、变量、常量、类型转换、运算符等内容,以及Java注释的使用。
摘要由CSDN通过智能技术生成

Java特点(time:2021-11-27)

  1. 简单性:语法结构简洁统一
  2. 面向对象
  3. 分布式
  4. 健壮性:强类型机制、异常处理、垃圾自动回收等,并且丢弃了指针。
  5. 跨平台性
  6. 多线程
  7. 动态性

Java 体系结构与程序设计

  1. Java ME:可为移动设备和嵌入性设备上运行的应用程序提供一个健壮且灵活的环境。
  2. Java SE:是 Java 技术的核心与基础,是 Java ME 和 Java EE 的编程基础。
  3. Java EE:Java 技术应用最广泛的部分

Java 程序类型

  • Java 应用程序和 Java小程序
  1. Java 应用程序是完整的程序,能够独立运行。
  2. Java 应用程序用最普通的 Java 解释器就可以使其边解释边执行。
  3. 每个Java 应用程序必定含有一个 main 方法,程序执行时,首先找到 main 方法,并以此入口点开始运行,含有 main 方法的类常被称为主类,因此 Java 应用程序都含有一个主类。

JVM、JRE、JDK

JVM1

  • Java SE 课本第七页解释

JRE

  1. JRE 是运行 Java 程序所必须的环境的集合,JRE 包括 Java 虚拟机、Java 平台核心类和支持文件。安装 JRE 是运行 Java 程序的必须步骤

JDK

  1. JDK 是针对 Java 开发人员的开发工具集合,是整个 Java 的核心,包括了 Java 运行的环境(JRE)、Java 工具和 Java 基础类库,具体内容如下:
  • Java 虚拟机(JVM)
  • Java 运行时环境
  • Java 编译器:.java,可以通过该命令执行和编译号字节码 .class 文件
  • Java应用程序编程接口(API):JDK 提供了大量的 API。使用 API 可以缩短开发时间,提高开发效率。
  • 其他工具及资源:如用于打包的 jar

JVM、JRE、JDK三者关系

  • JVM、JRE 和 JDK 从范围上来讲是从小到大的关系。在开发 Java 应用程序前,开发人员需要在计Java算机上安装 JDK,这是会同时将 JRE 安装到计算机中。

第一个 Java 程序

  1. Java 源文件以 .java 为扩展名。一个 Java 可以有多个源文件。
  2. Java 应用程序的基本结构如下:
  • 在完整的 Java 程序里,至少需要有一个类(class)。因为Java 是面向对象的语言,所以所有的代码都是些在类中
  • Java 文件中可以有多个类,但只能有一个公共类(public),且该公共类的类名与 Java 文件名相同
  • 在 Java 中,main() 方法是 Java 应用程序的入口方法,程序在运行时执行的第一个方法就是 main() 方法,每个独立的 Java 应用程序必须要有 main() 方法才能运行。对 main() 方法有特定的要求,方法名必须是 main,且方法必须是 public static void 类型的,其参数必须是一个字符串数组。
  1. 代码示例。

    // 与建好的文件路径一致
    package com.dh.ch01;
    // 公共类有且只能有一个,且和文件名称相同
    public class HelloWorld {
      // main() 方法是 Java 应用程序的入口
      public static void main(String[] arg){
        // 输出 HelloWorld
        System.out.printIn('HelloWorld');
      }
    }
    
  • 文件结构
    HelloWorld 文件结构
  • 运行
    HelloWorld 运行
  1. 代码解释
  • 第一行:package 关键字定义了一个包,使用包可以对类进行组织,与其他源代码库中的类分隔开来,确保了类名的唯一性。可以不指定所属的包,此时类将位于默认包中。
  • 第二行:public 修饰符 class 关键字,定义了一个名为 HelloWorld 的公共类,所以文件名必须和类名一致(包括大小写),即 Hello 类的源程序文件名必须为 HelloWorld.java
  • Syatem.out.printIn('');,作用为运行时输出引号中的文字,并且换行。

Java 注释(time:2021-11-28)

  1. 单行注释: //
  2. 块注释: //
  3. 文档注释: /**…*/
    作用: 文档注释写入 javadoc 文档。文档注释用于生成 HTML 格式的代码报告。文档注释必须写在类、域、构造函数、方法,以及字段(field)定义之前。注释文档由描述和块标记两部分组成,格式如下:
    /**
    * <h1>main 方法负责输出 Hello </h1>
    * @param args
    * @return
    */
    public state void main(String[] args) {
    	String s = 'HelloWorld';  // 定义变量
    	// 代码省略
    }
    
    javadoc: javadoc命令生成类似 Java API 文档的 HTML 格式,方便阅读
    常见的 javadoc 注释标签
    标签说明
    uthor作者
    ersion该类模块的版本
    ee类、属性、方法的说明
    aram对方法中某参数的说明
    eturn对方法返回值的说明
    xception对方法可能抛出的异常说明

Java 基础知识

标识符命名规则

  1. 必须以字母、数字、下划线或美元符($)组成,且不能以数字开头
  2. 不能使用 Java 关键字作为标识符
  3. 标识符区分大小写

分隔符

注意:Java 语句结束的标记,即语言句必须以分号结束,否则一条 Java 语言即使跨多行也算没有结束。(不添加分号运行时会报错)

常量和变量

常量

  1. final 关键字来定义常量,一旦赋值后里面的值就不会改变
  2. 常量名习惯上是大写的
  3. 如果常量名称含有多个单词,习惯上是使用 _ 进行分割
    final <data_type> var_name = var_value;
    // final:为关键字;
    // data_type:常量的数据类型;
    // var_name:常量的名称;
    // var_value:常量赋的值
    
    eg: final double PI = 3.1416;

变量

  1. 变量是 Java 中最基本的存储单元,它的定义包括变量名、变量类型、变量作用域几个部分。在 Java 中所有的变量必须先声明在使用。
  2. 定义的基本格式如下
     <data_type> var_name = var_value;
    
    eg:int count = 10;
  3. 可以同时声明几个统一数据类型的变量,变量之间用 ‘,’隔开
    eg:int i,j,k;

Java 数据类型

数据类型分类

  1. Java 是一门强类型语言,即所有的变量都必须是显式声明数据类型
  2. 数据类型包括基本数据类型和引用数据类型
基本数据类型
数据类型大小/位取值范围说明
byte(字节型)8-27~27-1用于存储亿字节计算的小额数据,在处理网络或文件的数据流时,用处很大
short(短整型)16-215~215-1用于存储小于32767的数字,如员工编号
int(整型)32-231~231-1用于存储较大的数字,用途非常广泛
long(长整型)64-263~263-1用来存储非常大的数字,可以根据存储值的大小来选择
float(浮点型)643.4e-38~3.4e+38用于存储较小的数字,如产品价格
double(双精度)1.7e-38~1.7e+38存储精度要求高的数据,如银行余额
bollean(布尔型)1trur/false用于存储真假值,通常用于判断
char(字符型)16‘\u000’~’\uFFFF’用于存储字符数值,如姓名男女
  1. 基本数据类型的包装类
  • 基本数据类型不是对象。为了通用性,Java 针对每一种基本数据类型都提供了一个包装类
    byte:java.lang.Byte
    short:java.lang.Short
    int:java.lang.Integer
    long:java.lang.Long
    float:java.lang.Float
    double:java.lang.Double
    boolean:java.lang.Boolean
    char:java.lang.Character
  • 通过使用对应的包装类,可以将基本数据类型的数据作为对象使用
  1. chart
    2.1 char 变量必须包含在单引号之内(‘’)
    char c = 'a'; // 定义变量 c 为 char 类型的变量,且赋初值为 a
    2.2 转义字符 \

    转义字符含义
    \dddASCII 中 1~3 位 8 进制数所表示的字符 \101 = A
    \uxxxASCII 中 1~4 位 16 进制数所表示的字符 \u41 = A
    \ ’单引号
    \ ‘’双引号
    \ \反斜杠
    \ b退格
    \ r回车
    \ n换行
    \ t制表符(建个数字的作用)
引用数据类型
  1. 分类:数组(具有相同类型的变量集合)、类(class)、接口(interface)、枚举(enum)、注解(Annotation (是一种机制,将程序的元素联系起来))

数据类型转换

  1. 数据的类型转换方式有:自动类型转换和强制类型转换
  2. 自动类型转换:字节数少的 -> 字节数多的
自动类型转换

课本 19 页

强制类型转换
data_type var1 = (data_type)var2;
// data_type 表示目标类型,即转换后的数据类型
// var1 目标变量,即转化后的变量名
// var2 源变量,即被转化的变量名

eg:
int i = 10;
// 将 int 类型的变量 i 强制转化为 byte 类型,赋值给 b
byte b = (byte) i;
// 注意:这里的 int(4个字节) 比 byte 类型大,所以类型转换必须要经过强制类型转换。这种方式可能会造成数据溢出或者精度下降
/**
 * <h1>main 方法负责类型转换(学习) </h1>
 * @param args
 * @return
 */

package com.dh.ch02;

public class Chage_Var_type {
    public static void main(String[] arg) {
        int i = 100;
        char c1 = 'a';
        // ❤二进制字面量(二进制数据以 0b 开头)
        byte b = 0b11;
        // ❤长整型赋值后面要加 L
        long l = 567L;
        // ❤浮点型赋值后面要加 f
        float f = 1.89f;
        double d = 2.1;
        // char 类型的 c1 自动转换成与 i 类型一致的 int 类型参加运算
        int iC1 = c1 + i;
        // int 类型的 iC1 自动转换成与 l 类型相同的 long 类型参与运算
        long lIC1 = l - iC1;
        // byte 类型的 b 自动转换成与 f 类型相同的 float 类型参与运算
        float fByte = f*b;
        // int 类型的 iC1 转换成 与 fByte 类型相同的 float 类型计算,然后在转换与 d 类型相同的 float 类型进行计算
        double d1 = d + fByte/iC1;
        // 输出打印结果
        System.out.println("iC1=" + iC1);
        System.out.println("lIC1=" + lIC1);
        System.out.println("fByte=" + fByte);
        System.out.println("d1=" + d1);
    }
}

变量的作用域和初始化

  1. 只要作用域中的代码开始执行,变量就存在于内存中,超出变量作用域的范围后,系统就会释放它的值,即变量的生存期受到其作用域的限制。如果在作用域中初始化一个变量,则每次调用该代码块时系统都会诚信声明并初始化该变量
  2. 变量的初始化:
    声明的同时直接赋值int count = 10;
    先声明在赋值int num; ... num = 4;

运算符

  1. 算术运算符:
    + 加
    - 减或负号
    * 乘
    / 除
    ++ 自增
    – 自减
    % 取余
    注意:
    (1)a/b :a、b都为整数时,结果直接截取整数部分,且不进行四舍五入。13/3 = 3
    (2)a/b:a、b 中有一个为小数,则结果为小数
  2. 比较运算符
    > 、<、==、>=、<=
    结果为布尔值(true、false)
  3. 逻辑运算符
    !、&&、||
  4. 位运算符
    课本 25 页
  5. 赋值运算符
    +=、-=、*=、/=、%=
  6. 条件运算符
    <表达式> ?e1 : e2
    注意若是不知道运算符的优先级可以使用()改变运算符的优先级
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值