注释
单行注释: //
多行注释:/ * * /
文档注释:/** */ JavaDoc
常用标识符
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z或者a-z),美元符( $ )、下划线(_)或数字的任何字符组合不能使用关键字作为变量名或方法名。
标识符是大小写敏感的 - 合法标识符举例: age、$salary._value、_1_value
- 非法标识符举例:123abc、-salary、t#abc
- 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low
数据类型
强类型语言
要求变量的使用严格符合规定,所有变量都必须先定义后才能使用 ,特点:安全性高 ,缺点:速度效率损失
弱类型语言
要求变量的使用符合规定
Java的数据类型分为两大类
基本类型(primitive type)
分为整数类型,浮点类型,字符类型,布尔类型
基本数据类型分为三大类
**由图可知,我们继续按照Java的基本数据类型可以分为三大类:
①数值型
数值型数据(metric data)是按数字尺度测量的观察值,其结果表现为具体的数值。现实中所处理的大多数都是数值型数据。
Java的整型常量默认为int 型,声明long型常量须后加‘I’或‘L’
Java的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F。
float 有限 离散 舍入误差 大约 接近但不等于 最好完全避免使用浮点数进行比较 因为不准确
注释:银行业务(钱)需要浮点数进行表示 专门的数学工具类 BigDecimal JDK新特性:数字之间可以用下划线分割 如 10_0000_0000 即1000000000
②字符型
字符型(Character)数据是不具计算能力的文字数据类型,用字母C表示。
它包括中文字符、英文字符、数字字符和其他ASCⅡ字符,其长度(即字符个数)范围是0-255个字符,即0x00至0xFF。
所有的字符本质还是数字 编码 Unicode 2字节 范围0-65536 (a=97 A=65) u0000-uFFFF
\u0061 就是 a
③布尔型
布尔数据是sql server中的一个名词,布尔数据由binary(二进制)数字组成,即0和1。
拓展:
1bit 表示1位
1Byte 表示一个字节 1B = 8bit
1024B = 1KB
1024KB = 1M
1024M = 1G
1024G = 1T
计算机是用二进制来表示数据的,一个字节也就是8个比特位,其中最高位表示符号位(0正1负)
在Java中,是采用补码来表示数据的 正数的补码和原码相同,负数的补码是在原码的基础上各位取反然后加1
byte 占一个字节 共有2^8=256种可能性
故byte的取值范围为1000 0000 到 0111 1111 (其中最高位表示符号位(0正1负))
1000 000是补码,减一然后按位取反得到其原码1000 0000
(减一得 0111 1111,再按位取反得 1000 0000)
因为是负数,所以最小的byte值为-2^7=-128
0111 1111的十进制为2^7-1=127(等比序列求和)
所以byte取值范围-128~127
其他基本数据类型同理
char没有负值,占两个字节,所以最小值为0,最大值为1111 1111 1111 1111,故取值范围是0~2^16-1(65535)
引用类型(reference type)
类型转换
注意点:
1、不能对布尔值进行转换
2、不能把对象类型转换成为不相干的类型
3、在把高容量转换到低容量的时候,用强制转换
4、转换的时候可能存在内存溢出,和精度问题
强制类型转换
高到低需要进行强制转换。 强制转换格式: (类型)变量名
自动类型转换
低到高直接进行自动转换
变量
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
不建议一行声明多个变量,注意程序可读性。
注意事项:
每个变量都有类型,类型可以是基本类型,也可以是引用类型。变量名必须是合法的标识符。
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
局部变量
在方法体以内,必须声明和初始化值,且旨在方法体内生效
实例变量
从属于对象,可以不需要初始化值。如果不进行初始值,会设为这个类型的默认值 如:0 0.0 布尔值默认是false 除了基本类型其余的默认值都是null
类变量 (static)
可以直接用 从属于类
常量(final)
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 常量名 = 值
final double PI=3.14
常量名一般使用大写字符,修饰符,不存在先后顺序 public static final
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则: monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则: Man, GoodMan
- 方法名:首字母小写和驼峰原则: run(), runRun()
运算符(注意短路运算)
++和-- 自增与自减
a++ 先赋值 再自增
++a 先自增 后赋值
Math
很多运算,会使用一些工具类来操作!
pow()乘方
abs()绝对值
位运算(不要轻易使用 容易出错,但效率高)
A = 0011 1100
B = 0000 1101
与:A & B = 0000 1100 (遇0得0)
或:A | B = 0011 1101(遇1得1)
异或:A ^ B = 0011 0001 (相同为0 不同为1)
取反:~ A = 1100 0011(完全取反)
左移:<< 即 * 2
如:2<<3 (左移三位) 即2 *(2 * 2 * 2)=16
右移:>> 即 / 2
三元运算符(?:)
X?Y : Z(如果X为真则返回Y 若为假则返回Z,X可以为表达式)
字符串加法
面试题注意点
int a =10
int b = 20
//字符串连接符 + , String 任何类型与字符串类型相加结果会变成字符串类型
System.out.println(""+a+b); //输出结果是1020 String类型
System.out.println(a+b+"");//输出结果是30 String类型
运算符优先级和结合性
包机制
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。包语句的语法格式为:
pacakage pkg1[.pkg2[.pkg3…]]
一般利用公司域名倒置作为包名;
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import”语句可完成此功能:
import pacakage1[.package2…].(classname|*)
JavaDoc
javadoc命令是用来生成自己API文档的
参数信息
@author作者名
@version 版本号
@since指明需要最早使用的jdk版本
@param 参数名
@return返回值情况
@throws异常抛出情况
通过命令行生成文档API
打开所写类 所在文件目录的终端,运行javadoc命令
操作:右击所写类Doc 选中open in->terminal
运行命令javadoc -encoding UTF-8 -charset UTF-8 Doc.java
生成如下所有文件 打开index
IDEA 生产JavaDoc文档
首先选择需要生成文档的代码
然后在顶部Tools 选择红标所示
选择所选类目录地址,选择输出javadoc文档生成地址,在第三个红标出填写编码格式避免乱码 -encoding utf-8 -charset utf-8