Eclipse: 市场占有率最高
- IDE: 集成开发环境,一整套带图形界面的、功能强大的开发工
- IBM公司的,开源的、免费的,不需要安装,仅需要解压即可
JAVA基础知识
JAVA开发环境
-
编译期: .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
- 若参与运算有可能溢出需在第一个数字后加L
-
double: 浮点型,八个字节
- 小数默认为double,若想表示float需在数字后面加F或者f
- double或者float在参与运算时有可能会出现误差
-
boolean:布尔型,1个字节
- 只能赋值为true或flase
-
char:字符型,两个字节
-
采用Unicode字符编码格式,没一个字符对应一个码(0~65535之间),表现形式是char,本质上是int
‘a’=97 ‘A’=65 ‘0’=48
-
字符型必须放在单引号中,有且只有一个
-
特殊字符需要用\来转义
-
-
byte:字节型,1个字节
- 取值范围-128~127
数据类型从小到大依次为
byte<short(cher)<int<long<double
- 类型转换:
- 从小到大自动转
- 从大到小,需要在前面加上需要强转转的类型
- 整数直接量可以直接赋值给byte,short,char,但不能超出范围
- byte,short,char在运算时系统一率先转为int再运算
运算符
-
算数运算符: +,-,*,/,%,++,–
- ++和–自增一和自减一,单独运算时先改变数值,再运算,参与运算时,先运算再自增或自减一,
- ++或–放变量前面先改变数值
-
关系运算符:>,<,==,>=,<=,!= 返回值类型:布尔型
-
逻辑运算符:&&,||,! 返回值类型:布尔型
- &&见flase则flase
- ||见true则true
-
赋值运算符:=,+=,-=,*=,/=,%=
-
字符串连接运算符:+
-
三目运算符:判断条件?数1:数2
分支结构
- if----1条路
- if…else:两条路
- if…else…if:多条路
- switch…case:多条路
- 优点:效率高.结构清晰
- 缺点:整数.相等
- break:跳出swicth
循环
-
循环:反复多次执行一段相同或相似的代码
-
循环变量的三要素
- 循环变量的初始化
- 循环的条件
- 循环改变的方向
-
循环结构:
- 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:新数组的长度
- System.arraycopy(src,start1,des,start2,length);
-
数组的排序: Arrays.sort