java基础知识点–vm
1.基本类型,以及int 与 Integer的区别。
基本类型 | 对应的包装类 | 字节 |
---|---|---|
boolean | Boolean | - |
byte | Byte | 1 |
char | Character | 2 |
short | Short | 2 |
int | Integer | 4 |
float | Float | 4 |
long | Long | 8 |
double | Double | 8 |
基本数据类型:没有属性和方法,所以无法对象化交互,通过包装类就可以拥有属性与方法,然后可以进行对象化交互。
2.线程的创建
- 创建一个Thread类,或者一个Thread子类的对象,重写run方法
Thread是位于java.lang包的。 - 创建一个实现Runnable接口的类的对象
- 声明实现Runnable接口的类
- 在实现类内实现run方法
- 创建实现类的对象
- 通过实现类的对象创建线程类的对象
- 调用start()方法启动线程。
- 使用Callable和Future创建线程
callable可以拿到返回值,call()方法 返回的是对象。 - 使用线程池例如用Executor框架
3.接口与抽象类的区别
抽象类是用来捕捉子类的通用特性的 。abstract定义抽象类(包含抽象方法的类是抽象类,抽象类中可以没有抽象方法),抽象类不能直接实例化,只能被继承,可以通过向上转型完成对象实例。
接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。
- 默认方法实现:
- 实现
- 构造函数
- main方法
- 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
- 访问修饰符
参考:http://www.importnew.com/12399.html
4.普通类和抽象类的区别
- 普通类不能包含抽象方法,抽象类可以包含抽象方法
- 抽象类不能直接实例化,普通类可以直接实例化
5.OSI的七层模型
- 物理层
利用传输介质为数据链路层提供物理连接,实现比特流的透明传输 - 数据链路层
负责建立和管理节点间的链路 - 网络层
通过路由选择算法,为报文或者分组通过通信子网选择最适当的路径 - 传输层
向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输 - 会话层
向两个实体的表示层提供建立和使用连接的方法 - 表示层
处理用户信息的表示问题,如编码、数据格式转换和加密解密等 - 应用层
直接向用户提供服务,完成用户希望在网络上完成的各种工作
6.设计模式
- 单例模式:
- 目的:使得类的一个对象成为该类系统中的唯一实例
- 定义:一个类有且只有一个实例,并且自行实例化向整个系统提供
- 要点:某个类只能有一个实例 必须自行创建实例 必须自行向整个系统提供这个实例
- 实现:只提供私有的构造方法 含有一个该类的静态私有对象 提供一个静态的公有方法用于创建、获取静态私有对象
- 代码实现方案:
– 饿汉式:对象创建过程中实例化
– 懒汉式:静态公有方法中实例化
代码:
1)某公司研发星球维护系统,请使用饿汉式单例模式的实现思想,设计编写地球类。
public class Earth {
//定义私有构造方法,并在构造方法中打印输出“地球诞生”
private Earth(){
System.out.println("地球诞生");
}
//定义私有静态类对象并完成实例化
private static Earth er = new Earth();
//定义公有静态方法返回类内的私有静态对象
public static Earth getEr(){
return er;
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("第一个地球创建中。。。。");
Earth er1 = Earth.getEr();
System.out.println("第二个地球创建中。。。。");
Earth er2 = Earth.getEr();
System.out.println("第三个地球创建中。。。。");
Earth er3 = Earth.getEr();
System.out.println("问:三个地球是同一个么?");
System.out.println(er1);
System.out.println(er2);
System.out.println(er3);
}
}
显示效果:
2)请使用懒汉式单例模式的实现思想,设计编写皇帝类。
public class Emperor {
//定义私有构造方法
private Emperor(){
}
//定义私有静态类对象
private static Emperor em = null;
//定义公有静态方法返回类内的私有静态对象
public static Emperor getEm(){
if(em == null){
em = new Emperor();
}
return em;
}
}
public class Test2 {
public static void main(String[] args) {
System.out.println("创建1号皇帝对象");
Emperor em1 = Emperor.getEm();
System.out.println("创建2号皇帝对象");
Emperor em2 = Emperor.getEm();
System.out.println("创建3号皇帝对象");
Emperor em3 = Emperor.getEm();
System.out.println("三个皇帝对象依次是:");
System.out.println(em1);
System.out.println(em2);
System.out.println(em3);
}
}