Java语法突击
笔者因为学校奇葩选课原因,需要学习Java,考试所迫和大伙一起交流复习下基础的语法内容,大家都一把拿下考试👊
观前提醒:本文整理的有些仓促了,简单几分钟看看Java有什么内容还好,如果有细致学习的需求推荐看一下廖雪峰的Java教程,跟着敲一敲代码,把基础打牢。
Java基本语法
程序结构
编写第一个Java程序 Hello_world
// 这里是注释
// 类是一个程序的基本单位,此处类名为Hello_world
public class Hello_world {// 此处为类中的main方法public static void main(String[] args) {// java的打印函数System.out.println("Hello, world!");}
}
保存代码文件为hello_world.java
编译:javac hello_world.java
运行:java hello_world.java
数据类型
Java的数据类型和C/C++没有很大出入:
- 整数类型:byte,short,int,long
- 浮点数类型:float,double
- 字符类型:char
- 布尔类型:boolean
public static void main(String[] args) {int a = 10;// float类型需要加上f后缀,不加后缀的为double类型,不能赋给float。float b = 3.14f;char c = 'm';boolean d = true;
变量和常量
常量
定义的变量前面加上final
关键词,这个变量就变成了常量。
如:final double PI = 3.14;
为了便于区分,常量名通常全部大写。
var关键字
java编译器可以根据赋值语句自动推测出变量类型,使用var可以简化我们的代码,如var a = 100
运算符
这部分的内容和C/C++基本一致,包括运算顺序、自增自减、移位运算、位运算(与/或)、类型转换操作,不再赘述。
流程控制
输入和输出
java的输入和C语言基本相同,通过System.out.printf()可以实现占位格式化输出。
Java的输入要复杂一些,下面来看一个读取一个字符串和一个整形输入的代码:
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); // 格式化输出}
}
首先我们需要import导入Scanner包,
然后创建scanner对象,
最后调用scanner.nextLine()来实现读取命令行输入的信息。
if、switch、while、for
使用方式和C中一致,不再赘述。
数组
定义数组int[] nums = new int[5]
获取数组大小nums.length
Java中的数组一旦创建后大小就不可改变了,数组本身是引用类型。
下面列举一些常用的数组操作:
// 打印数组(除了for循环java中还有更方便的方式)
System.out.printLn(Arrays.toString(ns));
// 打印多维数组(除了多层循环)
System.out.printLn(Arrays.deepToString(ns));
// 数组排序
Arrays.sort(ns);
面向对象技术基础
如果大家之前接触过面向对象的高级语言,那么应该对面向对象的基础已经很熟悉了,这里简要概括几笔。
继承、抽象类和接口
// Student继承Person类,重写抽象类
class Student extends Person {@overridepublic void run() {System.out.println("run");}
}
// java抽象类
abstract class Person {public abstract void run();
}// 接口定义
interface Person {public abstract void run();
}
// 接口继承
class Student implements Person {@overridepublic void run() {System.out.println("run");}
}
java使用extends
来实现继承
接口interface是更抽象的抽象类,类中没有字段,只有抽象方法。接口定义使用interface
关键字,接口继承使用implement
关键字
io
异常处理
Java内置了一套异常处理机制,使用try...catch
语句
public static void main(String[] args) {try {process1();process2();process3();} catch (UnsupportedEncodingException e) {System.out.println("Bad encoding");} catch (IOException e) {System.out.println("IO error");} finally {System.out.println("END");}
}
多线程
Java创建多线程直接new就行了
// 多线程
public class Main {public static void main(String[] args) {Thread t = new Thread(new MyRunnable());t.start(); // 启动新线程}
}class MyRunnable implements Runnable {@Overridepublic void run() {System.out.println("start new thread!");}
}