JAVA自学

软件

	环境:jdk
	编译:cmd
	文本软件:Visual Studio Code
	编译软件:idea    https://www.jetbrains.com/

	java 是值传递

	java使用栈机制

Hello World

public class hello {
	public static void main(String[] args){
		System.out.println("hello world");
	}
}

用cmd编译
在文件夹里创建:“code”文件夹 修改属性为“.java”,命名为“hello”,
编译:在cmd输入javac hello.java
所属文件夹内弹出“hello.class”文件代表编译成功
输出:cmd输入java hello 及出现:文本内容“hello world”!
在这里插入图片描述
在E:\前面输入cmd 快速跳转使用该文件

在这里插入图片描述
用IDEA编译
在这里插入图片描述

注释

1.单行注释    
			//注释含义
2.多行注释
			/*     
			  */
3.文档注释
		   /**
		    *
		    *
		    */

关键字与标识符

关键字:是编程语言里事先定义好并赋予特殊含义的单词,也成为保留字

在这里插入图片描述

标识符:经常需要定义一些符号来标记一些名称,如包名、类名、方法名、参数名、变量名等,这些符号被称为标识符
	   1.所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
	   2.首字符之后可以是字母、美元符、下划线或者数字的任何字符组成
	   3.不能使用关键字作为变量名或者方法名
	   4.标识符是大小写敏感的

数据类型

强类型语言(java属于)

	要求变量使用要严格符合规定,所有变量都必须先定义后才能使用

弱类型语言
在这里插入图片描述

java的数据类型分为两大类

基本类型
引用类型

在这里插入图片描述
基本类型
在这里插入图片描述

类型转换

强制类型转换:定义值前面(),()内写强制转换的类型 (类型)变量名。(高到低 内存溢出)
在这里插入图片描述
在这里插入图片描述
自动转换:无需加()
在这里插入图片描述在这里插入图片描述在这里插入图片描述

变量与常量

变量

在这里插入图片描述
变量作用域

  • 类变量
  • 实例变量
  • 局部变量
    在这里插入图片描述
    局部变量必须声明和初始值
    实例变量从属于对象

常量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运算符

在这里插入图片描述

算术运算符

在这里插入图片描述
在这里插入图片描述
S
在这里插入图片描述在这里插入图片描述在这里插入图片描述

关系运算符

在这里插入图片描述在这里插入图片描述

逻辑运算符

在这里插入图片描述
在这里插入图片描述

位运算

在这里插入图片描述
简便表达
在这里插入图片描述
字符串连接符 +
在这里插入图片描述
在这里插入图片描述

三元运算符

在这里插入图片描述

包机制

在这里插入图片描述

JAVA生成JAVA Doc文档

用cmd生成JAVA Doc文档

通过cmd打开文件所属命令行,输入

  javadoc -encoding UTF-8 -charset UTF-8 Doc.java

在这里插入图片描述

用IDEA生成JAVA Doc文档

在这里插入图片描述
接下来在底部的Locale输入框配置语言和编码集,如下图所示,语言用zh_CN 代编中文

-encoding utf-8 -charset utf-8

在这里插入图片描述

Scanner对象

在这里插入图片描述

next方式接收

在这里插入图片描述
在这里插入图片描述

nextLine方式接收

在这里插入图片描述在这里插入图片描述

结构

顺序结构

在这里插入图片描述
在这里插入图片描述

选择结构

if单选择结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

if双选择结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

if多选择结构

在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/d735132fcb5f44039f7fd44417b769dc.png

用if编写计算机程序

public class 计算机demo03 {
    public static void main(String[] args) {
        String s = "7-3";
        int num1, num2, result;
        char operator;
        num1 = Integer.valueOf(s.substring(0, 1));   // int( "7" )
        operator = s.charAt(1);
        num2 = Integer.valueOf(s.substring(2, 3));
        System.out.printf("num1: %d, num2: %d, operator: %s\n", num1, num2, operator);

        if (operator == '*') {
            System.out.println(num1 * num2);
        } else if (operator == '+') {
            System.out.println(num1 + num2);

        } else if (operator == '/') {
            System.out.println(num1 / num2);

        } else if (operator == '-') {
            System.out.println(num1 - num2);
        }
    }
}

嵌套的if结构

在这里插入图片描述

switch多选择结构

在这里插入图片描述在这里插入图片描述

用switch语句创建个计算机

import java.util.Scanner;

public class 计算机demo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个数");
        int a = scanner.nextInt();
        System.out.println("请输入第二个数");
        int b = scanner.nextInt();
        System.out.println("+请输入1,-请输入2,*请输入3,/请输入4");
        int 运算符 = scanner.nextInt();

        switch (运算符) {
            case 1:
                System.out.println(a+b);
                break;
            case 2:
                System.out.println(a-b);
                break;
            case 3:
                System.out.println(a*b);
                break;
            case 4:
                System.out.println(a/b);break;

        }
    }
}

循环结构

在这里插入图片描述

whlie循环

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

do…while循环

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

for循环

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

打印九九乘法表

在这里插入图片描述
在这里插入图片描述

输入两个数,输出最大公约数
import java.util.Scanner;

//输入两个数,输出最大公约数
public class fordemo06 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int max = 0;
        for (int i = 1; i <= a; i++) {
            if (a%i==0 &&b%i==0){
                if (i > max){
                    max = i;
                }
            }
        }
        System.out.println(a+"和"+b+"最大公约数是:"+max);
    }
}

在这里插入图片描述

增强 for循环

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

break 与continue

在这里插入图片描述
break

在这里插入图片描述在这里插入图片描述

continue
在这里插入图片描述
在这里插入图片描述

JAVA方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法的定义

在这里插入图片描述
在这里插入图片描述

方法调用

在这里插入图片描述

方法的重载

命令行传参

在这里插入图片描述

可变参数

在这里插入图片描述

递归

在这里插入图片描述

package base.method;

public class demo05 {
    public static  void  main(String[] args){
        System.out.println(f(4));
    }

 //5! 5*4*3*2*1
    public  static int f(int n){
        if (n == 1){
            return 1 ;
        }else {
            return  n*f(n-1);
        }
    }
}

在这里插入图片描述
PS:小计算可以用递归,大计算吃运行
在这里插入图片描述

数组

数组声明创建

在这里插入图片描述

public class arraydemo01 {
    //变量的类型     变量的名字 = 变量的值
    //数组类型
    public static void main(String[] args) {
        int[] nums;     //1.定义,声明一个数组

        nums = new int[10];//2。这里面可以存放10个int类型的数字 创建一个数组

        //3.给数组元素中赋值
        nums[0] = 1;
        nums[1] = 2;
        nums[2] = 3;
        nums[3] = 4;
        nums[4] = 5;
        nums[5] = 6;
        nums[6] = 7;
        nums[7] = 8;

        //计算所有元素的和
        int sum = 0;
        //获取数组长度: arrays.length
        for (int i = 0;i < nums.length;i++){
            sum = sum + nums[i];
        }

        System.out.println(nums[3]);
        System.out.println("总和为:"+sum);
    }
}

在这里插入图片描述

三种初始化及内存分析

内存分析

在这里插入图片描述

三种初始化

在这里插入图片描述

public class aarraydemo02 {
    public static void main(String[] args) {
        //静态初始化:创建+赋值
    int[] a = {1,2,3,4,5,6,7};
    System.out.println(a[2]);

    //动态初始化
        int[] b = new int[10];
        b[0] = 10;
        System.out.println(b[0]);
        System.out.println(b[1]);
    }
}

在这里插入图片描述

数组的四个基本特点

在这里插入图片描述

数组边界

在这里插入图片描述

数组使用

普通for循环

public class arraydemo03 {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};

        //打印全部的数组元素
        for (int i = 0; i < arrays.length; i++) {
            System.out.println(arrays[i]);
        }
        System.out.println("=====================");
        //计算所有元素和
        int sum =0;
        for (int i = 0; i < arrays.length; i++) {
            sum +=  arrays[i];
        }
        System.out.println("sum="+sum);
        System.out.println("=====================");
        //查找最大元素
        int max = 0;
        for (int i = 0; i < arrays.length; i++) {
            if (arrays[i]>max);
            max = arrays[i];
        }
        System.out.println("max="+max);
    }
}

在这里插入图片描述

For - Each循环 数组做方法入参 数组做返回值

public class arraydemo04 {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};

        int[] reverse = reverse(arrays);
        printArray(reverse);
    }

    //反转数组
    public static int[] reverse(int[] arrays){
        int[] result = new int[arrays.length];

        //反转的操作
        for (int i = 0 , j=result.length-1; i < arrays.length; i++,j--) {
            result[j] = arrays[i];
        }

        return result;
    }

    //打印数组元素
    public static void printArray(int[] arrays) {
        for (int i = 0; i < arrays.length; i++) {
            System.out.println(arrays[i]+"");
        }
    }
}

多维数组

在这里插入图片描述

Arrays类

在这里插入图片描述

package base.array;

import java.lang.reflect.Array;
import java.util.Arrays;

public class arraydemo06 {
    public static void main(String[] args) {

        int[] a = {1,2,555,22,35,15534,21};

        System.out.println(a);//[I@776ec8df

        //打印数组元素Arrays.toString(a)
       System.out.println(Arrays.toString(a));
        printArray(a);  //方法调用
        Arrays.sort(a);//数组进行排序:升序
        System.out.println(Arrays.toString(a));
    }

    public static void printArray(int[] a) {
        for (int i = 0; i < a.length; i++) {
            if (i==0){
                System.out.print("[");
            }
            if (i==a.length-1){
                System.out.print(a[i]+"]");
            }else {
                System.out.print(a[i]+",");
            }

        }

    }
}

在这里插入图片描述

冒泡排序

在这里插入图片描述

package base.array;

import java.util.Arrays;

public class demo07 {
    public static void main(String[] args) {
        int[] a = {1,2,46,556,13,54,11,956};

        int[] liuliu = liuliu(a);//调用完我们自己写的排序方法以后,返回一个排序后的数组

        System.out.println(Arrays.toString(liuliu));

    }
    //冒泡排序
    //1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
    //2.每一次比较,都会产生出一个最大,或者最小的数字;
    //3.下一轮则可以少一次排序!
    //4.依次循环,直到结束!
    public static int[] liuliu(int[] array) {
        //临时变量
        int tep = 0;

        //外层循环,判断我们这个要走多少次;
        for (int i = 0; i < array.length - 1; i++) {
            //内层循环,比价判断两个数,如果第一个数,比第二个数大,则交换位置

            for (int j = 0; j < array.length-1-i; j++) {
                if (array[j+1]<array[j]){   // < 是从小到大,>是从大到小
                tep = array[j];
                array[j]=array[j+1];
                array[j+1] = tep;
                }
            }
            
        }
        return  array;
    }
}

稀疏数组

在这里插入图片描述
在这里插入图片描述

package base.array;

public class arraydemo08 {
    public static void main(String[] args) {
        //1.创建一个二维数组11*11   0:没有棋子    1,黑子    2,白子
        int [][] array1 = new int[11][11];
        array1[1][2] = 1;
        array1[2][3] = 2;
        //输出原始数组
        System.out.println("输出原始的数组");

        for (int[] ints : array1){
            for (int anInt :ints){
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }

        //转换为稀疏数组
        int sum = 0;
        for (int i = 0; i < 11; i++) {
            for (int j = 0; j < 11; j++) {
                if (array1[i][j] != 0){
                     sum ++;
                }
            }

        }
        System.out.println("有效值的个数:"+sum);

        //2,创建一个稀疏数组的数组
        int[][] array2 = new int[sum+1][3];

        array2[0][0] = 11;
        array2[0][1] = 11;
        array2[0][2] = sum;

        //遍历二维数组,将非零的值,存放稀疏数组中
        int count = 0;
        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array1[i].length; j++) {
                if (array1[i][j] != 0){
                    count++;
                    array2[count][0] = i;
                    array2[count][1] = j;
                    array2[count][2] = array1[i][j];
                }
            }
        }
        //输出稀疏数组
        System.out.println("稀疏数组");

        for (int i = 0; i < array2.length; i++) {
            System.out.println(array2[i][0]+"\t"
            +array2[i][1]+"\t"
            +array2[i][2]+"\t");

        }

        System.out.println("还原");
        //1.读取稀疏数组
        int[][] array3 = new int[array2[0][0]][array2[0][1]];

        //2.给其中的元素还原他的值
        for (int i = 1; i < array2.length; i++) {
            array3[array2[i][0]][array2[i][1]] = array2[i][2];
        }
        //3.打印
        System.out.println("输出原始的数组");

        for (int[] ints : array3){
            for (int anInt :ints){89                System.out.print(anInt+"\t");
            }
            System.out.println();
        }
    }
}

在这里插入图片描述

面向对象编程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

构造器

构造器:
1.和类名相同
2.没有返回值
作用:
1.new本质调用构造方法
2.初始化对象的值
注意点:
1.定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造
方法一:
在这里插入图片描述
方法二:
在这里插入图片描述

创建对象内存分析

在这里插入图片描述

在这里插入图片描述

封装

在这里插入图片描述
在这里插入图片描述

继承

在这里插入图片描述

  • 私有的东西无法被继承
  • 子类继承了父类,就有父类所有的方法
  • 在java中,所有的类,都被默认直接或者简介继承object
  • 隐藏代码:调用了父类的无参构造
  • 调用父类的构造器,必须要在子类构造器,必须要在子类构造器的第一行

object类
在这里插入图片描述
super类
在这里插入图片描述
重写
在这里插入图片描述

非静态才是重写!
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
多态
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

instanceof和类型转换

instanceof
在这里插入图片描述
instanceof是Java的一个保留关键字,左边是对象,右边是类,返回类型是Boolean(false;true)类型。它的具体作用是测试左边的对象是否是右边类或者该类的子类创建的实例对象,是,则返回true,否则返回false。
类型转换
在这里插入图片描述

抽象类

在这里插入图片描述
在这里插入图片描述

接口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

异常

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

异常处理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值