java初学总结
Posted 联韵电子厂第一打胶手
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于java初学总结的主要内容,如果未能解决你的问题,请参考以下文章