Java从入门到精通
java快速入门
学习目标:熟练掌握 java EE
廖雪峰老师推荐的Java学习路线图如下:
1、首先要学习Java SE,掌握Java语言本身、Java核心开发技术以及Java标准库的使用;
2、如果继续学习Java EE,那么Spring框架、数据库开发、分布式架构就是需要学习的;
3、如果要学习大数据开发,那么Hadoop、Spark、Flink这些大数据平台就是需要学习的,他们都基于Java或Scala开发;
4、如果想要学习移动开发,那么就深入Android平台,掌握Android App开发。
一些术语
JDK:Java Development Kit,将源码编译成java字节码
JRE:Java Runtime Environment,运行java字节码的虚拟机
JSR:Java Specification Request,规范
JCP:Java Community Process,组织
RI:Reference Implementation,参考实现
TCK:Technology Compatibility Kit,兼容性测试套件
代码规范
一个java源码只能定义一个public类型的class,并且class名和文件名要完全一致
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
javac Hello.java
java Hello
java Hello.java
程序基础
1、程序基本结构
public:访问修饰符,表示该class是公开的,可以从命令行执行
java入口程序规定的方法必须是静态方法static,方法名必须为main,括号内参数必须是String数组
class命名一般首字母大写,method命名一般首字母小写
java每一行语句必须以分号结束
// 单行注释
/* 多行注释*/
/**
* 写在 class 和 method 的定义处,用于自动创建文档
*/
2、变量和数据类型
1、基本类型:
整数类型:byte、short、int、long
浮点数类型:float、double
字符类型:char(使用单引号且只有一个字符,字符串使用双引号)
布尔类型:boolean
2、引用类型
字符串String,类似于C语言的指针,内部存储一个地址,指向某个对象在内存中的位置
3、常量
定义变量时加上final修饰符,变量即为常量
常量在定义时进行初始化后就不可以再次赋值了,否则会导致编译错误
常量名通常全部大写
4、var关键字
StringBuilder sb = new StringBuilder();
var sb = new StringBuilder();
5、数组
int[] ns = new int[5]
String[] names = {
"ABC", "XYZ", "zoo"
};
3、流程控制
public class Main {
public static void main(String[] args) {
System.out.print("A,");
System.out.print("B,");
System.out.print("C.");
System.out.println();
System.out.println("END");
double d = 3.1415926;
System.out.printf("%.2f\n", d); // 显示两位小数3.14
System.out.printf("%.4f\n", d); // 显示4位小数3.1416
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 创建Scanner对象
System.out.print("Input your name: "); // 打印提示
String name = scanner.nextLine(); // 读取一行输入并获取字符串
System.out.print("Input your age: "); // 打印提示
int age = scanner.nextInt(); // 读取一行输入并获取整数
System.out.printf("Hi, %s, you are %d\n", name, age); // 格式化输出
}
}
if else
switch case
if (option == 1) {
System.out.println("Selected 1");
} else if (option == 2) {
System.out.println("Selected 2");
} else {
System.out.println("Not selected");
}
public class Main {
public static void main(String[] args) {
int option = 99;
switch (option) {
case 1:
System.out.println("Selected 1");
break;
default:
System.out.println("Not selected");
break;
}
}
}
// java12
public class Main {
public static void main(String[] args) {
String fruit = "apple";
switch (fruit) {
case "apple" -> System.out.println("Selected apple");
case "pear" -> System.out.println("Selected pear");
case "mango" -> {
System.out.println("Selected mango");
System.out.println("Good choice!");
}
default -> System.out.println("No fruit selected");
}
}
}
// case赋值,yield返回
public class Main {
public static void main(String[] args) {
String fruit = "apple";
int opt = switch (fruit) {
case "apple" -> 1;
case "pear", "mango" -> 2;
default -> {
int code = fruit.hashCode();
yield code; // switch语句返回值
}
}; // 注意赋值语句要以;结束
System.out.println("opt = " + opt);
}
}
while
do while
for --> for (int i=0; i<ns.length; i++)
for each --> for (int n : ns)