java基础语法
1.注释
// 单行注释
/*
多行注释
*/
/**
文档注释
/
被注释的内容, 不会参与程序的编译和运行
2.关键字和字面量
2.1关键字
介绍 : 被Java赋予了特殊含义的英文单词
比如:public static
关键字不能被使用(当作变量 、方法等)
2.2字面量
public static void main(String[] args) {
String name = "黑马程序员"; // 字符串
int age = 18; // 整型
char gender = '男'; // 字符
double height = 170.5;// 小数
boolean isSingle = true; // 布尔型
//null (空值)
}
3.标识符
介绍:给类,方法,变量等起名字的符号
3.1命名规则
1.由数字、字母、下划线(_)和美元符($)组成
2.不能以数字开头
3.不能是关键字
4.区分大小写
3.2标识符的命名规范
1.小驼峰命名法:变量,方法
标识符是一个单词时所有字母小写( name )
标识符多个单词时,第一个单词所有字母小写,第二个单词首字母大写( firstName )
2.大驼峰命命名法:类
标识符是一个单词时所有字母大写( NAME )
标识符多个单词时,每个单词首字母大写( FirstName )
4.数据类型
分为基本数据类型和引用数据类型
基本数据类型
整数型:byte(取值范围从-128~127,内存占用1个字节)
short(内存占用2个字节)
int(内存占用4个字节)
long(内存占用8个字节)
浮点型:float(内存占用4个字节)
double(内存占用8个字节)
字符型:char(内存占用2个字节)
布尔型:boolean(内存占用1个字节)
补充:
1.整数类型变量:首选 int,如果发现 int 装不下数据了,将类型换成 long,但是定义 long 类型变量,需要加入 L 标识
2.小数类型变量:首选 double,如果非要使用 float 类型,需要在数值后面加入 F 标识
5.算数运算符
System.out.println(5 + 2); //7
System.out.println(5 - 2); //3
System.out.println(5 * 2); //10
System.out.println(5 / 2); //2
System.out.println(5 % 2); //1
6.自增自减运算符
- 单独使用: 符号在前在后没有区别的
int a = 10;
++a;
a++;
2. 参与运算使用
++在前: 先自增再操作
++在后: 先操作再自增
int a = 10;
int b = ++a; // a = 11, b = 11
System.out.println(a);
System.out.println(b);
int c = 10;
int d = c++; // d = 10, c = 11
System.out.println(c);
System.out.println(d);
7.类型转换
7.1隐式转换
7.2强制转换
1.介绍把一个取值范围大的变量或者数值,赋值给另一个取值范围小的变量,不允许直接赋值,需要加入强制转换
2.格式:目标数据类型 变量名 = (目标数据类型) 被强转换数据
double a = 12.3;
int b = (int) a
3.注意事项:大的给小的赋值,不能直接赋值,需要强制类型转换,强转过程中有可能出现精度损失问题,使用的时候需要注意。
8.赋值运算符
a += b (a = a + b)
a -= b (a = a - b)
a *= b (a = a * b)
a /= b (a = a / b)
a %= b (a = a % b)
/*注意 : 扩展赋值运算符自带强转效果
int a = 10;
double b = 12.3;
a += b;
System.out.println(a);
输出结果为22,因为相加之和的22.3赋值给 a ,a 变量为 int 类型,强转后砍掉小数点,结果为22
*/
9关系运算符
System.out.println(10 > 20); // false
System.out.println(10 >= 20); // false
System.out.println(10 < 20); // true
System.out.println(10 <= 20); // true
System.out.println(10 == 20); // false
System.out.println(10 != 20); // true
10.逻辑运算符
10.1普通的逻辑运算符
| &(与): 遇false则false | (或): 遇true则true |
|---|---|
| !(非): 取反 | ^(异或): 相同为false, 不同为true |
10.3带有短路效果的逻辑运算符
| 符号 | 介绍 | 说明 |
|---|---|---|
| && | 短路与 | 短路与&&,如果左边为false,右边不执行;如果左边为true,右边执行 |
| || | 短路或 | 短路或||,如果左边为false,右边要执行;如果左边为true,右边不执行 |
11.Scanner 键盘录入
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
12.方法
介绍:一段具有独立功能的代码块,不调用就不执行,便于提高维护性和代码的复用性
12.1定义和调用格式
public static void 方法名(){
//方法体
}
//调用格式
方法名();
12.2带参数的方法
public static void getMin(int a, int b){
int Min = a < b ? a : b;
System.out.printlb(Min);
}
// public static void 方法名(数据类型 变量名){
// 方法体
}
12.3带返回值的方法
public static int add (int a, int b){
int c = a + b;
return c;
}
//public static 数据类型 方法名 (数据类型 变量1 ,数据类型 变量名2)
12.4方法的注意事项和重载
-
方法不调用就不执行
-
方法与方法之间是平级关系,不能嵌套定义
-
方法的编写顺序和执行顺序无关
-
方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写,如果要编写return,后面不能跟具体的数据。
方法重载:在同一个类中,定义了多个同名的方法,但每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系
格式要求:同一个类中,方法名相同,参数不同的方法,与返回值无关
参数不同:个数不同、类型不同、顺序不同# 流程控制语句
1.if语句
1.1if的三种格式
if(判断条件){
语句体
}
//=================================
if (判断条件){
语句体
}else{
语句体2
}
//=================================
if (判断语句){
语句体1
}else if(判断语句){
语句体2
}
2.switch语句
switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
}
case的穿透性
package com.itheima.test;
public class SwitchTest {
/*
需求: 定义一个方法, 方法接收一个月份, 程序打印出不同的季节
3 4 5 : 春季
6 7 8 : 夏季
9 10 11 : 秋季
12 1 2 : 冬季
*/
public static void main(String[] args) {
Day(6);
}
public static void Day(int month) {
switch (day) {
case 1:
case 2:
case 3:
System.out.println("敲代码");
break;
case 4:
case 5:
System.out.println("复习");
// break;
case 6:
case 7:
System.out.println("出去玩");
break;
default:
System.out.println("您的输入有误!");
break;
}
}
}