目录
首先,说一下Java的数据类型:
1、基本数据类型:byte,short,int,long,float,double,char,boolean
2,引用数据类型:类,接口,抽象类,数组,String(字符串),枚举类型
一,变量
1.1 变量的概述
什么是,变量?变量是一个内存中的小盒子(小容器),容器又是什么?生活中我们会见到许许多多的例如:水杯用来装水,碗可以装饭菜,还有你家的大衣柜用来放衣服。那就是容器。说完了容器,那么变量又是什么? 在我们程序猿的心理,应该很明白了,答案就是数据! 对此,得出一个结论:变量是内存中装载数据的小盒子。你只能用它来存数据和去数据。
1.2基本的类型——4类8种
竟然衣柜不能用来装水,杯子不能用来放衣服,这说明了不同的容器装载的不同的物品。变量也是如此,在创建变量时需要指定变量的数据类型,例如:整型变量、浮点型变量等等,所以,变量必须要有明确的类型,什么类型的变量装载什么类型的数据。
表格:
四类 | 八种 | 字节数 | 数据表示范围 |
整型 | byte | 1 | -128~127 (-2(字节数*8)-1~2(字节数*8)-1-1) |
short | 2 | -32768~32767 (-2(字节数*8)-1~2(字节数*8)-1-1) | |
int | 4 | -2147483648~2147483647 (-2(字节数*8)-1~2(字节数*8)-1-1) | |
long | 8 | -263~263-1 (-2的63次方 ~ 2的63次方-1) | |
浮点型 | float | 4 | -3.403E38~3.403E38 |
double | 8 | -1.798E308~1.798E308000000000000 | |
字符型 | char | 2 | 表示一个字符,如('a','A','0','家') |
布尔型 | boolean | 1 | 只有两个值true与false |
1.3.定义变量
整数:默认类型是int类型,int类型的默认值是:0
小数:默认类型是double,默认值是:0.0
char:默认值是 (就是一个空格)
布尔类型:默认值是:false
定义变量的语法格式:
数据类型 变量名 = 数据值
int a = 1;
变量使用的注意事项
变量定义后可以不赋值,使用时再赋值是可以的,但是不赋值是不能使用的。
变量使用时有作用域的限制
变量不可以重复定义
1.4数据类型的转换
1 、自动类型转换
表示范围小的数据类型转换成范围大的数据类型。这种方式成为自动类型转换
自动类型转换的格式:
范围大的数据类型 变量 = 范围小的数据类型值;
2、强制类型转换
按数据类型范围从小到大依次列出:
表示范围大的数据类型转换成范围小的数据类型,这种方式称为强制类型转换
强制类型转换格式:
范围小的数据类型 变量 = (范围小的数据类型) 范围大的数据类型值;
二 、 运算符
运算符 | 运算规则 | 范例 | 结果 |
+ | 正号 | +2 | 2 |
+ | 加 | 1+1 | 2 |
+ | 连接字符串 | “中”+“国” | “中国” |
- | 负号 | int a=3;-a | -3 |
- | 减 | 3-1 | 2 |
* | 乘 | 2*3 | 6 |
/ | 除 | 5/2 | 2 |
% | 取模 | 5/2 | 1 |
++ | 自增 | int a=1;a++/++a | 2 |
2.1 算数运算符 ++、--的使用
++运算符,会在原有的值的基础上自增1
-- 运算符,会在原有值的基础上自减1
当++ -- 参与运算操作时。前置和后置的作用:
在前置:先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作
在后置:先使用变量a原有的值参与运算操作,运算操作完成后,变量a的值自增1或者自减1
代码:
/**
* 功能:算数运算:++,--
*
* @author Administrator
*
*/
public class TestDemo {
public static void main(String[] args) {
// a++---> a = a+1;
int a = 10;
int b = a++;
System.out.println("a==" + a);// 11-->10+1==11
System.out.println("b==" + b);// 10:b = a,a+1;a先将自己赋值给b,然后再+1
int a1 = 10;
int b1 = ++a1;
System.out.println("a1==" + a1);// 11
System.out.println("b1==" + b1);// 11:b=(a+1),a先将自己+1,然后再讲值赋值给b
int d1 = 100;
int d2 = d1--;// 因为d1==100 后-- 先赋值,所以d2 ==100 ,然后d1自减1 所以d1==99
int d3 = d1--;// 上一条d1==99,后-- 先赋值,所以d3=99, 然后d1自减 所以d1==98
int d4 = --d1;// 这个是先自减1,在赋值所以是的d1== 97 d4 == 97
int d5 = --d2;// 在之前d2==100 这里是自减在赋值,所以是d2 == 99 d5 == 98
int d6 = d4 + d5; //97+99
System.out.println("d6=="+d6); //196
}
}
2.2 赋值运算符
运算符 | 运算规则 | 范例 | 结果 |
= | 赋值 | int a=2 | 2 |
+= | 加后赋值 | int a=2,a+=2 | 4 |
-= | 减后赋值 | int a=2,a-=2 | 0 |
*= | 乘后赋值 | int a=2,a*=2 | 4 |
/= | 整除后赋值 | int a=2,a/=2 | 1 |
%= | 取模后赋值 | int a=2,a%=2 | 0 |
|
|
|
|
2.3 比较运算符
比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值 true或者false
运算符 | 运算规则 | 范例 | 结果 |
== | 相等于 | 4==3 | False |
!= | 不等于 | 4!=3 | True |
< | 小于 | 4<3 | False |
> | 大于 | 4>3 | True |
<= | 小于等于 | 4<=3 | False |
>= | 大于等于 | 4>=3 | True |
2.4逻辑运算符
逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false。
运算符 | 运算规则 | 范例 | 结果 |
& | 与 | false&true | False |
| | 或 | false|true | True |
^ | 异或 | true^flase | True |
! | 非 | !true | Flase |
&& | 短路与 | false&&true | False |
|| | 短路或 | false||true | True |
2.5 三目运算符
三目运算符与之前的运算符不同。之前学习的均为一元或者二元运算符。元即参与运算的数据。
格式:
(条件表达式)?表达式1:表达式2;
三木运算符规则:
先判断条件表达式的值:若为true,运算结果为表达式1,若为false ,运算结果为表达式2
2.6 运算符优先级
下图是每种运算符的优先级,按照运算先后顺序排序(优先级相同的情况下,按照从左到右的顺序依次运算)
优先级 | 描述 | 运算符 |
1 | 括号 | ()、[] |
2 | 正负号 | +、- |
3 | 自增自减,非 | ++、--、! |
4 | 乘除,取余 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | <<、>>、>>> |
7 | 大小关系 | >、>=、<、<= |
8 | 相等关系 | ==、!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | | |
12 | 逻辑与 | && |
13 | 逻辑或 | || |
14 | 条件运算 | ?: |
15 | 赋值运算 | =、+=、-=、*=、/=、%= |
16 | 位赋值运算 | &=、|=、<<=、>>=、>>>= |
三 、 面试题
1.请说出程序的输出结果:
public class Demo {
public static void main(String[] args) {
byte a = 12;
byte b = 20;
byte c = a+b;
System.out.print(c);
}
}
答案:编译错误,因为两个byte类型做算术运算会自动转换成int类型!!!
本人是以为java小白,如果本帖有哪些错误,可以提出,本人及时更正