Java基础语法
注释,标识符,关键字
Java中的注释有三种
-
单行注释
//单行注释:可以注释一行文字 //输出Hello World! System.out.println("Hello World!");
-
多行注释
/* 多行注释:可以注释一段文字 输出hello world */ System.out.println("Hello World!");
-
文档注释
/** * 文档注释 */ System.out.println("Hello World!");
关键字
标识符
-
所有的标识符都应该以字母(A-Z或a-z),美元符号($),或者下划线(__)开始
String string = "Hello World!"; String String = "Hello World!"; String $string = "Hello World!"; String _string = "Hello World!";
-
首字符之后可以是字母(A-Z或a-z),美元符号($),或者下划线(__)或数字的任何字符组合
String sString = "Hello World!"; String s$tring = "Hello World!"; String s_tring = "Hello World!"; String s1tring = "Hello World!";
-
不能使用关键字作为变量名或方法名
-
标识符是大小写敏感的
-
可以使用中文命名,但一般不建议这样去使用,也不建议是用拼音,很LOW
-
非法标识符举例:123abc,-abc,#abc,
数据类型
Java是强类型语言,要求变量的使用要严格符合规定,所有的变量都必须先定义后才能使用
Java的数据类型分为两大类
-
基本数据类型
-
数值类型
-
整数类型
-
byte占1个字节,范围:-128 ~ 127
byte num2 = 10;
-
short占2个字节,范围:-32768 ~ 32767
short num3 =10;
-
int占2个字节,范围:-2147483648 ~ 2147483647
//最常用 int num1=10;
-
long占2个字节,范围:-9223372036854774808 ~ 9223372036854774807
//Long类型数据一般在数字后加个L long num4 = 10L;
-
-
浮点数类型
-
float占2个字节
//float类型数据一般在数字后加个F float num5 =3.14F;
-
double占2个字节
double num6 =3.1415;
-
-
字符类型
-
char占2个字节
char ch = 'A';
-
-
-
boolean类型
-
占1位,其值只有true和false两个
boolean flag = false;
-
-
-
引用数据类型
- 类
- 接口
- 数组
什么是字节
- 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写字母B表示
- 1B(byte,字节) = 8bit(位)
- 字符:是指计算机中使用的字母,数字,字和符号
- 1bit表示1位
- 1Byte表示1字节 1B=8b
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
扩展
整数扩展
-
进制表示法:
-
二进制:前面加 0b
-
十进制:
-
八进制:前面加 0
-
十六进制:前面加 0x
int i_2 = 0b10; int i_10 = 10; int i_8 = 010; int i_16 = 0x10; System.out.println(i_2); //输出2 System.out.println(i_10); //输出10 System.out.println(i_8); //输出8 System.out.println(i_16); //输出16
-
浮点数扩展
-
钱的表示方法
-
浮点数float,double的特征是有限,离散,舍入误差,大约,接近但不等于
float f = 0.1f; double d = 1.0/10; System.out.println(f); //输出0.1 System.out.println(d); //输出0.1 System.out.println(f==d); //输出false float num = 23123132133133113122f; float num2 = num+1; System.out.println(num == num2); //输出true
-
推荐使用BigDecimal(数学工具类)来定义钱
-
字符扩展
- 所有的字符的本质还是数字,字符的编码方式是Unicode(2字节),范围是0~65536
boolean扩展
boolean flag = true;
//下列两个式子是等价的
if(flag == true){} //新手常用
if(flag){} //老手的习惯写法
类型转换
![类型转换等级](
)
-
强制类型转换
- 形式:(类型)变量名 ,从高到底
int a=10; byte b= (byte)a; //b的值为10
-
自动类型转换
- 从底到高
int a=10; double d= a; //d的值为10.0
-
注意点
- 不能对布尔值进行转换
- 不能把对象类型转化成不相干的类型
- 把高容量转换成低容量的时候,要强制转换
- 转换的时候可能存在内存溢出或者精度问题
int a=128; byte b=(byte)a; System.out.println(b); //此时由于byte的范围是-127,强制转化时发生了内存溢出,所以此时b的值时-128 int m = (int)32.99f; System.out.println(m);//输出32 此时发生了精度丢失
-
JDK7新特性,数字之间可以用下划线分割
int m = 10_0000_0000; System.out.println(m); //输出1000000000
变量,常量
变量
-
Java变量是程序中最基本的储存单位,其要素包括变量名,变量类型和作用域
-
每个变量都有类型,可以是基本类型也可以是引用类型
-
变量名必须是合法的标识符
-
变量声明是一条完整的语句,因此每个声明都必须以分号结束
-
变量作用域
- 类变量:从属于类,格式为 static 变量类型 变量名
- 实例变量:从属于对象,如果不初始化,变量的值是默认值
- 布尔类型的默认值是false,其他处理基本类型,其余的默认值都是null
- 局部变量:必须声明和初始化值
public class HelloWorld {
//类变量
static double a = 10.0;
//实例变量
int n = 10;
public static void main(String[] args) {
//局部变量
int b=10;
//实例变量调用
HelloWorld helloWorld = new HelloWorld();
System.out.println(helloWorld.n);
//类变量调用
System.out.println(a);
常量
- 初始化后不能再改变值!不会动的值。
- 所有的常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
- 常量名一般用大写字符
- 形式:final 变量类型 变量名 = 变量值;
final double PI=3.14;
命名规范
- 所有变量,方法,类名:见名知意
- 类变量成员:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
运算符
- 算术运算符:+,-,*,/,%,++,--
int a=20;
int b=7;
System.out.println(a+b);
//输出27,表示a加上b的结果 加法运算
System.out.println(a-b);
//输出13,表示a减去b的结果 减法运算
System.out.println(a*b);
//输出140,表示a乘上b的结果 乘法运算
System.out.println(a/(double)b);
//输出2.857142857142857,表示a除以b的结果 除法运算
System.out.println(a%b);
//输出6,表示a整除以b所剩的余数的值 求余运算
System.out.println(a++);
//输出20,表示先将a输出,再将a加一。 自增运算
//此时a的值为21
System.out.println(++a);
//输出22,表示先将a加一,再输出a的值 自增运算
//此时a的值为22
System.out.println(a--);v
//输出22,表示先将a输出,再将a减一。 自减运算
//此时a的值为21
System.out.println(--a);
//输出20,表示先将a减一,再输出a的值 自减运算
//此时a的值为20
- 赋值运算符:=
int a=20; 赋值运算
- 关系运算符:<,>,<=,>=,==,!=,instanceof
int a=10;
int b=20;
System.out.println(a>b);
//输出false 大于
System.out.println(a<b);
//输出true 小于
System.out.println(a>=b);
//输出false 大于等于
System.out.println(a<=b);
//输出true 小于等于
System.out.println(a==b);
//输出false 等于
System.out.println(a!=b);
//输出true 不等于
- 逻辑运算符:&&,||,! 短路运算
boolean a = true;
boolean b= false;
System.out.println(a&&b);
//输出false,逻辑与运算,两个变量都为真,结果才为真
System.out.println(a||b);
//输出true,逻辑或运算,两个变量有一个为真,则结果为真
System.out.println(!a);
//输出false,逻辑非运算,如果a为真,则结果为假,如果是假则变为真
//短路现象
int c= 5;
boolean d= (c<4)&&(c++<4);
System.out.println(d);
//输出false
System.out.println(c);
//输出5 ,如果与运算符号前面的值为假时,与运算符后面的命令将不再执行
- 位运算符:&,|,^,~,<<,>>,>>>(了解即可)
A = 0011 1100
B = 0000 1101
A&B= 0000 1100 与位运算符:同一位上都是1结果才为1,否则为0
A|B= 0011 1101 或位运算符:同一位上有一个1结果为1,否则为0
A^B= 0011 0001 异或运算符:同一位上相同结果为0,不相同结果为1
!B= 1111 0010 非位运算符:每一位都取反,就是0变成1,1变成0
<< 左移操作:是将某个数的二进制形式都向左移动一位,前去一位后补0。
>> 右移操作:是将某个数的二进制形式都向右移动一位,后去一位前补0。
左移操作在十进制数上的表现为 a<<1 等价于 a*2
右移操作在十进制数上的表现为 a>>1 等价于 a/2
移动几位表示乘或除以几个2
- 条件运算符: ? :
//x ? y : z
//如果x==true,则结果为y,否则结果为z
int a=20;
System.out.println(a==20?"true":"false");
//输出true
System.out.println(a!=20?"true":"false");
//输出false
- 扩展赋值运算符:+=,-=,/=,*=
a+=b 等价于 a = a+b;
a-=b 等价于 a = a-b;
a/=b 等价于 a = a/b;
a*=b 等价于 a = a*b;
- 字符串拼接小问题
int a=10;
int b=5;
System.out.println(""+a+b);
//输出: 105 会将a,b的值取出,然后拼接
System.out.println(a+b+"");
//输出:15 会先将a+b的值算出,然后拼接成字符串
包机制,JavaDoc
包机制
- 用于区别类名的命名空间
- 语法格式:package 包1.包2.包3
- 命名规则:一般利用公司域名倒置作为包名
- 当我们要使用其他包中的成员时,我们要导入该包:import 包路径.包名
JavaDoc
-
javadoc命令是用来生成自己API文档的
-
命令格式:在生成的类的路径下cmd运行 javadoc -encoding UTF-8 -charset UTF-8 类文件名
-
参数信息
- @author作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
-
IDEA生成javadoc的方法
- 点击上方的tools按钮,选择Generate JavaDoc
- 选择生成的是整个项目还是单个文件
- 选择生成后javadoc存放的位置
- 写入文档的语言,一般选择zh_CN
- 写入javadoc的参数:一般写法为:
-encoding UTF-8 -charset UTF-8 -windowtitle "文档HTML页面标签的标题" -link http://docs.Oracle.com/javase/7/docs/api