
面试常问
JAVA_Drious
这个作者很懒,什么都没留下…
展开
-
Overload和Override的区别
Override 重写: 重写Override是覆盖了一个方法,实现不同的功能,主要在子类继承父类的时候,重写实现父类中的方法。 1.重写方法参数必须完全与被重写的方法相同 2.重写方法的修饰符一定要大于被重写方法的修饰符(public>protect>default>private) 3.重写方法的返回值必须与被重写方法的返回值类型一致 4.被重写的方法的类型不能为private,否则在转载 2016-11-09 20:28:20 · 565 阅读 · 0 评论 -
Java 动态代理
代理模式:创建代理对象,使用代理对象控制目标对象的访问。Subject : 抽象主题角色,定义方法,可以是抽象类也可以是接口。 RealSubject : 具体主题角色,它是业务逻辑的具体实现者。 ProxySybject : 代理主题角色,它代理具体主题角色,并将其中的方法暴露给客户,由其调用。这样子导致了代理类所实现的接口和静态方法都被固定,每次增加具体主题角色,就要增加代理主题角色类,造成原创 2017-07-13 10:37:40 · 401 阅读 · 0 评论 -
TCP/IP 协议:三次握手与四次挥手
1.序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 2.确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。 3.标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下: (A)URG:紧急指针(urgent pointer)有效。原创 2017-08-23 23:00:37 · 405 阅读 · 0 评论 -
GC判断对象是否存活
判断对象是否已经死亡回收: 1.引用计数算法: 给对象添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。//-XX:+PrintGC public class ReferenceCountingGC { public Object instance= null; private static fi原创 2017-07-20 10:11:26 · 878 阅读 · 0 评论 -
GC垃圾回收算法
1.标记-清除算法 最基础的收集算法。标记出需要回收的对象,在标记完成后统一回收所有被标记的对象。缺点:一是效率问题,标记和清除两个过程的效率都不高,二是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程 序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾 收集动作。 2.复制算法 为了解决标记清除算法效率低的问题,复制算法出现了。它原创 2017-07-20 13:43:18 · 567 阅读 · 0 评论 -
HashMap原理分析
集合框架简化图:java 中有四种常见的Map实现,HashMap,TreeMap,HashTable,和LinkedHashMap: (1) HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全,即任一时刻可以有原创 2017-07-15 14:38:10 · 381 阅读 · 0 评论 -
HotSpot垃圾收集器
图3-5展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们 可以搭配使用。虚拟机所处的区域,则表示它是属于新生代收集器还是老年代收集器。1. Serial收集器 这个收集器是一个单线程的收集器,用于虚拟机新生代的收集。”单线程”的意义不仅仅说明它只会使用一个cpu或者一条收集线程去完成垃圾收集工作。而且它在垃圾收集的过程中,必须暂停其他的所有工作线程,直到收集结束。优点:简单原创 2017-07-21 11:20:40 · 388 阅读 · 0 评论 -
Java 类加载机制
java虚拟机类加载器 加载步骤: 1. 虚拟机有一个用于类加载的机制,用于从数据源中读取类文件,这个源可以是磁盘文件或者web上的文件,这里假设要加载的类是A。 2. 如果A这个类拥有类型为其他类的实例或者是某个类的子类,也就是说它和其他类产生关联或者依赖,那么相关的类也会被加载。 3. 虚拟机执行A中的main方法 4. 如果main方法中有对其他类的依原创 2017-07-14 11:13:51 · 424 阅读 · 0 评论 -
java实现 阿拉伯数字转换为汉字数字
private String toChinese(String string) { String[] s1 = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" }; String[] s2 = { "十",原创 2017-09-29 19:32:46 · 10497 阅读 · 5 评论