链表是java中的一种常见的基础数据结构,是一种线性表,但是不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针。与线性对应的一种算法是递归算法:递归算法是一种直接或间接的调用自身算法的过程,往往使算法的描述简洁而且易于理解。
使用递归算法就是自己调用自己,而递归算法必须要有出口,递归过多也会造成内存栈溢出
1 public static int JieGou(int num){ 2 3 if(num==1) return 1; 4 return num*JieGou(num-1); //调用自己 5 6 }
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="200"; int m=parseInt(msg); System.out.println(m); 结果是:200
//把一个字节的整数缓存在整数常量池中 Integer a=127; Integer b=127; 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.*; //导入了该包中的所有类
导包的原则:用到哪个类,就导入哪个类 :导包的目的就是为了简化类名的书写。