文章目录
JAVA基础语法
java基础01:注释
养成书写注释的习惯
-
单行注释:注释一行
//
-
多行注释
/*
注释内容
*/
-
文档注释(javadoc)
/**
*@Description hello world
*@Author jack
*/
-
多行注释不可嵌套多行注释和文档注释,可以嵌套单行注释
java基础02:标识符和关键字
-
关键字
-
Java所有的组成部分都需要名字。类名,变量名以及方法名都称为标识符
标识符注意点
- 所有标识符都是应该是以字母(A-Z或a-z),美元符$,或者下划线_开始
- 首字母之后可以是字母(A-Z或a-z),美元符$,或者下划线_或数字的任何字符组合
- 不能用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 合法标识符:age、$salary、_value、__1_value
- 非法标识符:1223abc、-a、#abc
- 不建议中文命名
基础语法
- 大小写敏感:Java是大小写敏感的语言
- 类名:首字母大写,驼峰命名,例如MyFirstClass
- 包名:小写,例如 my.first.package
- 方法名:首字母小写,驼峰命名,例如 myMethod()
Java基础03:数据类型
基本数据类型
- 在Java中,基本数据类型只有四类八种
-
整数型:
数据类型 字节数 位数 默认值 范围 byte 1 8 0 -128~127 short 2 16 0 -32768~32767 int 4 32 0 -2147483648~2147483647 long 8 64 0L -
浮点型:
数据类型 字节数 位数 默认值 float 4 32 0.0f double 8 64 0.0d -
字符型
char,char类型是一个单一的16位Unicode字符,占两字节,最小值为\u0000(也就是0),最大值为\uffff(也就是65535),char类型可以存储任何字符。
char a = 'A';
-
布尔型
boolean,boolean只有两种值,true或false,只占1位,默认值是false
引用数据类型
-
Java中引用数据类型类似于C/C++的指针,引用类型指向一个对象,指向对象的变量就是引用变量。这些变量在声明时被指定为一个特定的类型,例如Employee、Puppy等,变量一旦声明不能改变
-
对象、数组都是引用数据类型
-
所有引用数据类型的默认值都是null
-
一个引用变量可以用来引用任何与之兼容的类型
-
例如:
Site site = new Site("Runoob");
数据类型扩展
- 整数:二进制:0b 八进制:0开头 十六进制:0x
- 浮点数:不要用浮点数进行比较
//float 表示有限的 离散的 舍入误差 大约 接近但不等
//double
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d); //false
float d1 = 23333333333333f;
float d2 = d1 + 1;
System.out.println(d1==d2);//true
- 字符型:所有字符本质上都是数字
//u0000 ~ uffff
char c = '\u0061';
System.out.println(c);//a
转义字符
符号 | 字符含义 |
---|---|
\n | 换行(0x0a) |
\r | 回车(0x0d) |
\f | 换页符(0x0c) |
\b | 退格(0x08) |
\0 | 空字符(0x0) |
\s | 空格(0x20) |
\t | 制表符 |
\ " | 双引号 |
\ ’ | 单引号 |
\ \ | 反斜杠 |
\ddd | 八进制字符(xxx) |
\uxxxx | 16进制Unicode字符(xxxx) |
Java基础04:类型转换
- 由于Java是强类型语言,所以进行运算时有时需要用到类型转换
低 ----------------------------------------------> 高
byte short char -> int -> long -> float ->double
-
从低到高:自动类型转换
-
从高到低:强制类型转换,注意内存溢出
注意点
- 布尔值不能转换
- 高容量到低容量强制转换
- 转换过程可能存在内存溢出或精度问题
Java基础05:变量、常量、作用域
变量
- 变量即可变化的量
- Java是一种强类型的语言,每个变量都必须声明其类型
- Java变量是程序中最基本的存储单元,其要素有变量名、变量类型和作用域
注意事项
- 变量的类型可以是基本类型也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句以分号结束
变量作用域
- 类变量(静态变量):static修饰,加载类文件到方法区时在堆中单独开辟静态变量的空间单独存储静态变量
- 实例变量:独立于方法之外的变量,不过没有static修饰
- 局部变量:类的方法中的变量
public class Temp {
static int a = 0;//类变量
String str = "hello";//实例变量
public void run() {
int i = 0;//局部变量
}
}
常量
- 常量(constant):初始化后不能再改变的值
final 常量名 = 值;
final double PI = 3.14;
- 常量名一般使用大写字母
Java基础06:基本运算符
算数运算符:+,-,*,/,%,++,--
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=,instanceof
逻辑运算符:&&,||,!
位运算符:&,|,^,~, >>,<<, >>>
条件运算符:? :
扩展赋值运算符:+=,-=,*=,/
- 逻辑运算符 与、或、非
运算符 | 作用 |
---|---|
&& | 短路与 |
|| | 短路或 |
! | 逻辑非 |
& | 逻辑与 |
| | 逻辑或 |
^ | 逻辑异或 |
- 按位运算符
按位运算符用来操作整数基本类型中的每个比特位,也就是二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
运算符 | 作用 |
---|---|
& | 与 4 & 5 = 4 |
| | 或 4 | 5 = 5 |
~ | 非 ~4 = -5 |
^ | 异或 4 ^ 5 = 1 |
Java流程控制
Scanner类
java.util.Scanner是Java5的新特征,通过Scanner类来获取用户的输入
//创建扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
//判断用户是否输入
if (scanner.hasNext()) {
//使用next方法接收
//next()遇到空白直接返回,无法得到空格后的输入
String str = scanner.next();
System.out.println(str);//
}
//凡属于IO流的类不关闭会一直占用资源,养成良好习惯及时关闭
scanner.close();
//使用nextLine()方法
//返回的是输入回车前的所有字符,包括空格
String str1 = scanner.nextLine();
//限制输入
//整型数据
int a = scanner.nextInt();
//浮点型数据
float f = scanner.nextFloat();
//若输入数据与限制类型不匹配则抛出InputMismatchException输入不匹配异常
条件语句
条件语句可根据不同的条件执行不同的语句。包括if条件语句和switch多分支语句
if条件语句
if语句可以单独判断表达式的结果,表示表达的执行结果,例如:
int a = 10;
if (a > 10) {
return true;
}
return false;
if…else 条件语句
if语句还可以与else连用,表现为**如果满足某种条件,就进行某种处理,否则进行另一种处理。
int a = 10;
int b = 12;
if (a > b) {
return a;
} else {
return b;
}
if后的()内的表达式必须是boolean型的,如果为true,则执行if后的复合语句;如果为false,则执行else后的符合语句。
if…else if多分支语句
上面的if…else是单分支和两个分支的判断,如果有多个判断条件,就需要使用if…else if
int x = 90;
if (x < 60) {
System.out.println("x小于60");
} else if (x < 80) {
System.out.println("x大于60且小于80");
} else if (x < 90) {
System.out.println("x大于80且小于90");
} else {
System.out.println("x大于等于90");
}
switch多分枝语句
一种比if…else if语句更优雅的方式是使用switch多分支语句
Scanner scan = new Scanner(System.in);
String week = scan.nextLine();
switch (week) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
default:
System.out.println("No Else");
break;
}
循环语句
循环语句就是满足一定条件下反复执行某一表达式的操作,直到不满足该条件
while循环语句
while循环语句的循环方式位利用一个条件来控制是否要反复执行该语句
while(布尔值) {
//表达式
}
当布尔值位true时执行表达式,当布尔值位false时结束循环,布尔值也可是一个表达式
int a = 10;
while (a > 8) {
a--;
}
do…while循环
do…while与while唯一的区别是do…while语句至少执行一次
int b = 10;
do {
System.out.println("b=" + b);
b--;
} while (b==1);
for循环语句
for循环是经常使用的循环方式,这种形式会在第一次迭代前进行初始化。
for (初始化; 布尔表达式; 步进) {
//循环体
}
每次迭代前会测试布尔表达式。如果获得的结果是false就结束循环;每次循环按照步进的值执行下一次循环。
- 逗号操作符
Java里唯一用到逗号操作符的就是for循环控制语句,在表达式的初始化部分和步进部分可以使用逗号分隔的语句,在for语句中定义多个变量,但他们必须有相同的类型
for (int i = 1, j = i + 1; i < 6; i++, j = j * 2) {
}
for-each语句
在Java JDK 1.5中引入了一种更加简洁的、方便的对数组和集合进行遍历的方法,即for-each语句
int array[] = {1,2,3};
for (int arr : array) {
System.out.println(arr);
}
跳转语句
Java语言中有三种跳转语句:break、continue和return
break
break用于终止循环
for(int i = 0; i < 10; i++) {
if (i == 5) {
break;
}
}
continue语句
continue在循环语句中与break有相反的效果,它的作用是跳过本次循环,直接执行下一次循环
for(int i = 0; i < 10; i++) {
if (i == 5) {
System.out.print("continue");
continue;
}
System.out.print(i);
}
/*
结果:1234continue6789
*/
return语句
return语句可以从一个方法返回,并把控制权交给调用它的语句
public void getName() {
retrun name;
}