概述:
JRE:Java运行环境
JDK:java开发工具包
JVM:Java虚拟机
jvm使得Java可以在三个不同操作系统上执行,实现了Java的跨平台性,即Java具有良好的可移植性。
两个阶段:
1.编译阶段
2.运行阶段
运行与工作原理
java源代码->编译(javac)得到Java字节码文件->执行(Java)->运行结果
javac.exe 编译工具 将源代码编译为JVM可识别的字节码文件
java.exe java运行命令
字节码文件 .class
main :方法的名称 是一个被jvm虚拟机所识别的名称
类加载器 classLoader
在运行阶段时启动JVM,JVM会启动类加载器,在目录中寻找字节码文件,即.class文件
path环境变量配置的作用:使得Java文件可以在任意目录运行
驼峰命名法
关键字:小写
标识符:给类,接口,方法,变量等起名字时使用的字符序列,不能以数字开头。
注释:
1.单行注释://注释文字
2.多行注释:/注释文字/
3.文档注释:/*注释文字/
变量:在程序运行过程中其值可以改变的量
数据类型:
1.基本数据类型:数值型;字符型;布尔型
数据类型 占用字存储空间
byte 1字节
short 2字节
int 4字节
long 8字节//赋值时末尾需要加一个l或L,如long a = 10000000000l
float 4字节
double 8字节
2.引用数据类型:在Java的运行过程中,能够被分配到栈内存的数据类型。
类(class); 接口(interface);数组([ ])
String是类, 为引用数据类型
在不给变量赋值的情况下,所有的数据类型都是有默认值的
整形 默认值是0
浮点型 0.0
布尔型 false
String null
Java本身有垃圾回收机制
局部变量:定义在方法中或者是形式参数列表中的变量
成员变量:方法外的变量
区别:
1、作用范围:
局部变量只有在方法中可以使用,成员变量在整个类中都可以使用
2、默认值不同:
局部变量没有默认值,需手动初始化,成员变量有默认值
3、内存位置不同:
局部变量位于栈内存,成员变量位于堆内存
4、生命周期不同:
局部变量随着方法进栈诞生,随着方法出栈消失;成员变量随着对象创建诞生,随着对象被垃圾回收而消失。
自增/减:
前置自增/减:先运算再赋值
后置自增/减:先赋值再运算
字符串的拼接可用”+”进行
比较时,基本数据类型比较的是值是否相同,引用数据类型除String外比较的是地址是否相同。
System.in 调用系统打印设备
Java中next()、nextLine()、以及nextInt()的区别及用法
主要区别在于对空格的处理方式不同
next():使用next()方法读取输入时是将空格作为两个字符串之间的间隔来处理,返回String类型。
nextLine():使用nextLine()方法读取输入时是将空格作为整个输入字符串的一部分,返回String类型。
nextInt():使用nextInt()方法时,处理空格的方式与next()类似,将空格作为两个输入数据之间的间隔,只是它的返回值是int类型。并且当使用nexInt()方法时,只能输入int类型的数据。
创建数组和初始化的几种方式总结
一. 数组的声明方式
type[] arrayName
type arrayName[]
推荐使用第一种格式,具有更好的可读性,表示type[] 是一种引用类型(数组)而不是type类型
Java语言中声明数组时不能指定其长度(数组中元素的个数),这是因为数组是一种引用类型的变量,,因此使用它定义一个变量时,仅仅表示定义了一个引用变量(也就是定一个了一个指针),这个引用变量还未指向任何有效的内存,所以定义数组时不能指定数组的长度。而且由于定义数组仅仅只是定一个引用变量,并未指向任何有效的内存空间,所以还没有内存空间来存储数组元素,因此这个数组也不能使用,只有在数组进行初始化后才可以使用。
二. 数组的创建
Java中使用关键字new创建数组对象,
格式为:数组名 = new 数组元素的类型 [数组元素的个数]
一旦使用new关键字为数组分配了内存空间,每个内存空间存储的内容就是数组元素的值,也就是数组元素就有了初始值,即使这个内存空间存储的内容是空,这个空也是一个值null。也就是说不可能只分配内容空间而不赋初始值,即使自己在创建数组对象(分配内容空间)时没有指定初始值,系统也会自动为其分配
创建数组,如果在创建的同时不初始化数组则必须指定其大小: int Array0=new int[3];
三. 数组的初始化
通过两种方式可对数组进行初始化,即静态初始化和动态初始化。
- 静态初始化
静态初始化是指由程序员在初始化数组时为数组每个元素赋值,由系统决定数组的长度。
数组的静态初始化有两种方式,具体示例如下:
int[ ] array = new int[ ]{1,2,3,4,5};
int[ ] array = {1,2,3,4,5};
上面的2种方式都可以实现数组的静态初始化,其中花括号包含数组元素值,元素值之间用逗号“,”分隔。此处注意只有在定义数组的同时执行数组初始化才支持使用简化的静态初始化。为了简便,建议采用第二种方式。
- 动态初始化
动态初始化是指由程序员在初始化数组时指定数组的长度,由系统为数组元素分配初始值。
数组动态初始化,具体示例如下:
int[ ] array = new int[10]; // 动态初始化数组
上述示例中的格式会在数组声明的同时分配一块内存空间供该数组使用,其中数组长度是10,由于每个元素都为int型数据类型,因此上例中数组占用的内存共有10*4=40个字节。此外,动态初始化数组时,其元素会根据它的数据类型被设置为默认的初始值。本例数组中每个元素的默认值为0
[
](https://blog.csdn.net/weixin_45856205/article/details/112760088)