Java编程入门

Java语言简介

  • 是一个行业内通用的技术实现标准
  • 是一门面向对象的编程语言
  • 提供有方便的内存回收处理机制
  • 避免了复杂的指针问题
  • 是为数不多支持多线程编程的开发语言
  • 提供有高效的网络处理能力
  • 具有良好的可移植性

    搭建Java开发环境

  1. JDK下载地址:https://www.oracle.com/java/technologies/javase-downloads.html
  2. 配置环境变量:此电脑→属性→高级系统设置→环境变量→系统变量
  3. 新建:JAVA_HOMEC:\Lin1118\java(JDK的安装目录)
  4. 编辑Path:在最前面增加%JAVA_HOME%\bin;(Win10的弹窗编辑模式会自动添加分号)
  5. 验证配置:Win+Rcmdjavac -version

    初识Java开发

    EditPlus编辑文件HelloWorld.java

    1. public class HelloWorld {
    2. public static void main(String[] args) {
    3. System.out.println("Hello 世界!");
    4. }
    5. }

    编译代码:javac HelloWorld.java
    运行程序:java HelloWorld

    Java基本概念

    注释

    1. /**
    2. 文档注释
    3. @author Lin1118
    4. */
    5. public class HelloWorld {
    6. /*
    7. 多行注释
    8. 多行注释
    9. */
    10. public static void main(String[] args) {
    11. // 单行注释
    12. System.out.println("Hello 世界!");
    13. }
    14. }

    标识符

    标识符可以由字母、数字、下划线、美元符组成,数字不能开头:agelastNamestr2numtemp

    关键字

    在程序中有特殊意义的字符就是关键字:publicclassvoidbyte

    数据类型

    Java语法基础 - 图1

    整数型

    1. public class Demo {
    2. public static void main(String[] args) {
    3. byte temp1 = 127;
    4. short temp2 = 1024;
    5. int temp3 = Integer.MAX_VALUE;
    6. long temp4 = 4294967296L;
    7. System.out.println(temp1);
    8. System.out.println(temp2);
    9. System.out.println(temp3);
    10. System.out.println(temp4);
    11. }
    12. }

    浮点型

    1. public class Demo {
    2. public static void main(String[] args) {
    3. float temp1 = (float) 10.2;
    4. float temp2 = 10.1F;
    5. double temp3 = 3.14;
    6. System.out.println(temp1 * temp2);
    7. System.out.println(temp3);
    8. }
    9. }

    字符型

    1. public class Demo {
    2. public static void main(String[] args) {
    3. char temp1 = 'a';
    4. int temp2 = temp1;
    5. char temp3 = (char) (temp2 - 32);
    6. System.out.println(temp1);
    7. System.out.println(temp2);
    8. System.out.println(temp3);
    9. }
    10. }

    布尔型

    1. public class Demo {
    2. public static void main(String[] args) {
    3. boolean flag1 = true;
    4. boolean flag2 = false;
    5. System.out.println(flag1);
    6. System.out.println(flag2);
    7. }
    8. }

    字符串

    1. public class Demo {
    2. public static void main(String[] args) {
    3. String str = "Hello";
    4. str = str + " World";
    5. str += "!!!";
    6. System.out.println(str);
    7. int x = 8;
    8. int y = 10;
    9. System.out.println("x+y=" + x + y);
    10. System.out.println("x+y=" + (x + y));
    11. System.out.println("AB\"CD\"EFG\tAAAAAA\nBBBBB\u0065" + "OK");
    12. System.out.println("Hello World".toUpperCase());
    13. }
    14. }

    Java运算符

    数学运算

    | 加 | + | 取模 | % | | —- | —- | —- | —- | | 减 | - | 自增 | ++ | | 乘 | | 自减 | — | | 初 | / | 简便用法 | +=、-=、=、/=、%= |

  1. public class Demo {
  2. public static void main(String[] args) {
  3. int x = 1;
  4. int y = 1;
  5. int z = x + y;
  6. System.out.println(z);
  7. System.out.println(Integer.MAX_VALUE + z);
  8. int m = y++;
  9. System.out.println(m);
  10. System.out.println(y);
  11. int n = --x;
  12. System.out.println(n);
  13. System.out.println(x);
  14. System.out.println(10/3);
  15. System.out.println(10%3);
  16. }
  17. }

关系运算

  1. public class Demo {
  2. public static void main(String[] args) {
  3. int x = 1;
  4. int y = 1;
  5. boolean flag = x == y;
  6. System.out.println(flag);
  7. System.out.println(5 > 7);
  8. System.out.println(5 < 7);
  9. System.out.println(5 >= 7);
  10. System.out.println(5 <= 7);
  11. System.out.println(5 == 7);
  12. char c = 'A';
  13. System.out.println(c == 65);
  14. }
  15. }

逻辑运算

  1. public class Demo {
  2. public static void main(String[] args) {
  3. boolean falg1 = true;
  4. boolean falg2 = true;
  5. System.out.println(falg1 && falg2);
  6. System.out.println(falg1 || falg2);
  7. System.out.println(!falg1);
  8. }
  9. }

位运算

  1. public class Demo {
  2. public static void main(String[] args) {
  3. System.out.println(5 & 8);
  4. System.out.println(5 | 8);
  5. System.out.println(5 ^ 8);
  6. System.out.println(2<<3);
  7. System.out.println(2>>3);
  8. System.out.println(2>>>3);
  9. }
  10. }

三目运算

  1. public class Demo {
  2. public static void main(String[] args) {
  3. int x = 5;
  4. int y = 8;
  5. int max = x>y ? x : y;
  6. System.out.println(max);
  7. }
  8. }

逻辑控制

if else

  1. public class Demo {
  2. public static void main(String[] args) {
  3. int score = 99;
  4. if(score >= 90) System.out.println("优秀");
  5. if(score >= 90) {
  6. System.out.println("优秀1");
  7. System.out.println("优秀2");
  8. System.out.println("优秀3");
  9. }
  10. if(score >= 90) {
  11. System.out.println("优秀");
  12. }else {
  13. System.out.println("不优秀");
  14. }
  15. if(score >= 90) {
  16. System.out.println("优秀");
  17. }else if(score >= 60) {
  18. System.out.println("还行");
  19. }else {
  20. System.out.println("很差");
  21. }
  22. }
  23. }

switch

  1. public class Demo {
  2. public static void main(String[] args) {
  3. String str = "B";
  4. switch (str) {
  5. case "A": {
  6. System.out.println("AAA");
  7. break;
  8. }
  9. case "B": {
  10. System.out.println("BBB");
  11. break;
  12. }
  13. case "C": {
  14. System.out.println("CCC");
  15. break;
  16. }
  17. default: {
  18. System.out.println("DDD");
  19. }
  20. }
  21. }
  22. }

while

  1. public class Demo {
  2. public static void main(String[] args) {
  3. int sum = 0;
  4. int num = 1;
  5. while(num <= 100) {
  6. sum += num;
  7. num++;
  8. }
  9. System.out.println(sum);
  10. int count = 0;
  11. do {
  12. System.out.println(count);
  13. count--;
  14. }while(count >= 1);
  15. }
  16. }

for

  1. public class Demo {
  2. public static void main(String[] args) {
  3. int sum = 0;
  4. for(int i=1; i<=100; i++) {
  5. sum += i;
  6. }
  7. System.out.println(sum);
  8. }
  9. }

循环控制

  1. public class Demo {
  2. public static void main(String[] args) {
  3. for(int i=1; i<=5; i++) {
  4. if(i == 3) break;
  5. System.out.println(i);
  6. }
  7. System.out.println("----");
  8. for(int i=1; i<=5; i++) {
  9. if(i == 3) continue;
  10. System.out.println(i);
  11. }
  12. }
  13. }

循环嵌套

  1. public class Demo {
  2. public static void main(String[] args) {
  3. for(int i=1; i<=9; i++) {
  4. for(int j=1; j<=i; j++) {
  5. System.out.print(j + "*" + i + "=" + (j*i) + "\t");
  6. }
  7. System.out.println();
  8. }
  9. }
  10. }

方法

定义方法

  1. public class Demo {
  2. public static void main(String[] args) {
  3. fun();
  4. fun();
  5. System.out.println(max(5, 8));
  6. System.out.println(max(9, 4));
  7. }
  8. public static void fun() {
  9. System.out.println("AAA");
  10. System.out.println("BBB");
  11. System.out.println("CCC");
  12. }
  13. public static int max(int x, int y) {
  14. return x>y ? x : y;
  15. }
  16. }

方法重载

  1. public class Demo {
  2. public static void main(String[] args) {
  3. System.out.println(sum(5, 8));
  4. System.out.println(sum(5, 8, 9));
  5. System.out.println(sum(9.2, 4.5));
  6. sum(9.2, 4.5, 5.6);
  7. }
  8. public static int sum(int x, int y) {
  9. return x + y;
  10. }
  11. public static int sum(int x, int y, int z) {
  12. return x + y + z;
  13. }
  14. public static double sum(double x, double y) {
  15. return x + y;
  16. }
  17. public static void sum(double x, double y, double z) {
  18. System.out.println(x + y + z);
  19. }
  20. }

方法递归

  1. public class Demo {
  2. public static void main(String[] args) {
  3. System.out.println(sum(10));
  4. System.out.println(sum(100));
  5. System.out.println(sum(200));
  6. }
  7. public static int sum(int num) {
  8. if(num == 1) return 1;
  9. return num + sum(num-1);
  10. }
  11. }

形参与实参

  • 形式参数:是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数
  • 实际参数:在调用有参函数时,主调函数和被调函数之间有数据传递关系。在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”

    值传递与引用传递

  • 值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数

  • 引用传递是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数