基础
01:注释
-
种类:单行注释、多行注释、文档注释
-
单行注释 “//xxxx”
-
多行注释 “/*xx
xx*/”
-
JavaDoc文档注释 “/** xxxx */”
02标识符和关键字
关键字:
标识符
定义:Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
注意点:
- 所有的标识符都应该以字母或$(美元符)或下划线开始
- 首字符之后可以是字母/$/下划线/数字
- 不能用关键字作为变量名或方法名
- 标识符大小写敏感
03数据类型
Java是强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。(相反的还有弱类型语言)
Java的数据类型分为两大类:
-
基本类型
-
数值类型
整数类型:byte(1个字节)范围-128~127
short(2个字节)范围-32768~32767
int(4个字节)范围-2147483648~2147483647
long(8个字节)范围-9223372036854775808~9…7
浮点类型:float(4个字节)
double(8个字节)
(浮点数拓展:银行业务 用BigDecimal表示 最好避免用浮点数进行比较)
字符类型:char(2个字节)
-
布尔类型:boolean(占一位)只有true和false
-
-
引用数据类型:
类
接口
数组
04类型转换
低——————————————————>高
byte,short,char–>int–>long–>float–>double
- 强制转换:高到低;方法:(转换后的类型)变量名
- 自动转换:低到高;不用方法,自动的
不能对布尔值进行转换
不能把对象类型转换为不相干的类型
转换的时候可能存在内存溢出或者精度问题
一个例子:int a=10_0000_0000;
int b=20;
long c=a*b;
结果输出c= -1474836480;
这是因为a,b本来都是int类型,所以计算出来的结果也先是int类型,再被强制转换为long类型,
而200_0000_0000超出了int的 范围,所以算出来的结果不对
可以在定义的时候就把a,b定义为long类型,也可以强制转换:long c=a*(long)b
题外话( JDK7新特性:数字之间可以用下划线分隔,对输出无影响。如10_0000_0000)
05变量、常量、作用域
- 变量:可以变化的量
[ Java是一种强类型语言,每个变量都必须声明其类型
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域 ]
实例变量:从属于对象,在方法外,如果不初始化,这个类型的默认值是0 or 0.0,布尔值默认是false,除了基本类型,其他类型的默认值都是null
局部变量:在方法里面,必须声明和初始化值
类变量:在方法外,数据类型前加一个static
- 常量:初始化后不能再改变的值,可以理解为一种特殊的变量
final 常量名=值;
常量名一般用大写字符
- 变量的命名规范
类成员变量and局部变量:首字母小写、驼峰原则
常量:所有字母都大写,不同单词之间用下划线隔开
类名:首字母大写和驼峰原则
方法名:首字母小写和驼峰原则
06基本运算符
基本的只记一个我不容易记住的:% 取余运算 也叫模运算
题外话:复制当前行到下一行的快捷键:Ctrl+D
自增符:++
-
a++:先赋值再自增
a=1;
b=a++;
输出a=2;b=1
-
++a:先自增再赋值
a=1;
b=++a;
输出a=2;b=2
Math类:Math. 比如Math.pow(a,b)是a的b次方
07逻辑运算符、位运算符
逻辑运算符:&&与;||或;!非
*短路运算:当a&&b的a为假时,就不执行后面的b了
位运算符[与二进制有关]
& | ^ ~
例子:
A=0011 1100;
B=0000 1101;
A&B=0000 1100;
A|B=0011 1101;
A^B=0011 0001;(异或)
~B=1111 0010;(取反)
<< 左移 相当于乘2
右移 相当于除以2
例子:
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
所以2<<3=16
[位运算效率极高]
08三元运算符及小结
(三元运算符)条件运算符: ? :
x?y:z 如果x==true,则结果为y,否则结果为z
以下不是三元运算符
扩展赋值运算符:+=,-=,*=,/=
a+=b即a=a+b
字符串[String]连接符:+
例子:
int a=10;
int b=20;
则" "+a+b=1020;
a+b+" "=30;
(" "代表一个空的字符串)