04 2020 档案

摘要:引用计数法:给每个对象一个引用计数器,每当有一个地方引用它时,计数器就会加1;当引用失效时,计数器的值就会减1;任何时刻计数器的值为0的对象就是不可能再被使用的。优点:1、可即时回收垃圾:在该方法中,每个对象始终知道自己是否有被引用,当被引用的数值为0时,对象马上可以把自己当作空闲空间链接到空闲链表 阅读全文
posted @ 2020-04-26 13:34 王余阳 阅读(133) 评论(0) 推荐(0)
摘要:Java 虚拟机栈:线程私有,生命周期和线程一致。描述的是 Java 方法执行的内存模型:每个方法在执行时都会床创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行结束,就对应着一个栈帧从虚拟机栈中入栈到出栈的。 本地方法栈:Java 阅读全文
posted @ 2020-04-26 13:19 王余阳 阅读(252) 评论(0) 推荐(0)
摘要:定义:当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类。 类加载器的类别: BootstrapClassLoader(启动类加载器) c++编写,加载java核心库 java.*,构造ExtClass 阅读全文
posted @ 2020-04-26 13:03 王余阳 阅读(204) 评论(0) 推荐(0)
摘要:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 题解: 这是一道经典的递推题目,你可以想如果青蛙当前在第n级台阶上,那它上一步是在哪里呢? 显然,由于它可以跳1级台阶或者2级台阶,所以它上一步必定在第n-1,或者第n-2级台阶, 阅读全文
posted @ 2020-04-25 18:53 王余阳 阅读(248) 评论(0) 推荐(0)
摘要:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取 阅读全文
posted @ 2020-04-25 18:37 王余阳 阅读(318) 评论(0) 推荐(0)
摘要:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 示例 1: 输入:[3,4,5,1,2]输出:1示例 2: 输入:[2,2,2 阅读全文
posted @ 2020-04-25 18:11 王余阳 阅读(252) 评论(0) 推荐(0)
摘要:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty) import java.util.Stack; class MyQueue { Stack<Integer> inStack; Stack<Integer> outStack; /** 阅读全文
posted @ 2020-04-25 17:29 王余阳 阅读(222) 评论(0) 推荐(0)
摘要:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 算法解析:参照 https://www.bilibili.co 阅读全文
posted @ 2020-04-25 16:44 王余阳 阅读(179) 评论(0) 推荐(0)
摘要:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 1 /** 2 * public class ListNode { 3 * int val; 4 * ListNode next = null; 5 * 6 * ListNode(int val) { 7 * this.val = va 阅读全文
posted @ 2020-04-25 16:39 王余阳 阅读(95) 评论(0) 推荐(0)
摘要:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解法一:直接使用替换语句 1 /*替换空格*/ 2 public String replaceSpace(StringBuffer str) 阅读全文
posted @ 2020-04-25 16:13 王余阳 阅读(200) 评论(0) 推荐(0)
摘要:TCP的三次握手和四次挥手 三次握手 TCP连接是通过三次握手来连接的。 第一次握手 当客户端向服务器发起连接请求时,客户端会发送同步序列标号SYN到服务器,在这里我们设SYN为x,等待服务器确认,这时客户端的状态为SYN_SENT。 第二次握手 当服务器收到客户端发送的SYN后,服务器要做的是确认 阅读全文
posted @ 2020-04-24 10:07 王余阳 阅读(215) 评论(0) 推荐(0)
摘要:冒泡排序:最坏:O(N^2) 最好: O(N) public class BubbleSort { public static void bubbleSort(int[] arr) { if(arr == null || arr.length == 0) return ; for(int i=0; 阅读全文
posted @ 2020-04-23 21:34 王余阳 阅读(98) 评论(0) 推荐(0)
摘要:1.面试题:HashMap中hash函数是怎么实现的?还有哪些hash函数的实现方式? 对于key的hashCode做hash操作,无符号右移16位然后做异或运算。还有平方取中法,伪随机数法和取余数法。这三种效率都比较低。而无符号右移16位异或运算效率是最高的。至于底层是如何计算的我们下面看源码时给 阅读全文
posted @ 2020-04-20 20:46 王余阳 阅读(90) 评论(0) 推荐(0)
摘要:HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。 JDK1.8 之前 HashMap 由 数组+链表 组成的 阅读全文
posted @ 2020-04-20 20:37 王余阳 阅读(324) 评论(0) 推荐(0)
摘要:一.InnoDB存储引擎 InnoDB给MySQL的表提供了事务处理、回滚、崩溃修复能力和多版本并发控制的事务安全。在MySQL从3.23.34a开始包含InnnoDB。它是MySQL上第一个提供外键约束的表引擎。而且InnoDB对事务处理的能力,也是其他存储引擎不能比拟的。靠后版本的MySQL的默 阅读全文
posted @ 2020-04-18 08:29 王余阳 阅读(394) 评论(0) 推荐(0)
摘要:Cookie :在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自 阅读全文
posted @ 2020-04-18 08:25 王余阳 阅读(109) 评论(0) 推荐(0)
摘要:组成:有 Container 和 Connector 以及相关组件构成。 结构图: Server:指的就是整个 Tomcat 服 务器,包含多组服务,负责管理和 启动各个 Service,同时监听 8005 端口发过来的 shutdown 命令,用 于关闭整个容器 ; Service:Tomcat 阅读全文
posted @ 2020-04-18 08:18 王余阳 阅读(113) 评论(0) 推荐(0)
摘要:JDK :Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等) 和Java基础的类库(即Java API 包括rt.jar)。 阅读全文
posted @ 2020-04-17 23:08 王余阳 阅读(126) 评论(0) 推荐(0)
摘要:1、设备: Ubuntu镜像:ubuntu-18.04.2-desktop-amd64.iso hadoop: hadoop-2.6.5.tar.gz jdk: jdk-linux-x64.tar.gz Eclipse: eclipse-java-2020-03-R-linux-gtk-x86_64 阅读全文
posted @ 2020-04-15 12:52 王余阳 阅读(618) 评论(0) 推荐(0)
摘要:Redis :Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对( key-value)数据库 Redis 与其他 key - value 缓存产品有以下三个特点: 1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可 阅读全文
posted @ 2020-04-15 11:32 王余阳 阅读(251) 评论(0) 推荐(0)
摘要:MyISAM:MyISAM是默认存储引擎(Mysql5.1前),每个MyISAM在磁盘上存储成三个文件,每一个文件的名字均以表的名字开始,扩展名指出文件类型。 .frm文件存储表定义 ·MYD (MYData)文件存储表的数据 .MYI (MYIndex)文件存储表的索引 InnoDB:MySQL的 阅读全文
posted @ 2020-04-11 14:57 王余阳 阅读(185) 评论(0) 推荐(0)
摘要:1. 可变性 String 不可变 StringBuffer 和 StringBuilder 可变 2. 线程安全 String 不可变,因此是线程安全的 StringBuilder 不是线程安全的 StringBuffer 是线程安全的,内部使用 synchronized 进行同步 阅读全文
posted @ 2020-04-11 14:40 王余阳 阅读(83) 评论(0) 推荐(0)
摘要:都是面向对象的语言,都支持封装、继承和多态 Java 不提供指针来直接访问内存,程序内存更加安全 Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。 Java 有自动内存管理机制,不需要程序员手动释放无用内存 阅读全文
posted @ 2020-04-11 14:35 王余阳 阅读(146) 评论(0) 推荐(0)