1-java基础

一、 基本数据类型

在这里插入图片描述

1.1 整型

byte a=127;  
//b=128; 报错,128超过byte所能存储的最大值  
byte b= 128;  
  
short c=32767;  
//d=32768; 报错,32768超过short所能存储的最大值  
short d=32768;  
  
int e=2147483647;  
//f=2147483648; 报错,2147483648超过int所能存储的最大值  
int f=2147483648;  
  
//g=2147483648; 报错,java默认整数直接量是int类型,超过int类型必须加l/L  
long g=2147483648;  
long h=2147483648L;

1.2 浮点型

double a=5.54;  
//  b=5.5; 报错,java默认浮点型直接量是double类型,不是double类型必须加f/F 
float b=5.5;  
float c=5.5F;

1.3 字符型

定义时可以使用数字(Unicode)码,或者使用’单引号’来标记

char a=97;
char b='a';
System.out.println(a==b);// true 这是因为字符a的Unicode码就是97

1.4 布尔型

boolean a=true;  
boolean b=false;

二、变量与常量

2.1 变量

在java中,每个变量都有一个类型,在声明变量时,必须先指定变量的类型,然后才是变量名,但是变量名需要遵循一下规则:

  1. 必须以字母开头并只包含字母或数字
  2. 不能使用java的保留字作为变量名
int student;
double salary;

在声明一个变量名后,必须使用赋值语句对变量进行显示的初始化,未进行初始化的变量是不能使用的。

int student;  
System.out.println(student);// 报错,使用了未初始化的变量

2.2 常量

在java中使用final来指定常量

final int PI =3 ;
PI=4;// 报错 不能为常量重新赋值

final定义的常量表示这个常量只能被赋值一次,一旦赋值了就不能修改

2.3 枚举类型

场景:当变量的取值在一个有限的集合内,比如衣服的尺码:小、中、大、超大,在定义这种的时候,可以使用枚举

enum Size{  
    SMALL,MEDIUM,LARGE,EXTRA_LARGE  
}

三、数据类型转换

3.1 类型转换

3.1.1 自动类型转换

① 不需要我们自己操作,由jvm自动完成的转换
② 当我们把小的类型变量(数据)赋值给较大的变量时,会自动进行数据转换

3.1.2 强制类型转换

① 当我们把大的类型变量(数据)赋值给较小的变量时,需要进行强制类型转换,需要注意的是,强制类型转换可能会造成精度缺失和溢出。
② 语法:变量类型A 变量a = (A)变量b

3.1.3 数据类型之间合法的转换

在这里插入图片描述

基本数据类型转换,其中实线部分表示无信息丢失的转换,而虚线表示可能存在精度损失的转换

3.2 运算中的类型转换

  1. byte、short、char和int在进行算术运算时的结果都是int型
  2. 除了上述的,在算术运算中的结果类型都是按照其中最大的类型定的
byte b1=1; 
byte b2=2; 
byte b3=(byte) (b1+b2); 
long l=123L; 
//int n=l+123; 结果是long型 
long n=l+123;

四、运算符

4.1 算术运算符

加(+)、减(-)、乘(*)、除(/),取余(%),自增(++)、自减(–)
注意:

  1. 除(/):整数的除法运算结果一定是整数
  2. 取余(%):常用在整数上
  3. 自增(++)、自减(–)在位置上的区别:
    ①:符号在前:先进行自增(自减)运算,然后在进行其他运算
    ②:符号在后:先进行其他运算,然后在进行自增(自减)运算

4.2 关系与逻辑运算

关系运算符:>、<、>=、<=、==(是否相等)、!=(不等于)
关系运算符的结果是boolean值,常用做条件表达式中
逻辑运算符:&&/&(与)、||/|(或)、!(非)
参与逻辑运算的都是boolean值,而且运算结果也是boolean

4.3 字符串连接符

连接符:+
当参与运算的元素中一方是字符串时,则是连接符

4.4 条件(三目)运算符

语法:(条件表达式)?(表达式1):(表达式2)
运算逻辑:先判断条件,如果为true,则选择表达式1;如果为false,则选择表达式2

五、控制流程

5.1 分支结构

5.1.1 if结构
5.1.1.1 if语句
  • 语法
if(条件){
	code;
}

当条件成立时,执行code,条件不成立,则跳过

5.1.1.2 if…else语句
  • 语法
if(条件){
	code1;
}else{
	code2;
}

当条件成立时,执行code1,条件不成立时执行code2

5.1.1.3 if…else if …else语句
  • 语法
if(条件1){
	code1
} else if(条件2){
	code2;
}
...
else{
	code3;
}

当条件1成立时,执行code1,若条件1不成立但是条件2成立时则执行code2,如果等等条件都不成立,则执行code3

5.1.2 switch结构
  • 语法
switch(表达式){
	case v1:
		code1;
		break;
	case v2:
		code2;
		break;
	...
	default:
		code3;
		break;
}

先计算表达式的值,和case中的值进行比对,找到对应的code,需要注意的是,在执行对应的code时,会依次向下继续执行其他的code,直到碰到break为止

5.2 循环结构

5.2.1 while语句
  • 语法
while(条件){
	code;
}

先判断条件,如果成立,则执行code,执行完毕后在判断条件是否成立,如果成立,继续执行code,直到条件判断不成立为止

5.2.2 do…while语句
  • 语法
do{
	code;
}while(条件);

先执行code,执行完毕后在判断条件是否成立,如果成立,继续执行code,直到条件判断不成立为止

5.2.3 for语句
  • 语法
for(表达式1;条件;表达式2){
	code;
}

先执行表达式1,在执行判断条件,如果成立则执行code,执行完毕后执行表达式2,再判断条件是否成立,如果成立,则执行code,执行完毕后执行表达式2,直到条件不成立为止

5.3 跳出语句

5.3.1 continue语句
  • 跳出本次循环,直接进行下一次循环(这个循环本身并没有被终止)
int j = 0; 
while (j < 10) { 
	j++; 
	// 当j的值为3的倍数时,则跳过本轮操作 
	if (j % 3 == 0) { 
		continue; 
	} 
	System.out.println(j);//1 2 4 5 7 8 10 
}
5.3.2 break语句
  • 结束当前循环
int i = 1; 
while (i < 10) { 
	// 当i为5时,终止循环 
	if (i == 5) { 
		break; 
	} 
	System.out.println(i);// 1 2 3 4 
	i++; 
}
5.3.3 带标签的break
  • 常用于跳出多重嵌套的循环语句
read_data:  
for(int i =1;i<5;i++){  
    for (int j = 1; j < 3; j++) {  
        if(i==2 && j==1){  
            break read_data;  
        }
        System.out.println(i*j); // 1 2
    }
}

这里的read_data是个标签,标签必须放在希望跳出的最外层循环之前,后面必须紧跟一个冒号

六、数组

数组是最简单的一种数据结构,是用来存储相同类型值的序列

6.1 数组的声明
int [] arr;
6.2 数组的初始化

①:在声明的同时指定数组的内容:变量类型[]a={元素};

int [] arr={1,2,3}

②:指定数组的长度,元素为该数组类型的默认值:变量类型[] 数组=new 变量类型[length]

int [] arr=new int[100]

③:给数组添加元素,元素的个数就是数组的长度:变量类型[] 数组 = new 变量类型[]{元素}

int [] arr = new int[]{1,2,3}
6.3 数组的访问
  • 通过length属性来访问数组的长度:arr.length
System.out.println(arr.length);
  • 通过数组的下标访问数组的元素(数组的下标从0开始,最大值为数组的length-1)
System.out.println("数组c的第一个元素是:" + arr[0]);
//把数组的第二个元素赋值为5 
arr[1] = 5; 
System.out.println("数组c的第二个元素是:" + arr[1]);
6.4 数组的遍历
  1. 使用Arrays.toString(arr)来遍历数组
System.out.println(Arrays.toString(arr));
  1. 使用循环来遍历数组
for (int i = 0; i < arr.length; i++) { 
	System.out.println(arr[i]); 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

启航zpyl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值