Java基础(0-数组)学习

Java基础学习

Hello,Word!

  1. 打开IDEA (java编译器,可以百度安装)
  2. 配置好Java环境变量(安装完,在path中添加java的bin目录)
  3. 在src文件中新建名为“Hello”的文件
  4. 写下以下代码
public class Hello {
    public static void main(String[] args) {
        System.out.println(“Hello,Word!”);
    }
}
  1. 运行代码

在这里插入图片描述

标识符

  • 所有的标识符都应该以字母(A-Z或者a-z),美元($),或者下划线(_)开头。
  • 首字符之后可以是字母,$,_,或者数字的任意组合。
  • 不能使用关键字作为变量名或者方法名
  • 标识符是大小写敏感的
  • 合法字符举例:age,$sad,_sadsad, _1 _13s
  • 非法字符举例:123abc,-dasd,#abc
  • 可以使用中文命名,但是一般不建议使用。

数据类型

强数据类型

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

弱数据类型

  • 与上相反

Java的数据类型分两大类

  • 基本类型(primitive type)
    • 数值类型
      • 整数类型
        • byte占1个字节范围: -128-127
        • short占2个字节范围:-32768-32767
        • int占4个字节范围: -2147483648-2147483647
        • long占8个字节范围: -9223372036854775808
        • 9223372036854775807
      • 浮点类型
        • float占4个字节
        • double占8个字节
      • 字符类型char占2个字节
    • boolean类型:占1位其值只有true和false两个
  • 引用类型(reference type)
    • 接口
    • 数组

编写代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gDA0gGbi-1587737498563)(C:\Users\25388\AppData\Roaming\Typora\typora-user-images\image-20200210201037153.png)]

类型转换

    public static void main(String[] args) {
        int i = 128;
        byte n = (byte)i;
        double o = i;

        //强制转换  (类型)变量名  高->低
        //自动转换  低->高
    
        System.out.println(i);
        System.out.println(n);
        System.out.println(o);
        /*
        注意点:
        1. 不能对布尔值进行转换
        2. 不能把对象类型转换为不相干的类型
        3. 在把高容量转换到低容量的时候,强制转换
        4. 转换的时候可能存在内存溢出或者是精度问题
         */
        System.out.println("==============");
        System.out.println((int)27.4);
        System.out.println((int)-45.48f);
        //=================================================
        //操作比较大的数值的时候,注意溢出问题
        //JDK7新特性,数字之间可以使用下划线分割
        int money= 10_0000_0000;
        int years=20;
        int total=money*years;//-1474836480,计算的时候内存溢出
        long total2=money*years;//默认是int,转换之前已经存在问题了
        long total3=money*(long)years;//先把一个数据转换成long
        System.out.println(money);
        System.out.println(total);
}
}

顺序结构

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

输入语句

//hasNext
package java1.scanner;

import java.util.Scanner;
public class Select {
    public static void main(String[] args) {
        //创建一个扫描器对象,用于接受键盘数据
        Scanner S = new Scanner(System.in);
        System.out.println("使用nxet方式接收");

        //判断用户有没有接收输入字符串
        if (S.hasNext()){
            //使用next方式接收
            String str=S.next();//程序会等待用户输入完毕
            System.out.println("输入的内容为"+str);
        }
        //凡是属于IO流(输入输出)的类如果不关闭会一直占用资源,要养成好习惯,用完就关掉
        S.close();
    }
}
//hasNextLine
package java1.scanner.java01;

import java.util.Scanner;

public class Scan {
    public static void main(String[] args) {
        //从键盘接收数据
        Scanner S = new Scanner(System.in);
        System.out.println("使用nextLine方式接收");
        //判断是否有输入
        if (S.hasNextLine()){
            String str = S.nextLine();
            System.out.println("输出的内容为"+str);
        }
        S.close();
    }
}
//scanner进阶
package java1.scanner.java01;

import java.util.Scanner;

public class HasNext {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        //从键盘接收数据
        int i=1;
        float f=0.0f;
        System.out.println("请输入整数:");
        //如果。。。那么
        if (scanner.hasNextInt()){
            i = scanner.nextInt();
            System.out.println("整数数据:"+i);
        }else {
            System.out.println("输入的不是整数数据:"+i);
        }
        System.out.println("请输入小数:");
        //如果。。。那么
        if (scanner.hasNextFloat()){
            f = scanner.nextFloat();
            System.out.println("小数数据:"+f);
        }else {
            System.out.println("输入的不是小数数据:"+f);
        }

        scanner.close();
    }
}
//例题
package java1.scanner.java01;

        import java.util.Scanner;

public class Add {
    public static void main(String[] args){
        //输入多个数字,并求其总和与平均数,
        //每输入一个数字用回车确认,通过输入
        //非数字结果输出并输出结果
        Scanner scanner = new Scanner(System.in);

        //和
        double sum= 0;
        //计算输入了多少个数字
        int m=0;
        //通过循环判断还有是否还有输入,并在里面对每一次进行求和统计
        while (scanner.hasNextDouble()){
            double x =  scanner.nextDouble();
            m++;
            sum=sum+x;
            System.out.println("你输入了第"+m+"个数据"+"当前结果为"+sum);
        }
        System.out.println(m+"个数的和为"+sum);
        System.out.println(m+"个数的平均值是"+(sum/m));
        scanner.close();
    }
}

选择结构

语法

if(布尔表达式){
    //如果布尔表达式为true将执行的语句
}

switch多选择结构

package java1.scanner.java01;

public class Fan {
    public static void main(String[] args) {
        //字符的本质还是数字

        //反编译 java---class(字节码文件)---反编译(IDEA)
    String name="小明;
    switch(name){
        case "小明":
            System.out.println("小明");
            break;
        case "兰如生":
            System.out.println("兰若生");
            break;
        default:
            System.out.println("弄啥嘞!");
            break;
    }
    }
}

反编译

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package java1.scanner.java01;

public class Fan {
    public Fan() {
    }

    public static void main(String[] args) {
        String name = "小明";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 20775245:
            if (name.equals("兰如生")) {
                var3 = 1;
            }
            break;
        case 38262113:
            if (name.equals("小明")) {
                var3 = 0;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("小明");
            break;
        case 1:
            System.out.println("兰若生");
            break;
        default:
            System.out.println("弄啥嘞!");
        }

    }
}

数组

package java1.scanner.java03;

public class ABC {
    public static void main(String[] args) {
        int[] a={1,2,3,4,5};
        //打印全部数组元素
        for (int i = 0; i <a.length; i++) {
            System.out.println(a[i]);
        }

        //计算所有数组元素的和
        int sum=0;
        for (int i = 0; i < a.length; i++) {
            sum+=a[i];
        }
        System.out.println("sum="+sum);

        //数组最大值
        int i=a[0];
        for (int j = 1; j < a.length; j++) {
            if (a[j]>i){
                i=a[j];
            }
        }
        System.out.println("max="+i);
    }
}

遍历数组

package java1.scanner.java04;

public class ShuZhu {
    public static void main(String[] args) {
        int[] a= {1,2,3,4,5,6,7,8,9};
        for (int i : a) {
            System.out.println(i);
        }
    }
}
package java1.scanner.java04;

public class ShuZhu {
    public static void main(String[] args) {
        int[] a={1,2,3,4,5,6};
        p(a);
        System.out.println();
        p(s(a));
    }
    //反转数组
    public static int[] s(int[] x){
        int[] a=new int[x.length];
        for (int i = 0,j=x.length-1; i < x.length; j--,i++) {
            a[i]=x[j];
        }
        return a;
    }
    //打印数组
    public static void p(int[] x){
        for (int i = 0; i < x.length; i++) {
            System.out.print(x[i]+" ");
        }
    }
}

冒泡排序

ps:以下是两个文件代码

package java2;

public class Cha {
    public static void main(String[] args) {
        int[] s = new int[5];
        s=new int[] {1,5,3,4};
        Cha1 cha1 = new Cha1();
        cha1.shucc(s);
        Cha1.paixu(s);
        System.out.println();
        cha1.shucc(s);

    }
}
==========================================
package java2;

public class Cha1 {

    public void shucc(int[] s){
        for (int i = 0; i < s.length; i++) {
            System.out.print(s[i]+" ");
        }
    }

    public static void paixu(int[] s){
        for (int i = 0; i < s.length; i++) {
            for (int j = 0; j < i; j++) {
                int t;
                if (s[j]>s[j+1]){
                    t = s[j];
                    s[j]=s[j+1];
                    s[j+1]=t;
                }
            }
        }
    }
}

以上笔记来自B站狂神说java视频中我手抄下来的笔记,因为是第一次写博客,如果有任何不足或者侵权的地方请联系我改进或删除,应该没什么大问题吧。最后希望大家学好编程,额,就这样吧0.0

附上狂神的视频链接:
https://www.bilibili.com/video/BV12J41137hu

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章