Java 基础语法
注释
/**
文档注释:文档注释的内容是可以提取到一个程序说明文档中去的
*/
public class HelloWorld {
public static void main(String[] args) {
// 这是单行注释
/*
这是多行注释
这是多行注释
*/
System.out.println("Hello World");
}
}
// 单行注释-快捷键:ctrl + /
// 多行注释-快捷键:ctrl + shift + /
标识符的建议规范
- 变量名称:建议用英文、有意义、首字母小写,满足"驼峰模式",例如:helloWorld
- 类名称:建议全英文、有意义、首字母大写,满足"驼峰模式",例如:StudentClass
进制
- Java 程序中支持书写二进制、八进制、十六进制的数据
- 二进制(0B或者0b开头):int a1 = 0B01100001 或者 int a1 = 0b01100001
- 八进制(0开头): int a2 = 0141
- 十进制(正常操作):int a3 = 666
- 十六进制(0X或者0x开头):int a4 = 0XFA 或者 int a4 = 0xFA
基本数据类型
类型详情
数据类型 | 数据类型 | 内存占用(字节数) | 数据范围 |
---|---|---|---|
整型 | byte | 1 | -128~127 |
整型 | short | 2 | -32768~32767 |
整型 | int (默认) | 4 | -2147483648~2147483647 |
整型 | long | 8 | -9223372036854775808~9223372036854775807 |
浮点型 | float | 4 | 1.401298 E -45 到 3.4028235 E +38 |
浮点型 | double (默认) | 8 | 4.9 000 000 E -324 到 1.797693 E + 308 |
字符型 | char | 2 | 0-65535 |
布尔型 | boolean | 1 | true、false |
代码实例
public class HelloWorld {
public static void main(String[] args) {
// 整型
byte b = 127; // -128 ~ 127
short s = 13266;
int i = 667788; // 整型-默认
long l = 567898989L; // 注意后面要加个 L
// 浮点型
float f = 3.14F; // 注意后面要加个 F
double d = 56.45; // 浮点型-默认
// 字符型
char ch = 'a';
// boolean
boolean bool = true;
boolean bool2 = true;
// 扩展一种引用数据类型
// 字符串类型
String name = "tomato";
}
}
类型转换
-
自动类型转换
-
类型范围小的变量,可以直接赋值给类型范围大的变量
- byte => short ( char ) => int => long => float => double
-
代码实例
-
public class HelloWorld {
public static void main(String[] args) {
char ch = 'a';
int i = ch; // 发生了自动类型转换
System.out.println(i);
}
}
-
表达式的自动类型转换
- 表达式的最终结果类型由表达式中的最高类型决定( byte、short、char 除外 )
- 在表达式中,byte、short、char 是直接转换成 int 类型参与运算
-
强制类型转换
public class HelloWorld {
public static void main(String[] args) {
int i = 300;
System.out.println(i); // 300
byte b = (byte) i; // 强制类型转换,很可能发生数据(丢失)溢出
System.out.println(b); // 44
}
}
运算符
- 基本的算数运算符
符号 | 作用 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
补充:“+” 符号与字符串运算的时候,是起到连接的作用
例如:“abc” + 5 => “abc5”
- 自增自减运算符
- i++ (先使用、后自增)
- ++i (先自增、再使用)
- i-- (先使用、后自减)
- –i (先自减、再使用)
- 赋值运算符
- " = "
- 从右往左看
- 扩展赋值运算符
符号 | 用法 | 作用 | 底层代码形式 |
---|---|---|---|
+= | a+=b | 加后赋值 | a = ( a的类型 ) ( a + b ) |
-= | a-=b | 减后赋值 | a = ( a的类型 ) ( a - b ) |
*= | a*=b | 乘后赋值 | a = ( a的类型 ) ( a * b ) |
/= | a/=b | 除后赋值 | a = ( a的类型 ) ( a / b ) |
%= | a%=b | 取余后赋值 | a = ( a的类型 ) ( a % b ) |
注意:扩展的赋值运算符隐含了强制类型转换
-
关系运算符
- 符号:> >= < <= == !=
- 判断是否满足条件,返回结果:true 或者 false
-
逻辑运算符
符号 叫法 例子 运算逻辑 & 逻辑与 2>1 & 3>2 全真才真 | 逻辑或 2>1 & 3<5 全假才假 ! 逻辑非 ! (2>1) 取反 ^ 逻辑异或 2>1 ^ 3>1 前后条件结果相同返回false,不同返回true 符号 叫法 && 短路与 || 短路或 - 注意在Java中,&、| 无论左边结果如何,都会执行右边,效率相对低下
- 而 &&、|| 则与之相反,因此运算效率更高,在开发中应用更多
-
三元运算符
public class HelloWorld {
public static void main(String[] args) {
int a = 99;
int b = 66;
int c = a > b ? a : b;
System.out.println(c); // 99
}
}
基本输入输出
import java.util.Scanner; // 导包
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // 实例化扫描对象sc
// 调用sc对象
System.out.println("请您输入姓名>>> ");
String name = sc.next(); // 等待用户输入一个整数并按下回车确定
System.out.println("您的姓名为: " + name);
}
}
程序流程控制
分支结构
- if
if (6 > 3) {
System.out.println("6大于3");
}
if (6 > 3) {
System.out.println("6大于3");
} else {
System.out.println("6不大于3");
}
if (6 > 3) {
System.out.println("6大于3");
} else if (6 == 3) {
System.out.println("6等于3");
} else {
System.out.println("6小于3");
}
- switch
String week = "星期三";
switch (week) {
case "星期一":
System.out.println("今天是星期一哦");
break;
case "星期二":
System.out.println("今天是星期一哦");
break;
case "星期三":
System.out.println("今天是星期一哦");
break;
case "星期四":
System.out.println("今天是星期一哦");
break;
case "星期五":
System.out.println("今天是星期一哦");
break;
default:
System.out.println("已经是周六日啦,放假吧~~");
String week = "星期三";
switch (week) {
case "星期一":
case "星期二":
case "星期三":
case "星期四":
case "星期五":
System.out.println("今天是工作日哦");
break;
default:
System.out.println("已经是周六日啦,放假吧~~");
循环结构
- for 循环
for (int i = 0; i < 3; i++) {
System.out.println("我爱你");
}
- while 循环
int i = 0;
while (i < 5) {
System.out.println("当前 i 的值为 " + i++);
}
- do-while 循环
int i = 0;
do {
System.out.println("Hello World x" + i++);
}
while (i < 5);
- 跳转关键字
- break : 跳出并结束当前循环
- continue : 跳出本次的循环,直接进入下一次循环
生成随机数
import java.util.Random; // 导包
public class HelloWorld {
public static void main(String[] args) {
Random r = new Random(); // 创建对象r
int number = r.nextInt(0, 10); // 随机范围[0,10)
System.out.println("本期中奖号码: " + number);
}
}