Java基础语法
一、注释、标识符、关键字
-
注释
注释可以让我们更好的理解代码表达的含义,注释不会被执行,有注释的代码会让我们的逻辑更清晰,一定要养成书写注释的习惯!!
-
单行注释:只能注释一行(Ctrl +/)
//
-
多行注释:可以注释一段文字(Ctrl +shift+/)
/* */
-
文档注释(/**+回车)
/** */
-
-
标识符
Java所有的组成部分需要名字。类名、变量名以及方法名都被称为标识符。
标识符注意
- 所有的标识符都应该以字母(A-Z或者a-z)、美元符($)、或者下划线(_)开始
- 首字母之后可以是字母(A-Z或者a-z)、美元符($)、或者下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 合法标识符如下:name、Name、$name、_name、a1$name2
- 非法标识符如下:123name、-name、#name、*name
- 可以使用中文拼音或中文文字命名,一般不建议去使用,会感觉没有上述的高级
-
关键字
关键字不能用来定义名字。
二、数据类型
-
强类型语言
要求变量的使用要严格符合规定,所有变量必须先定义后才能使用
优点:安全性高 缺点:速度慢
-
弱类型语言
与强类型语言相似,但没有它严格,符合规定就可以
-
Java的数据类型分为两大类
-
基本类型(primitive type)
-
引用类型(reference type)
-
补充:什么是字节
-
位(bit):计算机内部数据储存的最小单位
-
字节(byte):是计算机中数据处理的基本单位,习惯用大写B来表示:1B = 8bit
-
字符:指计算机中使用的字母、数字、字和符号
eg:
- 1bit表示1位
- 1Byte表示一个字节 1B=8b
- 1024B=1kB
- 1024KB=1M
- 1024M=1G
-
-
三、类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候的需要用到类型转换
低--------------------------------------------------------------------高
byte,short,char,—>int—>long—>float—>double
(小数的优先级大于整数)
-
运算中,不同类型的数据先转化为同一类型,然后进行计算
-
强制类型转换
(类型)变量名 高—>低
-
自动类型转换
低—>高
-
JDK7新特性
数字之间可以用下划线分割:eg:10_0000_0000
注意
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量时,强制转换
- 转换的时候可能存在内存溢出,或者精度问题
四、变量、常量、作用域
变量
-
定义:可以变化的量
-
Java是一种强类型语言,,每个变量都必须声明其类型
-
Java是程序中最基本的存储单元, 其要素包括变量名,变量类型和作用域
type varName [=value]
数据类型 变量名 = 值
可以使用逗号隔开声明多个同类型变量(不建议这么写)
变量作用域
- 类变量,关键词static
- 实例变量
- 局部变量
public class demo06 {
//类变量 是static
static double salary = 2000;
//实例变量:从属于对象,如果不自行初始化,这个类型的默认值 0 0.0
//布尔值:默认是false
//除了基本类型,其余默认值都是null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i= 10;
System.out.println(i);
//变量类型 变量名字 = new demo06();
demo06 demo06 = new demo06();
System.out.println(demo06.name);
System.out.println(demo06.age);
//类变量 是static
System.out.println(salary);
}
//其他方法
public void add(){
}
}
常量
-
常量(Constant):初始化后不能在改变值,不会变动的值
-
可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
final 常量名 = 值
eg:final double PI = 3.14
-
常量名一般使用大写字符
注意
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量的命名规范
- 所有变量、方法名、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:firstName。除第一个单词以外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则,FirstName
- 方法名:首字母小写和驼峰原则,firstName()
五、运算符
- 算数运算符:+ ,-,*,/,%,++,–
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=
- 逻辑运算符:&&, ||, !
- 位运算符:&,|,^,~,>>,<<,>>> (了解)
- 条件运算符:?:
- 扩展赋值运算符: +=, -=, *=, /=
优先级
六、包机制、JavaDoc
包机制
-
为了更好的组织类,Java提供包机制,用于区别类名的命名空间
-
包语句的语法格式为:
package pkg1[. pkg2[.pkg3…]];
-
一般用公司域名倒置作为包名:com.su.xxx
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包,使用import语句完成此功能
import package1[.package2…].(classname|*);
.*是通配符,导入这个包下的所有类
JavaDoc
-
JavaDoc命令是用来生成自己的API文档的
-
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要使用的jdk
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
七、扩展
-
整数拓展
-
进制
- 二进制0b
- 十进制
- 八进制0
- 十六进制0x
-
-
浮点数拓展
-
银行业务怎么表示?最好完全避免使用浮点数进行比较
BigDecimal 数学工具类
-
float和double,是有限的,离散的,有舍入误差的结果,接近但是不等于
-
-
字符拓展
-
强制转换:所有的字符本身还是数字
-
-
boolean值拓展(两种表示都可以)
boolean flag = true; if(flag==true){} if (flag){}