Java的基础学习笔记:

Java的基础学习笔记:

1.JDK的下载、安装、配置

首先,先介绍下JRE和JDK:

​ JRE(Java Runtime Environment ) Java运行环境,用来运行JAVA程序的。

​ JDK(Java Development Kit) Java开发工具包,包含JRE。因此只需要下载安装JDK即可中。

下载链接(官网):Java (oracle.com)

我们进入页面后,点击Download Java,下载对应的Java版本。

在这里插入图片描述

​ 安装过程中就注意下选择自己需要安装的路径(不要包含中文字符),一路next就好了。

安装好后,进行如下步骤:

在这里插入图片描述
随后点击高级系统设置:

在这里插入图片描述
随后点击环境变量:

在这里插入图片描述

在这里插入图片描述

在系统变量(s)下方选择新建

在这里插入图片描述

​ 如图建立变量名为Java_home的系统变量,其中变量值指的是JDK的安装路径,直接复制JDK的安装路径黏贴即可。

然后再在系统变量(s)中找到path

在这里插入图片描述

点击编辑,进入下图所示页面
在这里插入图片描述

点击新建(N),输入%Java_Home%\bin

完成以上操作后,进入命令行分别输入java、javac看命令是否执行成功。

若成功,则输出以下信息:

在这里插入图片描述

若不成功则环境变量配置不正确,重新进行配置。

2.知识点的总结

(1).首先介绍下Java和C的区别

​ Java不支持头文件、不支持宏定义,且Java类型转换不同,不再使用指针。Java对内存的分配是动态的,十分的灵活。但是话虽如此,还是二者在代码的用法上还是十分相似,Java与python在代码的用法上也十分相似(自我认为)。

(2).代码的学习笔记

​ 本文用的是IDE软件来讲解代码,当然如果用记事本等软件也支持。

1.Java的程序运行要在相应的类内(用HelloWorld来演示)
public class HelloWorld{
    public static void main(string[] args)
    {
        System.out.println("HelloWorld");
    }
}

正如上述,代码的相应操作要在对应的类内。

public class HelloWorld{
    public static void main(string[] args)
    {
        //代码内容
    }
}

当然类名等我们都可以需要自行修改。

(如果使用IDE,可以通过直接输入psvm来快捷打出public static void main(string[] args))

2.Print、scanf操作
System.out.println(15+1);//输出16,输出计算结果
System.out.println("HelloWorld");//输出HelloWorld
System.out.println("a"+"b"); //输出ab
int x = 5;
System.out.println("x:"+x); //输出x:5

在IDE中,可以输入sout快捷实现System.out.println()。

import java.util.Scanner;
public class HelloWorld{
	public static void main(String[] args)
    {
    	Scanner sc = new Scanner(System.in);
		String x = sc.nextInt();
        String s = reverse(x);
    }
}

​ 上述代码实现scanf操作,并将输入结果存在x中。其中reverse(x)实现的是字符串的反转。

3.数据类型

​ Java的数据类型同C一般存在int、double、float等,但注意每个数据类型的等级是不一样的。

在这里插入图片描述

其中对标识符有以下规定:

​ 1.由数字、字母、下划线_、美元符$组成

​ 2.不能以数字开头

​ 3.不能是关键字(例如Class)

​ 4.区分大小写

强制类型转换:

​ 强制类型转换含义:高等级转换为低等级的字节(低等级到高等级不需要强制转换)

double x = 88.88;
int y = (int)x;
System.out.println("y");
//输出88
4.运算符

​ 同C一般支持加、减、乘、除、取余。

System.out.println(d + f);
System.out.println(d - f);
System.out.println(d * f);
System.out.println(d / f);
System.out.println(c % h);
char m = 'A';      //值为65
System.out.println(m+1);    //输出66

​ 算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升,正如上述m+1操作。

等级顺序:byte,short,char → int long →float→ double

5.if、while、for、switch用法

(个人感觉跟C一样)

if:

/*
if(判断)
{
	执行操作;
}else{
	执行操作;
}
*/
int a = 0;
int b = 33;
if(a>33)
{
    a = 0;
}else
{
    b = 0;
}

while:

/*
while(判断)
{
	循环语句
}

do{
	循环语句
}while(判断)
*/

whiletrue{
    System.out.println("打工!");    
}

for:

/*
for(变量;条件;操作)
{
	循环操作
}
*/
for(int i = 0;i<100;i++)
{
    System.out.println("干饭!");    
}

switch:

/*
switch(表达式)
{
	case 1:
		语句1;
		break;
	case 2:
		语句2;
		break;
	......
	default:
		语句n+1;
		break;
}
*/
switch(i)
{
    case 1:
    	System.out.println("干饭!"); 
    	break;
    case 2:
    	System.out.println("打工!"); 
    	break;
    ......
        default:
    	System.out.println("累了!"); 
    	break;
}

6.方法定义

方法定义按C和python的理解就是定义函数

/*     
		通用格式
	public static 返回值类型 方法名(参数)
	{
		方法体;
		return 数据;
	}
*/

public class MethodDemo
{
    public static void methodOne()
    {
        //代码片段1
    }
    
    public static void methodOne2()
    {
        //代码片段2
    }
}

注意:方法不能嵌套方法定义,但是可以嵌套使用

​ 方法要注意返回值

方法的重装载:

public class MethodDemo
{
    public static int methodOne(int a,int b)
    {
        return a+b;
    }
    
    public static double methodOne(double a,double b)
    {
        double c = methodOne1(a,b);
        return c;
    }
      
    public static double methodOne1(double a,double b)
    {
        return a*b;
    }
    
}

​ 同一个方法名可以重装载多个用法,根据使用时输入的数据不同则进行不同的计算,同时不同函数间可以实现嵌套使用。

7.类和对象

​ 类是Java程序的基本组成单位。

​ (1).类是对象的数据类型
​ (2).类是具有相同属性和行为的一组对象的集合 (3).属性: 对象具有的各种特征,每个对象的每个属性都拥有特定的值 (4).行为: 对象能够执行的操作

/*
    public class 类名:
{
	//成员变量
	变量1的数据类型 变量1;
    变量2的数据类型 变量2;
    ...
    //成员方法
    方法1;
    方法2;
    ...
}
*/

public class phone{
    String brand;
    int price;   //成员变量
    private int num = 0//用private修饰后,num只能在phone这个类中使用,外部无法调用
    
    public void call(int price)
    {
        int a;   //局部变量
        this.price = price;
        //this可以区别局部变量和成员变量,此行实现相同名称的局部变量和成员变量的赋值
        System.out.println("打电话");
    }
}

调用类:

public class PhoneDemo{
    public static void main(string[] args)
    {
        //创建对象
        phone p = new phone();
        //调用成员变量和方法
        p.brand = "华为";
        p.price = 10000;
        //注意若未给变量赋值,则默认String为null,int为0
        p.call();
        
        //执行以下操作会将P给覆盖,即更改
        phone m = p;
        m.brand = "小米";
        m.price = 9000;
        //注意若未给变量赋值,则默认String为null,int为0
        m.call();
    }
}

标准类制作:

public class Student_message {
    private String name;   //姓名
    private String age;    //年龄
    private String num;    //学号
    private String address;

    public Student_message() {
    }

    public Student_message(String name, String age, String num, String address) {
        this.name = name;
        this.age = age;
        this.num = num;
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public String getAge() {
        return age;
    }

    public String getNum() {
        return num;
    }

    public String getAddress() {
        return address;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

​ 其中,若是调用Student_message(),则可以进行setNum()等方法操作,若调用Student_message(String name, String age, String num, String address)则只按此方法执行。

8.字符串的调用

StringBuildfer:

如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费内存空间,而这种操作还不可避免。

而StringBuilder可以解决这个问题

public class StringBuilder{
    public static void main(String[] args)
    {
        StringBuilder sb = new StringBuilder();
        //建立空的StringBuilder
        StringBuilder sb2 = new StringBuilder("Hello");
        //根据字符串来建立StringBuilder
        sb.append("HelloWorld");
        sb.append("1").append(0).append("end");
        //利用append不断增加字符串内容
    }
}
9.ArrayList集合

集合类的特点:提供一种存储空间可变的存储模型,存储的数据容呈可以发生改变

import java.util.ArrayList;
public class ArrayListDemo01{
    public class void main(String[],args)
    {
        ArrayList<String> array = new ArrayList<String>();
        array.add("Hello");
        array.add("World");
        System.out.println(array);
        /*
        	输出:
        	【Hello,World】
        */
        array.add(index:1,element:"javase");
        /*
        	输出:
        	将集合1位置改为"javase",原1位置内容后移。
        */
        array.remove(o:"Hello");
        array.remove(index:1);
        //删除Hello   删除索引为1的元素
        array.set(1,"javase");
        //将索引1的位置改为“javase”
        array.get(0);
        //返回索引为0的元素值
        int num = array.size();
        //num得到集合的大小
    }
}
10.用以上知识写学生系统

(1)新建学生信息类

public class Student_message {
    private String name;   //姓名
    private String age;    //年龄
    private String num;    //学号
    private String address;

    public Student_message() {
    }

    public Student_message(String name, String age, String num, String address) {
        this.name = name;
        this.age = age;
        this.num = num;
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public String getAge() {
        return age;
    }

    public String getNum() {
        return num;
    }

    public String getAddress() {
        return address;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

(2)新建学生信息操作菜单,并定义相关功能

[外链图片转存失败,源站可能有防盗链机制,建议将Q图片22110013305654](D:\图片\文档需要\QQ图片0211001135058.png)D:\图片\文档需要\QQ图片20211001135058.png)]import java.util.Arrays;
import java.util.Scanner;
import java.util.ArrayList;

    //学生信息操作菜单
public class Student {
    public static void main(String[] args) {
        ArrayList<Student_message> array = new ArrayList<Student_message>();
        while(true) {
            System.out.println("-------------学生管理系统-------------");
            System.out.println("1.添加学生");
            System.out.println("2.删除学生");
            System.out.println("3.修改学生");
            System.out.println("4.查看所有学生");
            System.out.println("5.退出");
            System.out.println("请输入您的选择");
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();
            switch (line) {
                case "1":
                    addStudent(array);
                    break;
                case "2":
                    deleteStudent(array);
                    break;
                case "3":
                    updataStudent(array);
                    break;
                case "4":
                    findStudent(array);
                    break;
                case "5":
                 System.exit(0);
                default:
                    System.out.println("查询错误");
                    break;
            }
        }
    }

    //存储学生信息
    public static void addStudent(ArrayList<Student_message> array)
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生的学号");
        String num = sc.nextLine();
        boolean flag = isused(array,num);
        if(flag)
        {
            System.out.println("输入学号已存在");
            return;
        }
        System.out.println("请输入学生的姓名");
        String name = sc.nextLine();
        System.out.println("请输入学生的地址");
        String address = sc.nextLine();
        System.out.println("请输入学生的年龄");
        String age = sc.nextLine();

        Student_message stu = new Student_message();
        stu.setAddress(address);
        stu.setAge(age);
        stu.setNum(num);
        stu.setName(name);

        array.add(stu);
        System.out.println("存储学生信息成功");


    }

    //学生信息查看
    public static void findStudent(ArrayList<Student_message> array)
    {
        if(array.size() == 0)
        {
            System.out.println("未录入学生信息,请录入信息后再查询");
        }else
        {
            System.out.println("    学号      姓名\t地址\t年龄 \t");
            for (int i = 0; i < array.size(); i++) {
                Student_message stu = array.get(i);
                System.out.println(stu.getNum() + "\t" + stu.getName() + "\t" + stu.getAddress() + " \t" + stu.getAge());
            }
        }
    }

    public static void deleteStudent(ArrayList<Student_message> array)
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你需要删除的学生学号");
        String stu = sc.nextLine();
        for(int i = 0;i<array.size();i++)
        {
            Student_message sd = array.get(i);
            if(sd.getNum().equals(stu))
            {
                array.remove(i);
                System.out.println("删除成功");
                break;
            }else
            {
                System.out.println("未找到学生信息,请重新查询");
                return;
            }
        }
    }

    public static void updataStudent(ArrayList<Student_message> array)
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要修改的学生学号");
        String stu = sc.nextLine();
        for(int i = 0;i<array.size();i++)
        {
            Student_message sd = array.get(i);
            if(sd.getNum().equals(stu))
            {
                System.out.println("请输入要更新的学生学号");
                String num = sc.nextLine();
                boolean flag = isused(array,num);
                if(flag)
                {
                    System.out.println("输入学号已存在");
                    return;
                }
                System.out.println("请输入要更新的学生姓名");
                String name = sc.nextLine();
                System.out.println("请输入要更新的学生地址");
                String address = sc.nextLine();
                System.out.println("请输入要更新的学生年龄");
                String age = sc.nextLine();

                Student_message st = new Student_message();
                st.setNum(num);
                st.setName(name);
                st.setAddress(address);
                st.setAge(age);

                array.set(i,st);
                System.out.println("修改学生信息成功!");
                break;
            }else
            {
                System.out.println("请输入正确的学生信息");
                break;
            }
        }
    }

    public static boolean isused(ArrayList<Student_message> array,String num)
    {
        boolean flag = false;
        for(int i = 0;i<array.size();i++)
        {
            Student_message stu = array.get(i);
            if(stu.getNum().equals(num))
            {
                flag = true;
                break;
            }
        }
        return flag;
    }
}

效果演示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值