java之数据结构之链表及包装类、包

时间:2022-11-28 08:03:14

  链表是java中的一种常见的基础数据结构,是一种线性表,但是不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针。与线性对应的一种算法是递归算法:递归算法是一种直接或间接的调用自身算法的过程,往往使算法的描述简洁而且易于理解。

使用递归算法就是自己调用自己,而递归算法必须要有出口,递归过多也会造成内存栈溢出

 public  static int JieGou(int num){

         if(num==) return ;
return num*JieGou(num-); //调用自己 }

java中有8大基本数据类型,但是在面向对象中,本着一个设计的原则“一切皆对象”。在java的基本数据类型完全不符合这种思想。因为八种基本数据类型并不是引用数据类型,所以为了解决这个问题,引入了八种数据类型的包装类。

八种数据类型包装类分为两种:

Number:Integer、Short、Long、Double、Float、Byte

Object: Character、Boolean都是Object的直接子类

基本数据类型:-----------包装类

    int--------------Integer

    char------------Character

    float------------Float

    double---------Double

    boolean--------Boolean

    byte-----------Byte

    short----------Short

    long-----------Long

既然引入了包装类,那么包装类有什么作用呢?

在包装类中,可以将一个字符串变为指定的基本数据类型,输入数据时使用:

(1)、在Integer类中将string变为int类型数据

public static int parseInt(String msg);

(2)、在Float类中将String变为float类型数据

  public static float parseFloat(String msg);

注意:转型操作时,字符串必须由数字组成,否则会出现错误。其他型的数据转换同理

    String  msg="";
int m=parseInt(msg);
System.out.println(m); 结果是:
//把一个字节的整数缓存在整数常量池中

 Integer  a=;

 Integer  b=;

 System.out.println(a==b);

输出结果为真

包:包是对类文件进行分类管理的,给类提供了多层命名空间,包写在程序文件的第一行,类名的全称是包名.类名,包也算是一种包装形式。  

包与访问修饰符:包对于对个java源文件的管理,就像文件目录一样

      定义一个包:package  com.vices.mihu;

记住:该语句只能出现在代码的第一句。

访问修饰符:  

  public  : 同一个类  、同包  、不同包子类  、不同包非子类

  protected :  同一个类  、同包  、不同包子类

  默认    :同一个类  、同包

  private    :同一个类

总结:包与包之间的类进行访问,被访问的包中的类必须是public的,包中的类的方法也必须是public的。

那么如何来创建包?

在java环境下,在命令行中

javac   -d.PackageDemo.java

容易出现两个错误:

1、找不到符号

原因:类名写错:调用另个包中的类创建对象,必须明确其包名:package.Demo  d=new Package.Demo();

2、软件包不存在

原因:是当前目录下没找到,因为包存放在其他目录下,应该配置一个classpath

如何使用包?

导入包就可以使用该包下的文件

import package.Demo;   //导入了package包中的Demo

import package.DemoA;

import package.abc.*;  //导入了该包中的所有类

导包的原则:用到哪个类,就导入哪个类  :导包的目的就是为了简化类名的书写。