注释
注释不会被执行,注释有利于自己回顾代码,整理思路,也方便其他人开发时查阅。写注释是大厂必备的一项基本意识。
Java注释的几种用法
多行注释:/*注释内容*/
单行注释://注释内容
文档注释:/** 注释内容 */
文档注释举例:
/**
*@Description Hello world
*/
标识符和关键字
Java所有组成部分都需要名字、类名、变量以及方法名,这些都被称为标识符,如abstract,default,final,protected等。
标识符:以字母,美元符,或下划线开头的后面可以是字母美元符、下划线或数字的任何字符组合。
注意:不能使用关键字作为标识符
符合语法的标识符:a123,$123,_1a23
不符合语法的标识符:123,-a123,¥1234sfs
写标识符的时候不要用中文,也不要用拼音,这样写虽然没有语法错误,但是代码给人的感觉就是不专业,尽量用英语来写,比如教师这个变量,要用teacher,而不是jiaoshi。
数据类型
强类型语言:Java变量的使用要严格按照规定,所有变量都必须先定义再使用,这样的好处就是比较安全。
弱类型语言:变量的使用可以不符合规定,如JavaScript语言。
Java数据类型分为两大类
什么是字节?
字节(byte)是计算机中数据处理的基本单位,英文为byte,常用B表示,1B=8bit
位(bit)是计算机内部数据存储的最小单位,如11001100是一个八位二进制数
字符是指计算机中使用的字母、数字、汉字、符号等。
电脑的32位和64位你知道有什么区别吗?
32位只能支持4GB内存,64位可以支持128G内存,它们的寻址能力不同
数据类型拓展及面试题
看一个案例
1.变量f和d数值都是0.1,那为什么输出结果不相等?
2.变量d1和d2的数值很明显不相等,为什么输出结果相等?
原因在于浮点数表示的范围是有限的,离散的,存在舍入误差。它接近某个数但是不等于,所以在进行比较时最好要全部用浮点数比较,当数值过大时避免使用float进行比较,可以使用java里面的工具类。
类型转换
Java是强类型语言,有时候需要进行强制类型转换
强制类型转换:高到低的转换需要进行强制,如int转换为byte
int i;
byte l=i;//错误写法
byte l=(int)i;//正确写法
强制转换时要注意内存溢出问题,因为有时候范围并不一样,转换后的类型无法满足范围要求就会出现内存溢出问题,因此转换时要注意把握范围。
还有就是精度问题,比如double类型的数字1.23转换成int类型后就会变成1,造成了精度损失。
自动类型转换:低到高的转换是自动的,如int转换为double
int i;
double l=i
这个时候整型的i就会自动转换成double
变量、常量、作用域
常量,初始化后不能改变,常用关键字final定义
命名规范:
所有变量、方法、类名要求做到见名知意
类成员变量:首字母小写和驼峰原则,如monthSalary
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线,如MAX_VALUE
类名:首字母大写和驼峰原则,如Man,GoodMan
方法名:首字母小写和驼峰原则,如run(),runMan()
基本运算符
算术运算符:+,-,*,/,%,++,--
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=,instanceof
逻辑运算符:&&,||,!(取反)
位运算符:&,|,^,~,>>,<<,>>>
A=0011 1100
B=0000 1101
A&B 0000 1100 (同真才真)
A|B 0011 1101(有真即真)
A^B 0011 0001(按位异或,相同为0否则为1)
~B 1111 0010(按位取反)
面试题:2*8怎么运算最快?
28=2222
System.out.println(2<<3);输出结果为16
因为2转换成二进制为 0000 0010
向左移三位后变为 0001 0000
位运算的效率高,因为位运算是与底层打交道的。
条件运算符:x?y:z 如果x==true则结果为y,否则为z
拓展赋值运算符:+=,-=,*=,/=
JavaDoc
JavaDoc命令是用来生成自己的开发文档的
如
/**
*@author Zhang Xiaoyuan
*@version 1.0
*since 1.8(指出用到的JDK版本)
*param 参数名
*return 返回值情况
*throws 异常抛出情况
*/