Java基础语法
数据类型
//强类型语言:要求变量的使用严格要求规范,所有变量必须先定义后使用
//整数
int num1 = 10;
byte num2 = 20;
short num3 = 30;
long num4 = 40L; //long在数值后加L表示为long类型
//小数
float num5 = 50.1F; //float类型在数值后加F来区别和double区别
double num6 = 50.1;
//字符(不是字符串)
char name = 'a'; //字符类型char只能声明一个字符,可以实字母或汉字,但只能一个
//布尔
boolean flag = true; //布尔值只有true和flase
//类型转换,从小到大
byte short char int long float double
数据类型面试题
- 关于进制:二进制0b开头、八进制0开头,十六进制0x开头。
- 关于float:float是舍入误差的,最好完全不要使用float进行比较。金钱定义使用java工具类BigDecimal。
- 关于转换:不能对布尔值进行转换,不能把对象类型转换为不相干的类型,高容量转换为低容量时需强制转换,可能存在内存溢出或精度(去掉小数点后的数)问题。
- 数值类型可以过长的话可以每四位用_分隔(jdk7新特性)。
- 数值运算过大的话会内存溢出,结果强转也没用,须在运算之前强转。
引用类型
//类
//接口
//数组
变量
- 类变量:在class中static修饰的变量,方法中可以直接使用。
- 实例变量:在class中没有static修饰的变量,方法调用需要new。
- 局部变量:方法中的变量,只能在本方法内使用。
常量
- 使用final修饰,常量名一般使用大写字母命名。
命名规范
- 变量:首字母小写的驼峰原则
- 常量:大写字母加_
- 类名:大写字母的驼峰原则
- 方法名:小写字母的驼峰原则
Java运算符
-
算数运算符:+、-、*、/(注意变量类型)、%、++、--
-
赋值运算符:=
-
关系运算符:>、<、>=、<=、==、!=、instanceof
-
逻辑运算符:&&(与)、||(或)、!(非)
//&&运算如果第一个就为flase,后面的判断全部不执行(短路运算)
-
位运算符:&、|、^、~、>>、<<、>>>(计算机操作相关)
/* A = 000110 B = 100010 A&B = 000010 //全部为1才是1 A|B = 100110 //有1就是1 A^B = 011011 //同样的就是1 ~B = 011101 //取反 */ //重点左移<< *2、右移>> /2 /* 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 */ //左移右移就是让二进制1的位置左右移动 面试题:让计算机最快的速度算出2*8 答 案:2<<3 (2右移三位=16)
-
条件运算符:? :
-
扩展赋值运算符:+=、-=、*=、/=
int a = 10; int b = 20; a += b; //a+=b; == a = a+b; System.out.println(a += b); //输出30
-
幂运算
//java中不提供2^3这种写法,需用到Math类 double pow = Math.pow(2,3); pow中存储2^3的结果8.0
运算符注意点
-
算数运算中,算数有一个long,其结果也为long类型;有一个int,结果也为int;short+byte结果也为int。
-
a%b == a除b=?.....c 的c为a%b的结果。
-
自增/自减
int a = 3; int b = a++; //先将a(值为3)赋值给b,再执行a=a+1; System.out.println(b); //输出3 System.out.println(a); //输出4 int c = ++a; //先执行a=a+1;再将运算后的结果赋值给c System.out.println(c); //输出5
Java DOC文档
/**
*@author 作者名
*@verson 版本号
*@since 最早使用的jdk版本
*@param 参数名
*@return 返回值
*@throws 抛出的异常
*/