编译期: .java源文件经过编译,生成.class字节码文件
运行期: jvm虚拟机加载.class并运行.class (0和1)
特点-----:跨平台一次编译到处运行
JVM:java虚拟机
加载.class并运行.class
JRE:java运行环境
除了包含jvm以外还包括运行java所必须的环境
JRE=JVM+java系统类库(小零件)
JDK:java的开发工具包
除了包含JRE以外还包括了开发java所需的开发工具包JDK=JRE+编译、运行等命令工具开发java最小的环境是JRE
运行java最小的工具是jdk
变量的初始化的方式有两种
声明同时初始化先声明后初始化变量的操作必须与数据类型匹配
变量再使用之前必须初始化
变量的命名规则
必须以数字 .字母. _ .和$并且不能以数字开头严格区分大小写不能使用关键字允许中文命名但不建议,建议使用英文"见名知意"和"驼峰命名法"byte>short>int >long>float>double>boolean>char
int :整型 四个字节 取值范围:-21亿到21亿
整数直接默认为int类型,但不能超出范围,若超出范围发生编译错误两个整数相除,结果还是整数,小数位无条件舍去整数运算时若超出范围,会发生溢出,但不会编译错误long:长整型,八个字节
长整形直接量需在数字后面加L或者l若参与运算有可能溢出需在第一个数字后加Ldouble: 浮点型,八个字节
小数默认为double,若想表示float需在数字后面加F或者fdouble或者float在参与运算时有可能会出现误差boolean:布尔型,1个字节
只能赋值为true或flasechar:字符型,两个字节
采用Unicode字符编码格式,没一个字符对应一个码(0~65535之间),表现形式是char,本质上是int
‘a’=97 ‘A’=65 ‘0’=48
字符型必须放在单引号中,有且只有一个
特殊字符需要用\来转义
byte:字节型,1个字节
取值范围-128~127byte<short(cher)<int<long<double
类型转换: 从小到大自动转从大到小,需要在前面加上需要强转转的类型整数直接量可以直接赋值给byte,short,char,但不能超出范围byte,short,char在运算时系统一率先转为int再运算算数运算符: +,-,*,/,%,++,–
++和–自增一和自减一,单独运算时先改变数值,再运算,参与运算时,先运算再自增或自减一,++或–放变量前面先改变数值关系运算符:>,<,==,>=,<=,!= 返回值类型:布尔型
逻辑运算符:&&,||,! 返回值类型:布尔型
&&见flase则flase||见true则true赋值运算符:=,+=,-=,*=,/=,%=
字符串连接运算符:+
三目运算符:判断条件?数1:数2
循环:反复多次执行一段相同或相似的代码
循环变量的三要素
循环变量的初始化循环的条件循环改变的方向循环结构:
while结构:先执行后判断,有可能一次都不执行do…while:先执行后判断,最少执行一次for:应用率最高 break:跳出循环countinue:跳出本次循环中的剩余语句,进入下一次循环是一种引用数据类型
相同元素的集合
数组的定义:
数据类型[ ] 变量名=new 数据类型[ ]数组的初始化
声明时直接初始化先声明,再初始化(使用前初始化)数组的访问
通过数组.length可以获取数组的长度,从0开始,最大到数组的长度-1数组的复制
System.arraycopy(src,start1,des,start2,length); src:源数组,即被复制的数组名 start1:源数组复制的开始下标 des:目标数组,即复制到的数组名 start2:目标数组复制的开始下标 length:复制的长度元素类型[] 变量名=Arrays.copyOf(src,newLength); src:源数组 newLength:新数组的长度数组的排序: Arrays.sort