一、注释
(1)单行注释 //
快捷键Ctrl+"/"或Crtl+"7"
(2)多行注释 /* */
快捷键:写:Ctrl+Shift+"/"
取:Ctrl+Shift+"\"
(3)文档注释 /** */javadoc可以提取文档注释来生成API, API为java类提供的使用说明书
eclipse,androidstudio可以在编辑界面时实时显示各成员的文档注释
文档注释只放在类、成员变量、方法、构造器、内部类才有意义
javadoc默认只提取public和protected成员之前的文档注释,
生成文档注释
javadoc -d<目录>源文件:-d指定将生成的API文档放到指定位置
二、标识符规则
Java是严格区分大小写的。
- 只能由于字母(包括中文字符)、数字、下划线、$组成,其中数字不能开头。
- 标识符不能是Java的关键字或保留字。
不能包含空格
只能包含$,不能包含@、#等特殊
三、数据类型分类
1、Java语言是“强类型”的语言:
- 所有变量,必须先声明(声明时就必须指定类型)、后使用。
- 指定类型的变量,只能装相应类型的值。
2、数据类型分为基本类型、引用类型
↗整型(byte、short、int、long)
↗ 浮点型(float、double)
基本类型 → 字符型(char)
↘ 布尔型(boolean) 只有2个值: true、 false
引用类型:类、接口、数组类型
整型:
byte(1个字节(byte)=8个位(bit))
8个bit表示2的8次方种状态。 因此一个bit只能表示256个数。
byte的取值范围: -128~0~127
short(2个字节(byte)=16个位(bit))
16个bit表示2的16次方种状态。能表示65536个数。
short的取值范围: -32768~0~32767
int (4个字节(byte)=32个位(bit))
int的取值范围: 负的2的31次方~0~2的31次方-1
long (8个字节(byte)=64个位(bit))
long的取值范围: 负的2的63次方~0~2的63次方-1
1. 当我们直接给出一个整数值时,它默认是int型, 系统绝不会把它当成long处理。
2. 当我们直接给出一个在指定取值范围内的整数时,系统也可把它当成byte、short使用。
3. 如果你系统把一个整数当成long使用,应该在整数后添加 l 或L。
long a=1234567890L(末尾加“L”、“l”),否则默认为int型;
10进制值。 默认。
16进制 Ox或0X开头 0~9、a、b~f(15)
8进制 O开头 0~7
2进制 b或B开头 0~1
浮点型:
float :4个字节,32位。
double:8个字符,64位。
- 当你直接给出一个带小数的数值时,它默认是double型。
如果希望当成float使用,应该在数值后添加f或F。
注:long a=1234567890L(末尾加“L”、“l”),否则默认为int型;
float b=2.3f(末尾加“F”、“f”),否则默认为double型;
- 浮点数支持2种形式:
-给出带小数的数。
-科学计数法。 2.11133E3
- 浮点型有3个特殊值:
正无穷大 Infinty 正数除以0,得到无穷大。
● 所有正无穷大都相等。
负无穷大 -Infinity 负数除以0,得到无穷大。
● 所有负无穷大都相等。
非数 NaN : 0 除以0, 对负数开方等。
非数与任何数都不相等,包括它自己!
*可以在数值中任意添加下划线(_)作为分隔符。
字符型
char
字符型占2个字节,16位, 65536种状态。
- 字符型也可以当成无符号整型(0~65535)(每个字符都有编号)用。
- 字符型的值,应该用单引号引起来。 (双引号引起来的是字符串)。
- 字符型有3种形式:
A。 '字符'
B。 转义字符(是字符就要加单引号‘ ’):\ddd:1-3为8进制数据所表示的字符,如\123
\uxxxx:4位16进制数据所表示的字符,如\u0052
\':单引号字符
\\:反斜杠字符
\t:垂直制表符,将光标移到下一个制表符的位置
\r:回车
\n:换行
\b:退格
\f:换页
C。 直接用字符的Unicode编号。
布尔型
boolean
它只有两个值: true、 false。
四、类型转换
-
(1)自动转换按从低到高的顺序转换。支持范围小的数值直接付给范围大的,
-
不同类型数据间的优先关系如下:
低--------------------------------------------->高
byte,short,char-> int -> long -> float -> double
(2)强制转换:-float a=(float)5.6 double转float 直接转换 -
-int i=Interger.parseInt(a) 字符转int 字符串不能直接转换
-
对应的包装类:boolean——Boolean byte——Byte
-
short——Short int——Integer
-
long——Long char——Character
-
float——Float double——Double
-
这8个包装类都提供了parseXxx(String str)用于将字符串转换为基本类型
-
(3)表达式类型的自动提升【自动类型提升的一种】:一个表达式包含多个基本类型时,整个表达式的数据类型被自动提升到最高等级操作数的数据类型
-
有的数据经过转型运算后,精度会丢失,而有的会更加精确
五、直接量
直接量,就是在源代码中直接给出的值。
int: 20、 0x12 、 12、012
long: 1L、 23L
float: 2.4f
double 2.3 3e2
char: '1' 、'\u2331'
boolean: true 、false
String: "helloworld"
六、运算符
(1)赋值运算符(=)
例:int a=3;(将3赋给a)
int b=a+c;(将a+c的和赋给b)
x=y=z=5;(将5的值赋给x、y、z,不建议使用)
(2)算术运算符(+(加)、-(减)、*(乘)、/(除)、%(取余))
例:12.45f*15=27.45;
45-30=15;
5*3=15;
6/2=3;
12%10=2;
(3)自增、自减运算符(++、--):操作员必须是一个整型或浮点型变量
例:假设a=5;以自增为例。
b=++a;//此时a先加1,再赋值给b,所以b=6;
b=a++;//此时a直接赋给b,之后加1,所以b=5;
(4)比较运算符(大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)、不等于(!=))
例:4>5,结果为false.
4!=5,结果为true.
注:结果为布尔值
(5)逻辑运算符(与(&&、&)、或(||)、非(!))
与:同真为真
或:一真为真
注:1)结果都为布尔值(flase、true)
2)短路运算符(&&):第一个为假,就不再判断第二个。
非短路运算符(&):第一个为假,依然判断第二个,相比之下更浪费时间。
(6)三元运算符(条件式?值1:值2):等价于if.....else语句
例:int y=a>b?x+1:x-1;
含义:如果a>b成立,y=x+1;否则y=x-1;
(7)位运算符
-
& : 按位与 ——当上下两位都是1,计算结果才是1.
| : 按位或 ——当上下两位都是0,计算结果才是0;只要有任何一个是1,结果就是1。
^ : 按位异或——当上下两位不同,计算结果才是1.
~ : 按位取反(按位非)。直接取反——只要一个运算数即可。
>>: 右移,右边移出去的位,将会被直接“砍掉”, 左边空出来的位补符号位。
右移N位,相当于除以2的N次方
<<: 左移,右边空出来的位就会添加0;
左移N位,相当于乘以2的N次方
>>>:无符号右移,右边移出去的位,将会被直接“砍掉”,左边空出来的位总是补0。
移出来的结果总是正数。