Java入门week1

        该博客仅作为作者本人学习Java的笔记,保证正确性,但不保证每个知识点都具备,接下来从命令行窗口的快捷键说起:

命令行窗口常用命令:
1.盘符(去哪个盘进行操作):D:
2.查看当前路径下文件信息:dir
3.进入目录:cd 目录名(按tab键补全)
返回上目录:cd..
返回根目录:cd\
4.清屏:cls


        每个Java初学者的最初一段路都或许是在网上下载jdk,去win+r输cmd找命令行窗口看jdk是否安装完全,之后进行环境变量的安装,再之后就下载一个开发集成环境——IDEA,就可以开始自己的学习之路了。

接下来就可以说一说IDEA的便捷之处吧,先把我目前所学的快捷键列一下:

IDEA常用快捷键:
main/psvm、sout......    快速键入相关代码
ctrl+d复制当前行到下一行
ctrl+x剪切当前行
ctrl+alt+l格式化代码
alt+shift+↑/↓上下移动当前代码
注释快捷键:
ctrl+/    对当前行进行注释
ctrl+shift+/     对选中的多行代码进行多行注释


java当中的输入和c++当中的输入功能不太一样,
java需要在main方法前写该语句:
导包:import java.util.Scanner;
使用时:
Scanner sc=new Scanner(System.in);(这段语句看着挺复杂,其实就是运用了对象的知识,下一篇博客会讲jav中对象的知识。)
int ***=sc.nextInt();(输入功能);


随机数如何去求?
用随机数Random类
①导包:import java.util.Random;
②定义对象:Random r=new Random();
③获取随机数:int number =r.nextInt(n);
生成n个随机数,为0到n-1的数;


        因为作者之前学过c++,因此只讲一下java当中与c++不一样的地方,,数组之前的部分如基础语法,运算符,各种结构都和c++一样,便不再赘述。



数组部分:
for(int i=0;i<age.length;i++)
可以做到不用看数组长度直接进行数组遍历,非常方便。
注意:若这里写了"i<=age.length",此时运行编译器不会warning,
但运行会输出不了遍历结果,原因是循环中的i最终循环到了age.length的值,
导致数组长度比i小,无法输出数组遍历结果。
循环数组快捷录入:***.fori


数组错误案例:

 

可以看到上述错误示范都有编译器报错, 第一个是数组长度和输出指示长度不匹配,第二个是数组为空,输出啥都报错了。


接下来写一个例题,运用键盘录入,随机数,以及数组的知识,进行一个操作,要求:

输入:五个整数;

输出:打乱排序后的五个整数;


import java.util.Scanner;
import java.util.Random;
public class suijishu {
    public static void main(String[] args) {
        int[]codes=new int[5];
        for (int i = 0; i < codes.length; i++) {
            System.out.println("请您输入第"+(i+1)+"个数");
            Scanner sc=new Scanner(System.in);
            int code=sc.nextInt();
            codes[i]=code;
        }
        Random a=new Random();
        for (int i = 0; i < codes.length; i++) {
            int index =a.nextInt(5);
            int temp;
            temp=codes[index];
            codes[index]=codes[i];
            codes[i]=temp;

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



    }
}

再用数组实现一个基础算法——冒泡排序:

public class bubble {
    public static void main(String[] args) {
        int[]arr={5,9,3,1,2};
        for (int i = 0; i < arr.length-1; i++) {
            for (int j = 0; j < arr.length-i-1; j++) {
                if(arr[j]<arr[j+1]){
                    int temp=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=temp;
                }

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

很简单,看过一遍代码后发现,这个嵌套循环实现了把数组中的五个值从大到小排序了,这便是基础的bubble排序。


java内存分配:
栈:方法运行时进入的内存,变量也是在这里;
堆:new出来的对象会在这块内存中开辟空间并产生地址;
方法区:字节码文件加载时进入的内存,即编译后的class文件;

如下图所示:

堆内存中数组的地址给栈中的量,赋的值再从arr中的地址找到堆内存中的数组进行访问,
最后输出时还是和上述相同。


两个变量指向同一个数组:
 


 

方法部分:
和c++中的函数知识基本一模一样,但c++有指针传递,java没有;
方法定义的完整格式:
方法修饰符-返回值类型-方法名称-形参列表

eg:
public static int add(int a,int b)
{
int c=a+b;
return c;
}
如何实现该方法?——
在主函数中调用:
int r=add(100,200);
输出:sout(r)

另一种无返回值类型方法写法:
public static void 方法名()
在主函数中调用:
方法名();

方法的内存调用流程:
方法没有被调用时,在方法区的字节码文件中存放;
方法被调用的时候,需要进入到栈中运行;

方法的参数传递机制:
值传递:不改变实参的值;
引用传递:形参直接搞到实参的地址,要改一起改。
方法名(int[] arr)

方法重载:方法名相同,形参列表不同;
编译器不会分不出,会根据形参列表来判断是哪个方法被调用;
return可以在方法中直接跳出并立即结束所在方法的执行,可以避免bug出现。

到目前为止,java的类之前的知识差不多说完了,下个博客将会讲述java的类以及之后的知识点

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值