Java基础语法
1.注释、标识符、关键字
- 单行注释 //
- 多行注释 /* */
- 文档注释 /** */
标识符
Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。在 Java 语言中,标识符的构成规则如下。
-
标识符由数字(09)和字母(AZ 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
-
标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。
关键字
Java 语言目前定义了 51 个关键字,这些关键字不能作为变量名、类名和方法名来使用。以下对这些关键字进行了分类。
-
数据类型:boolean、int、long、short、byte、float、double、char、class、interface。
-
流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
-
修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
-
动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
-
保留字:true、false、null、goto、const。
2.数据类型
java是强类型语言
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
java的数据类型分为两大类
- 基本类型
- 整数类型 byte short int long 1248字节
- 浮点类型 float double 48字节
- 字符类型 char 2字节
- boolean类型 boolean 1字节
- 引用类型
- 类
- 接口
- 数组
位(bit):计算机内部数据存储的最小单位
字节(byte):计算机中数据处理的基本单位,习惯上用大写B来表示
1bit=1位
1B = 8bit
1024B = 1kB
进制问题
二进制 | 十进制 | 八进制 | 十六进制 |
---|---|---|---|
0 | 0x |
浮点数
银行业务用float和double会出现什么问题
float f=0.1f double d =0.1
判断f==d,结果为false
float d1=48648645645645644564f;
float d2=d1+1;
判断d1==d2,结果为true;
float:有限的 离散的 舍入误差 大约 接近但不等于
最好完全避免使用浮点数进行比较
最好完全避免使用浮点数进行比较
最好完全避免使用浮点数进行比较
金融计算用,BigDecimal 数学工具类
字符扩展(所有的字符本质还是数字)
U0000 UFFFF
unicode表
char c = ’\u0061‘ c就是a
//转义字符
3.类型转换
强类型语言
byte,short,char -> int -> long -> folat ->double
int i=128;
byte b = (byte)i;强制类型转换会发生内存溢出,b变成了-128
自动类型转换(低转高)
注意点:1. 不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换会发生内存溢出和精度损失的问题
在jdk1.7的新特性中,数字之间可以用下划线分割
int money = 10_0000_0000
4.变量常量
变量:可以变化的量
java是一种强类型语言,每个变量都必须申明其类型
java变量是程序中最基本的存储单位,要素包括变量名,变量类型,作用域
局部变量:生命周期在方法里面。
实例变量:生命周期在类里面。
常量:初始化之后不能再改变的值,不会变动的值
final 常量名 = 值;
常量名一般使用大写;
命名规范
所有变量,方法,类名:见名知意
类成员变量:小驼峰命名
局部变量:小驼峰命名
常量:大写+下划线
类名:大驼峰命名
方法名:小驼峰命名
5.运算符
运算符:
算数运算符:+ - * / % ++ –
赋值运算符:=
关系运算符:== >= <= > < != instanceof
逻辑运算符:&&(两个都为真,前面为假,后面就不会再去计算了) ||(其中一个为真) !(如果是真变为假,反之)
位运算符: & | ^ ~ >> << >>>
条件运算符:?:
扩展赋值运算符:+= -= *= /=
这里是面试的重点,++ – 特别是一个要注意,b = a++ + ++a(从右往左开始算)
快捷键ctrl+D 复制当前行到下一行(特别好用)
2*8=16,怎么计算最快,
位运算效率及其高(这里也能解释hashmap)
<< 左移 * 2 >>右移 2<<3=16
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
a= 1 b = 1
sout(“”+a+b)
sout(a+b+“”)
注意这里的输出结果是不一样的
6.包机制,javaDoc
javadoc命令是用来声称自己的Api文档的
参数信息
@Author 作者
@version 版本
@Since jdk版本
@param 参数
@return 返回值
@throws 异常抛出