Win下学Java(二)"/>
Win下学Java(二)
Win下学习Java(二)
疑问与回答
1.什么是变量?
- 变量是内存中的一个区域,该区域有自己的名称(变量名)和数据类型,该区域的数据可以在统一类型范围内不断变化。变量是通过变量名来访问这块区域的。
2.变量是如何分类的?
-
变量既然是区域就可以 按被声明的位置划分:局部变量,全局变量。(注意:类对应的大括号外面不能有变量的声明) 1)成员变量:定义在类的内部,方法的外部; 2)局部变量:定义在方法的内部。
-
按数据类型分类 对每一种数据都定义了具体的数据类型,在内存中分配了不同大小的内存空间。
-
(1)基本数据类型:8种
整数型:
byte 、short 、 int 、 long 复制代码
注意: 在long型变量的值末尾需要加上"L"或"l", L的作用就是告诉虚拟机这是一个long型的数值 如果不加,也没问题,是因为做了自动类型转换。
2)浮点:
float、double 复制代码
注意:在float型变量的值末尾必须加上"F"或"f",如果不加报错或者做强制类型转换。 复制代码
3)字符:
char 复制代码
一个字符占两个字节,java中的任何字符都是字符。一个字符必须用''(单引号)修饰。如果一个字符用双引号修饰,则表示的是一个字符串而不是字符。 复制代码
4)布尔:
boolean 复制代码
布尔类型的值只有两个:true,false,注意没有null 复制代码
-
(2)引用数据类型:类、接口、数组、枚举等等
3.什么是数据类型转换?
-
(1)自动类型转换:当不同数据类型的变量之间进行运算时,会发生数据类型的自动转换。
char、byte、short==>int==>long==>float==>double** 复制代码
注意:
1)对于一个整数常量来说,默认是int型2)对于一个浮点数常量来说,默认是double型3)当小的数据类型与大的数据类型数据做运算时,小的数据类型会自动转换为大的数据类型。 复制代码
注意:
1)long和float运算时会转成float。2)当字符与int进行运算时,将自动转换为int型,字符型对应的二进制参考ASCII码表3)当char、byte和short之间进行运算时,运算结果将自动转换为int型。 复制代码
-
(2)强制类型转换: 当需要将大的数据类型数据转换成小的数据类型数据时,需要使用强制类型转换符“(目标数据类型)待转数据”
4.Java中当引号和双引号有何区别?
单引号表示字符,双引号表示字符串
eg:'a'+1==97(字符a的ASCII码为97)"a"+1==a1
(Java字符串和数字做运算会把数字转换为字符串再做连接运算,结果为字符串.
eg:System.out.println("5+5="+5+5); //打印结果为5+5=55
)复制代码
笔记
1.运算符
- 逻辑运算符
&& / || 短路与/短路或:如果左边为真,右边会参与运算,如果左边为假,那么右边不参与运算。
异或(^)与或(|)的不同之处在于:当左右都为True时,结果为false.(异或追求的是异)
! 表示逻辑非。
& 逻辑与:无论左边表达式结果是什么,右边的都要执行。
- 位运算符
<< 左移
>> 表示带符号右移
>>> 表示无符号右移
~ 表示取反位运算符。
- 三目(元)运算符
表达式:
运算结果的类型 变量 = 布尔类型的表达式?表达式1:表达式2
复制代码
三目运算符,根据布尔表达式的值来选择,如果值为true,则选择表达式1,即将表达式1的值赋给变量;如果值是false,则选择表达式2。
注意:表达式1和表达式2的类型必须相同。
- 其他
++ / -- : 作用是让变脸自增自减一
1) 前++:++在变量之前,变量先自增1,再参与运算。
2) 后++:++在变量之后,先参与运算,再自增1.
-- 同理。
复制代码
在Java中不可以写成3<x<6;应该写成x>3&x<6不能写m>=q>=n,应该写成m>=q&q>=n。
2.运算符的优先级
- 只有单目运算符,三目运算符,赋值运算符是从右向左运算的。
优先级判断栗子
- YouXianJi.java
public class YouXianJi {public static void main(String[] args) {int x = 2;int y = 3;int res = (x++)*2+(++x)/4+y;System.out.println("x="+x+",y="+y+",res="+res);}
}
复制代码
- 运行截图
- 运行顺序判断
//int res = (x++)*2+(++x)/4+y;
/*
// First x=2;
//Then (x++), Now: x==3; (x++) == 2; (x++)*2 == 4;
//And Then (++x), Now: x===>3+1==4; (++x) == 4; (++x)/4 == 1;
//res = 4 + 1 +3 ==8;
*/
复制代码
更多推荐
Win下学Java(二)
发布评论