目录
概述
- Java出生年份:1995年
- Java亲妈:Sun公司
- Java后妈:Oracle公司
- Java能力:可跨平台运行
- 一句话简介:Java是一门半编译半解释的面向对象语言
Java的安装与环境搭建
-
Java住址: Java Downloads | Oracle 中国
-
环境配置
- 在“系统环境变量”中配置与Java相关的环境变量
- 新建变量名:JAVA_HOME;其变量值是Java的安装路径
- 配置变量名Path;新建其环境变量:%JAVA_HOME%\bin
数据类型
数据类型 | 字节 | 位数 | 取值范围 | ||
原始类型 | 整型 | byte | 1 | 8 | -128~128-1 |
short | 2 | 16 | -32768~32768-1 | ||
int | 4 | 32 | -2^31~2^31-1 | ||
long | 8 | 64 | -2^63~2^63-1 | ||
浮点型 | float | 4 | 32 | 3.402823e+38 ~1.401298e-45 | |
double | 8 | 64 | 1.797693e+308~ 4.9000000e-324 | ||
字符型 | char | 2 | 16 | -128~128-1 or 0~255 | |
布尔型 | boolean | 4 | 32 | true,false | |
引用类型 | 数组、类、接口 | 4 | 32 |
类型转换
自动类型转换
- 小字节类型数据可以直接保存到大字节类型的变量中
public static void main(String[] args) {
short h1=10;
int h2=h1;
System.out.println(h2); //输出h2,h2=10
}
- 整型数据可以直接保存到浮点型变量中
public static void main(String[] args) {
int h3=100;
double h4=h3;
System.out.println(h4); //输出h4=100.0
}
强制类型转换
- 同类型下,如果大字节类型的数据强制保存到小字节类型的变量中,需要强制类型转换
变量
保存数据的内存区域,变量中的数据可以变化
定义变量
数据类型 变量名;
int i;
变量赋值
变量名=值;
- =右边的值有默认的数据类型。
- 整数默认为int,小数默认double类型
int i;
i=123; //变量赋值
变量初始化
数据类型 变量名 = 赋的值;
- 变量需要定义、赋值后才能使用
int i = 123;
运算符
运算符类别
- 算术运算符:+ 、 - 、 * 、 / 、 %
- 关系运算符:> 、< 、 = 、 >= 、<= 、!=(关系运算的计算结果都是boolean型)
- 逻辑运算符:&& 、 || 、 !
- 赋值、复合赋值运算符:= 、 += 、 -= 、 *= 、 /= 、 %=
- 自增、自减运算符:++ 、 --
- 条件运算符:表达式1 ? 表达式2 : 表达式3
运算符的优先级
小括号>>单目运算符(!、++、--)>>算术>>关系>>逻辑>>条件>>赋值
条件语句——if、switch
if语句
判断的结果返回boolean型
- 单分支
public static void main(String[] args) {
if(判断条件){ //若为真则执行
执行语句
}
}
- 双分支
public static void main(String[] args) {
if(判断条件){ //若为真则执行
执行语句
}else{ //若为if()判断为假则执行else
执行语句
}
}
- 多分支
public static void main(String[] args) { if(判断条件){ //若为真则执行 执行语句 //若为if()判断为假则执行else if(),若依旧为假,则执行后面的else if() }else if (判断条件){ 执行语句 }else if (判断条件){ 执行语句 } }
- 嵌套
public static void main(String[] args) {
if(判断条件){ //先判断真或假,真则判断其中嵌套的if()
if(判断条件){
执行语句
}
}else{ //若外嵌套的if()为假,则判断else中的if()
if(判断条件){
执行语句
}
}
}
- 在方法的if语句中出现return,就不再执行后续的代码
- 如果方法的返回值是void,return后无需添加值,如果不是void,return后必须添加值
- 可以将if嵌套改造为if-return
switch语句
当取值是确定的数时,推荐使用switch语句
当取值是一个不确定的范围时,推荐使用if语句
switch(非long整型、char、String、enum){
case 可能的值:
break;
case 可能的值:
break;
case 可能的值:
break;
case 可能的值:
break;
default:
break;
}
- break是终止循环语句
- break在 switch 语句中可以终止一个语句序列,如果不在case中加入break,则在执行完当前case后,程序会执行后续case的内容;当switch在循环中嵌套时,switch中的break语句只能终止switch,而不能终止循环
循环语句——for、while、do while
for语句
for(定义循环变量;循环条件;循环变量更新){循环体}
当循环变量不满足循环条件时,for()循环终止
public static void main(String[] args) {
for(定义循环变量;循环条件;更新循环变量){
循环体
}
}
for()循环的变式
public static void main(String[] args) {
for (;;) {
循环体
}
}
public static void main(String[] args) {
for (int i=0;true;i++) {
循环体
}
}
while
while(循环条件){循环体}
public static void main(String[] args) {
while(循环条件){
循环体
}
}
当需要给程序外层嵌套一个死循环时,可以用while()语句设置一个boolean型变量,如boolean flag=true;(或直接设成while(true){循环体})具体如下:
public static void main(String[] args) {
boolean flag=true;
while (flag){
循环体
}
}
do while
do{循环体}while(循环条件)
public static void main(String[] args) {
do{
循环体
}while(循环条件);
}
for、while、do while的异同点
区别
- 循环次数不同,与for和while语句不同的是,do while语句的循环至少执行一次
- 执行顺序不同,for、while语句是先判断、再循环,do while语句是先循环再判断
相同点
- 循环条件都是boolean值
数组
数组定义好后,其数据类型和大小不可改变,无法获取当前数组中的元素数量
数组中的数据
- 数据类型相同
- 都被称之为元素
- 都有属于自己的索引,索引从0开始计数
- 最后一个数据的索引为数组长度-1
定义数组
数据类型[ ] 数组名 = new 数据类型[ 定义数组的大小 ]
数组的初始化
-
数据类型[ ] 数组名 = new 数据类型[ ]{元素1,元素2...};
-
数据类型[ ] 数组名 = {元素1,元素2...};
数组的赋值和取值
赋值
- 动态赋值
通过数组名[索引]给数组中某个位置赋值
public static void main(String[] args) {
int[] nameid=new int[10]; //定义一个长度为10的数组
nameid[0]=123; // 将123赋值给nameid[0]
nameid[5]=234;// 将234赋值给nameid[5]
}
- 静态赋值
在定义数组的同时给数组赋值
public static void main(String[] args) {
//静态赋值在定义时不给数组设置长度
//数组依据输入的元素个数生成长度
int[] nameid=new int[]{123,234,345};
}
数组的特点
- 定义数组后,数组中的各个元素都有初始默认的值:整型默认0,浮点型默认0.0,字符默认空白字符,布尔型默认false,引用类型默认null
- 在编写代码时,可以通过“数组名.length”获取该数组的长度
- 当涉及重复输入数组元素时,可以使用循环顺序输入
- 输入元素可能出现错误时,可以设置中间参数接收输入值,判断满足条件后再通过数组名[ i ] = 参数名赋值给数组,防止错误输入占用数组内存
- 可以使用for循环遍历数组(快捷键:iter;表达式:for(数据类型 变量名 :数组名){循环体})