注释
-
单行注释:对某一行进行注释,使用“/注释内容/”标识
-
多行注释:可以书写多行,使用“
/*注释内容*/
/”表示 -
文档注释:这个内容对IDEA是有意义的,
/**注释内容*/
public class Hello { //单行注释 //注释后会被编译器忽略,不会作为语句编译 //每个单行注释只能写一行 /* 多行注释 这个注释可以写多行 */ public static void main(String[] args){ /** * @Description 这里是文档注释,这段会被IDEA识别 * @author Muling */ System.out.println("Hello,World!");//这句输出Hello,World! } }
标识符和关键字
-
关键字
java定义的一些保留字,用于区分语法,不能用于标识符
-
标识符
标识符是所有组成部分的名称,如变量名、方法名、类名等等
数据类型
Java里的数据类型
JAVA是一种强类型语言,所有变量需要先声明后使用。
Java数据类型分为两个部分:基本类型和引用类型,这里主要说明基本类型。
基本数据类型如下:
数据类型 | 占用空间(byte) | 表示范围 | |
---|---|---|---|
整型 | byte | 1 | -128~127 |
short | 2 | -32768~32767 | |
int | 4 | -2147483648~2147483647 | |
long | 8 | -9223372036854775808~9223372036854775807 | |
浮点型 | float | 4 | |
double | 8 | ||
字符型 | char | 2 | |
布尔型 | boolean | 1 bit |
//整型
int num = 10_000_000//数字中间可以使用_分隔(便于阅读)
byte num2 = 20;
short num3 = 30;
long num4 = 40L;//Long型后要加“L”
//浮点型
float num5 = 3.1F;//Float型后加“F”
double num6 = 3.1;
//字符
char c = 'a';
//布尔
boolean flag = true;
boolean flag = false;
进制
- 十进制
- 二进制:0b
- 八进制:0
- 十六进制:0x
浮点数精度问题
浮点数有精度问题,如果需要精确计算,可以使用BigDecimal类。
字符
字符值
char型存储的数为Unicode值
如“a”为97,“A”为65,“好”为22909
值的范围为0~65535
转义字符
类型转换
Java是强类型语言,不同类型间运算的时候需要进行类型转换,换为同一类型后再计算。一般是从小向大进行转换,大向小转换会出现溢出。
- 布尔类型不能进行转换!
- 需要注意内存溢出和精度问题!
- 浮点型向整型转换会进行向下取整(向0靠近)
强制类型转换
大到小转换需要使用强制类型转换
如
float a = 1.3F;
int b = (int)a;
自由类型转换
小到大的转换是自由类型转换(自动转换)
变量、常量、作用域
变量
可以变化的量,变量使用前需要声明。
变量声明:
type varName[=value][,varName[=value]]
作用域
-
类变量:加了static关键字修饰,可以直接在类内使用
-
实例变量:需要调用类使用,不初始化的基本数据类型默认值为0,其余为null
-
局部变量:在方法内部使用,使用前需要初始化
public class Hello { //类变量:加了static修饰 static double salary = 5000; //实例变量:从属于对象,不初始化的基本数据类型默认值为0,其余为null String name; public static void main(String[] args){ //局部变量,必须声明和初始化 char c = '好'; Hello hello = new Hello(); //System.out.println(name); //会报错 System.out.println(hello.name); System.out.println(salary);//类变量直接可用 } }
常量
与变量基本相同,需要使用final修饰,不可修改。
命名原则
类名首字母大写,其他小写,使用驼峰写法,常量全大写,下划线分隔
运算
运算符
Math类
内含非常多的数学运算方法,幂运算、绝对值等需要调用
包机制
包可以理解为文件夹,为了更好地组织类,用于区分类的命名空间
常用公司域名倒置作为包名,如com.baidu.www
包语句格式:
package pkg1[.pkg2[.pkg3...]]
用文件夹的路径理解就是该文件属于pkg1\pkg2\pkg3...\文件名
导入类的格式为:
import pkg1[.pkg2[.pkg3...]].classname
- 支持通配符,如*,表示一个包内的所有类
JavaDoc
可对类、方法进行说明
在命令行使用javadoc -encoding UTF-8 -charset UTF-8 文件名
生成说明文档,打开index.html可以查看
也可以直接在IDEA 工具->生成javadoc
Scanner
包:java.util.Scanner,用于IO
基本语法:
Scanner s = new Scanner(System.in)
使用Scanner类的next()与nextLine()获取输入的字符串,读取前使用hasNext()与hasNextLine()判断是否有输入
public static void main(String[] args){
//创建一个扫描器
Scanner scanner = new Scanner(System.in);
System.out.println("使用next接收");
if(scanner.hasNext()) {
//判断是否有输入
String in = scanner.next();//接收
System.out.println(in);
}
scanner.close();//关闭扫描器
}
- next()获取输入:输入从有效字符开始,空白符号之前的所有有效字符部分
- nextLine():获得换行符前所有内容
判断
- hasNext():是否有字符串
- hasNextLine():是否有字符串(与nextLine对应)
- hasNextInt():是否有整数
- hasNextByte():是否还有Byte
- hasNextFloat():是否还有Float
- ...
输入
- next()
- nextLine()
- nextInt()
- nextFloat()
- ...