1、变量
(1)变量要先声明后赋值
(2)方法中所声明的变量必须初始化以后才能使用
(3)可同时声明多个变量
(4)不能声明同名变量
(5)关键字不能作为变量名
(6)变量名区分大小写
(7)变量名最好通俗易懂
2、数据类型
(1)基本类型:布尔类型(boolean)、
数值类型(整数类型(byte/short/int/long/char)、浮点类型(float/double))
(2)引用类型:类(class)、接口(interface)、数组、空类型(null)
(3)栈内存中一般存放方法中声明的一些基本类型;
堆内存中一般存放new出来的对象和引用类型;
方法区中一般存放要加载类的一些信息,静态变量,常量...
(4)
数据类型 | 关键字 | 内存中占用字节数 | 取值范围 | 默认值 |
布尔型 | boolean | 1字节 | true,false | false |
字节型 | byte | 1字节 | -128~127 | 0 |
字符型 | char | 2字节 | 0~ | ‘\u0000’ |
短整型 | short | 2字节 | ~ | 0 |
整型 | Int | 4字节 | ~ | 0 |
长整型 | long | 8字节 | ~ | 0 |
单精度浮点型 | float | 4字节 | 1.4013E-45~3.4028E+38 | 0.0F |
双精度浮点型 | double | 8字节 | 4.9E-324~1.7977E+308 | 0.0D |
(5)数据类型要保持一致
(6)字符型变量必须用单引号括起来(Java中字符类型使用unicode字符编码)
(7)自动类型转换条件有:两种类型兼容;目标类型大于源类型 (小的赋给大的);表达式中,一个操作数为double型,则整个表达式可以提升为double型。
(8)强制转换类型条件有:两种类型兼容;一般目标类型小于源类型(大的赋给小的)。
大小总结:byte<short(char)<int<long<float<double
3、运算符
(1)算术运算符:+(加运算/字符串连接) -(减运算/取负数)*(乘)/(除)%(取余)++(自增)--(自减)
注:字符串加任何数据类型都是字符串连接
(2)赋值运算符:= += -= *= /= %=
(3)关系运算符:== != > < >= <= (结果为true或false)
(4)当有赋值运算符的时候,++在后面,则先赋值后自身加一;++在前面,则先自身加一,再赋值。——同理。
(5)逻辑运算符:
运算符 | 说明 | 表达式 | 描述 |
&& | 短路与 | 条件1&&条件2 | 两条件同时为真时,结果为真;若1为假,则不判断2 |
|| | 短路或 | 条件1||条件2 | 两条件有一个为真时,结果为真;若1为真,不判断2 |
! | 非 | !条件 | 条件为真(假),结果为假(真) |
& | 与 | 条件1&条件2 | 两条件同时为真时,结果为真;若1为假,则2还需要判断 |
| | 或 | 条件1|条件2 | 两条件有一个为真时,结果为真;若1为真,2还需要判断 |
^ | 异或运算 | 条件1^条件2 | 当一个为真,一个为假时,结果为真。 |
(6)位运算符:
运算符 | 说明 | 表达式结果 | 特点 |
& | 与运算 | 6&2=3 | 只有对应的两个二进位均为1时,结果位才为1,否则为0 |
| | 或运算 | 6|3=7 | 只要对应的两个二进位有一个为1时,结果位就为1 |
^ | 异或运算 | 6^3=5 | 当两对应的二进位相异时,结果为1 |
~ | 非运算符 | ~9=-10 | 功能是对参与运算的数的各二进位按位求反 |
<< | 左移 | 2<<3=16 | 往左移位,右边补0 |
>> | 右移 | 3>>1=1 | 往右移位,正数左边补0,负数补1 |
>>> | 无符号右移 | 3>>>1=1 | 往右移位,左边补0 |