1-JavaBasisBegin

Java入门

JDK && JRE && JVM

JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境。我们编写的Java代码,都运行在 JVM 之上,而JVM运行在操作系统之上。JVM是java实现跨平台的重要工具。
JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。
JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。

各类工具之间的关系JDK && JRE

编译型语言&&解释型语言

编译型:编译型语言是指程序在执行之前需要一个专门的编译过程,把程序源文件编译为机器语言的文件,运行时不需要重新编译,执行效率高,但缺点是,编译型语言依赖编译器,跨平台性差。

解释型:解释型语言是指源代码不需要预先进行编译,在运行时,要先进行解释再运行。解释型语言执行效率低,但跨平台性好。

Java:Java是一种兼顾编译型和解释型的语言,Java程序编译的时候先由**.java文件在JVM中进行编译,得到.class文件**,运行的时候JVM再将**.class文件转换为机器码**进行执行,因此JVM是Java程序执行的关键。

安装JDK

安装时注意配置环境变量Path路径
分为

  • 用户变量:对当前用户生效
  • 系统变量:对系统生效
    JAVA_HOME
    在DOS窗口中输入java -version进行检查当前版本
Java自带命令:

javac:编译器,编译.Java文件
Javap:反编译.class文件
Java:解释器,运行.class文件,将文件交给JVM去执行,main方法是程序的入口或者起点,JVM在运行的时候从main方法开始执行

标识符

命名规则:

  • 标识符可以包含英文字母26个(区分大小写)、0-9数字、$(美元符号)和_(下划线)
  • 标识符不能以数字开头
  • 标识符不能是关键字

命名规范:

  • 类名规则:首字母大写,后面每个单词首字母大写(大驼峰式)
  • 方法名规范:首字母小写,后面每一个单词首字母大写(小驼峰式)
  • 变量名规则:全部小写

语言基础

注释
  • 单行注释://

  • 多行注释:/* */

  • 文档注释:

    /**

    */

数据类型
  • 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔
  • 引用数据类型:包括 类 、 数组 、 接口
基本数据类型

基本数据类型

数据类型转换
  • 自动转换
    将取值范围小的类型自动提升为取值范围大的类型,小范围的位数自动扩展到和大范围的一样的位数进行计算
    转换规则:
    byte、short、char–>int–>long–>float–>double
  • 强制转换
    数据类型 变量名 = (数据类型)被转数据值
    强制类型转换可能会发生数据丢失和溢出的情况
常量&&变量

变量的定义包含三个要素:数据类型,变量名,数据值

成员变量定义时JVM提供默认的初始值
方法变量需要先初始化再使用

常量的值在编译的时候就已经确定,不会发生变化
变量的值JVM无法确定,运算的时候可能会导致发生自动类型的转换

ASCII

在这里插入图片描述在这里插入图片描述

运算符

“+”符号的多态:

  • 遇到字符串的时候,表示连接、拼接的含义

  • 基本的算数运算

    =赋值符号带有变量提升的特性

    +=等运算符号带有强制转换的特定

Jshell脚本工具

是JDK9的新特性,引入解释型代码的特性

流程控制语句

在JDK1.5之前,switch循环只支持byte short char int四种数据类型.

JDK1.5 在switch循环中增加了枚举类(enum)与byte short char int的包装类,对四个包装类的支持是因为java编译器在底层手动进行拆箱,而对枚举类的支持是因为枚举类有一个ordinal方法,该方法实际上是一个int类型的数值.

JDK1.7在switch循环中增加了String类型,但实际上String类型有一个hashCode算法,结果也是int类型.

而byte short char类型可以在不损失精度的情况下向上转型成int类型.所以总的来说,可以认为switch中只支持int.

在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
死循环
while(true)

for&&while

区别:
控制语句所控制的那个变量,在for循环结束之后,就不能被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环解释,该变量就从内存中消失,能够提高内存的使用效率
在循环次数已知的时候使用for,循环次数为止的时候使用while

方法

调用方法的三种形式
  • 直接调用:直接写方法名调用
  • 赋值调用:调用方法,在方法前面定义变量,接收方法的返回值
  • 输出语句调用:在输出语句中调用方法,不能使用输出语句调用void类型的方法,因为方法执行最后没有结果,不打印任何内容
方法重载

Overload:
指的是在同一个类中,允许存在一个以上的同名方法,只要他们的参数列表不同即可
参数列表:个数不同,数据类型不同,顺序不同
重载参数列表:JVM通过方法的参数列表,调用不同的方法

方法的参数为基本类型时,传递的是数据值,方法的参数为引用类型时,传递的是地址值

数组

容器的概念

数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致

数组的特点:

  1. 数组是一种引用数据类型

  2. 数组当中的多个数据,类型必须统一

  3. 数组的长度在程序运行期间不可改变

两种常见的初始化方式:

  1. 动态初始化(指定长度)
  2. 静态初始化(指定内容)
    动态初始化(指定长度):在创建数组的时候,直接指定数组当中的数据元素个数。
    静态初始化(指定内容):在创建数组的时候,不直接指定数据个数多少,而是直接将具体的数据内容进行指定。

使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值。规则如下:
如果是整数类型,那么默认为0;
如果是浮点类型,那么默认为0.0;
如果是字符类型,那么默认为’\u0000’;
如果是布尔类型,那么默认为false;
如果是引用类型,那么默认为null。

  • 数组越界异常
  • 数组空指针异常

JVM虚拟机的内存划分

JVM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值