JAVA 基础

Posted on 2019-08-01 18:07  som_nico  阅读(169)  评论(0编辑  收藏  举报

 

 

方法

方法定义格式:修饰符 返回类型 方法名称(参数)

static 有:可以用类.方法

    无:不可以用类.方法,需要创建对象,用对象.方法

修饰符:public private 等

方法的重载: 定义:同一个类中,某方法允许存在一个以上的同名方法,只要参数的类型、数量和顺序不同就可以。

       作用:屏蔽了同一功能的方法,参数不同所导致的方法名不同的差异。

       注意:方法重载和方法返回值类型无关,只是一般要求返回值类型相同,也可以不同。

 

java JVM

jvm划分:(逻辑分区)人为地根据不同内存空间的存储特点以及存储的数据来划分。

 

程序计数器:当前线程所执行的字节码的行号指示器。

本地方发栈:为虚拟机使用的native方法服务。

java虚拟机栈:描述java方法执行的内存模型,每个方法被执行的时候都会创建一个栈帧,用于存储局部变量表、操作栈、动态链接、方法出口等。同样的,当方法调用完毕,栈帧就被销毁了。

java堆:被所有线程共享的一块内存区域,在虚拟机启动是创建。所有的对象实例以及数组都要在堆上分配。(使用new关键字,就表示在堆中开辟一块新的存储空间)

方法区:线程共享的内存区域。存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码数据等。

 

数组

初始化:一旦初始化完成,数组的长度就确定了,不能改变,除非重新初始化。也就是说数组是定长的。

    静态初始化:

          特点:自行设置初始化值,而数组的长度由系统决定。

          写法:数组元素类型[] 数组名 = new 数组元素类型[]{元素1,元素2,...};

          举例:int[] nums = new int[]{1,2,3,4};

          简单写法:int[] nums = {1,2,3,4}; //但要注意,简单写法中必须声明和初始化同时进行,不能先声明再初始化。

    动态初始化:

          特点:自行设置数组的长度,而每一个元素的初始值都由系统决定。(不同类型的)

 

数组异常:NullPointerException空指针异常(空引用):当数组还未初始化就直接操作数组。

     ArrayIndexOutOfBoundsException数组索引越界异常

 

数组拷贝:可以支持任意类型的数组元素拷贝操作。因为经常使用到,所以SUN就直接把数组元素拷贝操作存放到JDK的System类中。

     public static native void  arraycopy(Object src,int srePos,Object dest,int destPos,int length);

     Object是任何类的基类,可以表示任意数据类型。

     该方法没有方法体,使用了native修饰符(本地方法,也就是说在底层使用c/c++语言实现,java直调用编写好的功能)

更多功能可以查阅API文档

 

main方法

main方法是用static修饰的,所以可以直接用所在类调main来使用。

public static void main (String[] args)

在底层JVM通过类.main(实参)

main方法的String数组参数,其实是暴露给程序运行者的,用此来与程序传递信息。

 

封装

自行封装,建立一个封装类,在类中写static方法

 

数组工具类Arrays