java初学总结

一、java中的数据类型

1.基本数据类型

整型:byte(一个字节)、short(2个字节)、int(4个字节)、long(8个字节)

浮点型:float(4个字节)、double(8个字节)

字符型:char(2个字节)

布尔类型:boolean(大小不固定一般当做int)

默认值:byte(0)、short(0)、int(0)、long(0)、float(0.0f)、double(0.0d)、boolean(false)

2.引用类型

.......

二、变量

1.概念

内存上的一块区域,数据的基本存储单位。

2.组成

变量的数据类型  + 变量名+=+值(数据)

3.种类以及生命周期

局部变量(在方法内部声明的,生命周期跟随着方法被调用产生栈帧而生成,随着方法的调用结束而销毁),实例变量(在类中声明没在方法内声明而且没加static,生命周期跟随着类),静态变量(声明在类中,前面有static,生命周期跟随着类)

三、类型转换

1.数据类型的自动提升

当小数据类型赋值给大数据类型时,自动发生类型提升。

(通过数据存储的范围来判断大小)

规则如下:

byte->short->int->long->float->double

char->int->long->float->double

2.强制类型转换

当大数据类型被赋值给小数据类型时,需要使用强制类型转换。

规则:

大数据类型 +大数据类型变量名=值

小数据类型+变量名=(小数据类型)大数据类型变量名   

转换结果

 ① 浮点型强转为整型,指直接取整数部分

例如:double a=10.0;

           int b=(int)a;

​ ②当大数据类型的整型的值在小数据类型的整型的范围内,不会发生损失

例如:int a=10;

          short b=(short)a;

          此时b的值还是为10

​ ③当大数据类型的整型的值超出了小数据类型的整型的值的范围,数据会发生损失

例如:int a=256;

         short b=(short)a;

        此时b的值为1;

四、运算符

1.算术运算符

 基本运算符:+  -  *  /  %

其中最需要注意的是除法

a. int/int的结果还是int,如果需要较为准确的答案是可以用double

例如:

int a=10;
int b=20;
System.out.println(a/b);

此时输出0;

double a=10.0;
double b=20.0;
System.out.println(a/b);

此时输出0.50000;

b. 0不能作为除数

当0作为除数时,会抛异常

c.%表示取模,既能对int取模也能对double取模

例如:

double a=11.5
System.out.println(a%2);

此时输出1.5;

2.赋值运算符

增量赋值运算符:= += -= *= /= %=

 注意:+= 没有自动类型提升。

byte b = 1;

​ b = b + 1;

​System.out.println(b);//编译报错

​ byte a= 1;

​ a+=1;

​ System.out.println(a); //编译通过,原因:+=没有自动类型提升,打印结果为2

自增运算符:++  --

int a = 10;
int b = ++a;
System.out.println(b);
int c = a++;
System.out.println(c);

结论:1. 如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别.
          2. 如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值

3.关系运算符

==,  <=,  >=,!=,>,<

表达式的结果类型为布尔类型,这样的表达式称为布尔表达式。

​ 注意:用关系运算符连接的表达式都为布尔表达式,

​ 关系成立-true;关系不成立结果为false.

4.逻辑运算符

&&  ||  !

注意: 逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean!

a.逻辑与&&

当两个操作数都为true时,结果才为true(短路运算符)

b.逻辑或||

当两个操作数其中一个为true,结果就为true(短路运算符)

c.逻辑非!

操作数为true时结果为false,操作数为false时结果为true

d.&和|

效果与&&和||相差不大,只是不支持短路求值。

5. 条件运算符(三元运算符)

​  语法:布尔表达式 ? 表达式1: 表达式2;

​  原理:如果布尔表达式的结果为true,则执行表达式1,否则执行表达式2.

例如:

int a=10;
int b=20;
int c=(a>b?a:b);

此时c的值为b的值

6.位运算符

java中的最小操作单位不是字节,而是二进制位(bite位)

位运算符一共有四个

& | ~ ^

按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.

例如:

int a=3;011
int b=7;111
System.out.println(a&b);//结果为3(011)

按位或|:如果两个二进制位都为0,结果为0,否则为1.

例如:

int a=3;
int b=7;
System.out.println(a|b);//结果为7

  按位异或^:如果两个二进制位相同则为0,不同则为1.

例如:

int a=3;
int b=7;
System.out.println(a^b)//结果为4

   按位取反~:如果二进制位为1则变为0,为0则变为1.

例如:

int a=1;
System.out.println(~a);//结果为-2

7.移位运算符

左移运算符<<

操作数的二进制位左移一位,右边补0

右移运算符>>

操作数的二进制位右移一位,左边补符号位(正数补0,负数补1)

无符号右移运算符>>>

操作数的二进制位右移一位,左边补0

注意:

1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
4. 移动负数位或者移位位数过大都没有意义.

五、分支结构

1.顺序结构

按照代码书写的顺序一步一步的执行

int a=10;
int b=20;
System.out.println(a);
System.out.println(b);
//程序按书写的顺序依次打印a,b

2.分支结构

if语句

基本语法形式1

if(布尔表达式){

}

如果布尔表达式为真则执行{}中的内容

基本语法形式2

if(布尔表达式){

}else {

}

如果布尔表达式为真则执行第一个{}中的内容,否则则执行else{}中的内容

基本语法类型3

if(布尔表达式){

}else if(布尔表达式){

}else{

}

如果第一个布尔表达式为真则执行if{}中的内容,若第二个布尔表达式的内容为真则执行else if{}中的内容,若所以布尔表达式都为假,则执行else{}中的内容

switch语句

switch(整数|枚举|字符|字符串){

    case  内容1{

    内容满足时执行语句;

   break;

  }

 case 内容2{

内容满足时执行语句;

break;

   }

.....

default :{

内容都不满足时执行;

break;

  }

}

例如:

int day=1;
switch(day){
 case 1{

System.out.println("星期一");
 break;
}
case 2{

System.out.println("星期二");
 break;
}
case 3{

System.out.println("星期三");
 break;
}
case 4{

System.out.println("星期四");
 break;
}
case 5{

System.out.println("星期五");
 break;
}case 6{

System.out.println("星期六");
 break;
}
case 7{

System.out.println("星期天");
 break;
}
default:{
System.out.println("输入有误");
break;
}


}

 注意:

1.break不要遗漏,否则会造成多个分支被执行。

2.switch中的值只能是整数|枚举|字符|字符串。

3.switch不能表示过于复杂的条件。

3.循环结构

1.whlie循环

while(循环条件){
循环语句;
}

循环条件为 true, 则执行循环语句; 否则结束循环

例如:

int num=0;
while(num<10){
System.out.println(num);
num++;
}

这个程序会循环10次,分别打印0到9

注意:

1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.

while中同样有break,他可以让循环提前结束并退出

例如:

int num=0;
while(num<10){
if(num==5){
System.out.println("找到5了");
break;
}
num++;
}

这个程序会在num=5时,退出循环

continue的功能时跳过本次循环进入下一次循环

例如:

int num=0;
while(num<10){
if(num==5){
num++;
continue;
}
System.out.println(num);
num++

}

这个程序不会打印5,他被跳过了。他与break不同的是他不会结束循环而是跳过本次循环进入下次循环。

2.for循环

for(表达式1;表达式2;表达式3){
循环体;
}
表达式1: 用于初始化循环变量.
表达式2: 循环条件
表达式3: 更新循环变量.

例如:


for(int i=0;i<10;i++){
System.out.println("你好");
}

这个程序会打印10次你好

注意 (和while循环类似)
1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行

3.do while循环

do{
循环语句;
}while(循环条件);
先执行循环语句, 再判定循环条件

例如:

int i=0;
do{
System.out.println(i);
num++;
}while(num<10)

注意:

1. do while 循环最后的分号不要忘记
2. 一般 do while 很少用到, 更推荐使用 for 和 while

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>