01 2019 档案
摘要:问题及答案来源自《Java程序员面试笔试宝典》第四章 Java基础知识 4.7输入输出流 1、Java IO流的实现机制是什么? 流可以分为两大类:字节流和字符流。 字节流以字节为(8bt)单位,字符流以字符为(16bit)单位。 字节流包括两个抽象类:InputStream(输入流)和Output
阅读全文
摘要:内容: 1、Date类相关 2、System类 3、Math类 4、包装类 5、正则表达式 1、Date类相关 什么是Date类:Date类表示特定的瞬间,精确到毫秒 (1)Date类的构造函数 继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以
阅读全文
摘要:内容: 1、搜索二叉树 2、典型搜索二叉树原理(AVL树、红黑树、SB树) 3、Java中红黑树的使用 1、搜索二叉树 搜索二叉树的定义:对于一棵二叉树中的任意子树,其左子树上的所有数值小于头结点的数值, 其右子树上所有的数值大于头结点的数值,并且树中不存在数值相同的结点。也称二叉查找树 如下图所示
阅读全文
摘要:内容: 1、什么是morris遍历 2、morris遍历规则与过程 3、先序及中序 4、后序 5、morris遍历时间复杂度分析 1、什么是morris遍历 关于二叉树先序、中序、后序遍历的递归和非递归版本,在这里有详细代码:https://www.cnblogs.com/wyb666/p/1017
阅读全文
摘要:内容: 1、什么是代理模式 2、静态代理模式 3、动态代理模式 1、什么是代理模式 代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就像生活中常见的中介。 举个例子来说明:比如通过二手车商买二手车,如下图所示: 为什么要使用代理模式: (1)中
阅读全文
摘要:内容: 1、原始问题 2、拓展题 1、原始问题 题目描述: 给你一个数组,找出数组中每个数左边离它近的比它大的数和右边离它近的比它大的数 要求算法时间复杂度为O(N) 解题思路: 使用一个栈,要求每次元素进栈后要维持栈中从栈底到栈顶元素值是从大到小排列的约定。将数组中的元素依次进栈, 如果某次元素进
阅读全文
摘要:问题及答案来源自《Java程序员面试笔试宝典》第四章 Java基础知识 4.6异常处理 1、finally的代码什么时候被执行? 问题描述: try{}里有一个return语句,那么紧跟在这个try后的finally{}中的代码是否会执行?如果会的话,什么 时候被执行?是在return之前还是之后?
阅读全文
摘要:问题及答案来源自《Java程序员面试笔试宝典》第四章 Java基础知识 4.5字符串与数组 1、字符串创建与存储的机制是什么? Java中字符串声明与初始化主要有两种情况: (1)String s1 = new String("abc")与String s2 = new String("abc")语
阅读全文
摘要:问题及答案来源自《Java程序员面试笔试宝典》第四章 Java基础知识 4.4基本类型与运算 1、Java提供了哪些基本数据类型? Java一共提高了八种原始的数据类型:byte、short、int、long、float、double、char、boolean 基本数据类型不是对象,而是基本数据类型
阅读全文
摘要:内容: 1、多态概述 2、多态代码体现 3、多态调用注意事项 4、多态的好处与弊端 5、向上向下类型转换 6、综合案例 1、多态概述 面向对象三大特性:封装(安全性)、继承(拓展性)、多态(灵活性) 多态是继封装、继承之后,面向对象的第三大特性,广义的多态是指对象的多态,一个对象的多种状态 现实事物
阅读全文
摘要:内容: 1、接口的概念与定义 2、类实现接口 3、接口的特点 4、接口和抽象类的区别 1、接口的概念与定义 (1)类和接口 类:具有相同属性和功能的事物集合 接口:接口是功能的集合,也就是方法的集合,也就是说接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法必须都是抽象的,可以理解接口
阅读全文
摘要:内容: 1、抽象类的产生 2、抽象类和抽象方法的定义与使用 3、抽象类和抽象方法的注意事项 4、实例分析 1、抽象类的产生 当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体 但是有的时候,某个父类只是知道子类应该包含怎么样的方法,但
阅读全文
摘要:内容: 1、this和super作用 2、继承关系图 1、this和super作用 this和super的作用: this:区分本类中的成员变量和局部变量同名的情况,代指本类 super:区分子类中的成员变量和父类中的成员变量,代指父类 this和super调用普通成员与构造方法: this调用构造
阅读全文
摘要:问题及答案来源自《Java程序员面试笔试宝典》第四章 Java基础知识 4.3关键字 1、变量命名有哪些规则 Java标识符:变量名、函数名、数组名统称为标识符 Java语言规定标识符只能由字母(a~z、A~Z)、数字(0~9)、下划线(_)和$组成 并且标识的第一个字符必须是字母、下划线或$,另外
阅读全文
摘要:问题及答案来源自《Java程序员面试笔试宝典》第四章 Java基础知识 4.2面向对象技术 1、面向对象与面向过程有什么区别? 看下面一个实例即可: 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候依次调用; 面向对象是把构成问题事务分解成各个对象,建立对象的目的
阅读全文
摘要:问题及答案来源自《Java程序员面试笔试宝典》第四章 Java基础知识 4.1基本概念 1、Java语言有何优势? 纯面向对象的语言 具有平台无关性,可移植性好 提供了很多内置的类库 提供了对web应用开发的支持 具有很好的安全性和健壮性 除去了C++中难以理解和容易混淆的特性(头文件、指针、多重继
阅读全文
摘要:内容: 1、面向对象 2、继承的概念与使用 3、继承的特点和注意事项 4、Java为什么只支持单继承 5、向上抽取原则 6、方法重写 1、面向对象 (1)什么是面向对象 面向对象是一种编程思想、面向对象是相对于面向过程的 (2)面向过程与面向对象的区别 面向过程:遇到一个问题,亲力亲为地一步一步解决
阅读全文
摘要:内容: 1、Java中的数据类型 2、引用类型的使用 3、IO流及读写文件 4、对象的内存图 5、this的作用及本质 6、匿名对象 1、Java中的数据类型 Java中的数据类型有如下两种: 基本数据类型: 4类8种 byte(1) boolean(1) short(2) char(2) int(
阅读全文
摘要:内容: 1、窗口内最大值更新结构 2、窗口移动 3、求达标的子数组个数 1、窗口内最大值更新结构 窗口:数组中的一系列数 L与R之间的数就是窗口内的数 L和R的初始位置为数组的左边,可表示为-1 L和R都只能右移,不可后退;且L不可超过R 窗口内最大值更新结构实质上就是一个双端队列(双向链表实现),
阅读全文
摘要:内容: 1、原始问题 =》 O(N*logN) 2、BFPRT算法 =》 O(N) 1、原始问题 问题描述:给你一个整型数组,返回其中第K小的数 普通解法: 这道题可以利用荷兰国旗改进的 partition 和随机快排的思想:随机选出一个数,将数组以该数作比较划分为 <,=,> 三个部分, 则 =
阅读全文
摘要:内容: 1、原始问题 =》O(N^2) 2、Manacher算法 =》O(N) 1、原始问题 Manacher算法是由题目“求字符串中长回文子串的长度”而来。比如 abcdcb 的最长回文子串为 bcdcb ,其长度为5 暴力解法: 可以遍历字符串中的每个字符,当遍历到某个字符时就比较一下其左边相邻
阅读全文
摘要:内容: 1、问题引入 2、暴力求解方法 3、优化方法 4、KMP算法 1、问题引入 原始问题: 对于一个字符串 str (长度为N)和另一个字符串 match (长度为M),如果 match 是 str 的子串, 请返回其在 str 第一次出现时的首字母下标,若 match 不是 str 的子串则返
阅读全文
摘要:内容: 1、技术面试的形式 2、技术面试的大致环节 3、技术面试应具备的素质 4、技术面试的经验建议 参考: 《剑指offer》第二版 - 第一章 《Java程序员面试笔试宝典》- 第一章、第二章 1、技术面试的形式 技术面试大致上可以分为以下形式: 电话面试 共享桌面面试 现场面试 (1)电话面试
阅读全文
摘要:内容: 1、Java基础(JavaSE) 2、数据结构与算法与设计模式 3、计算机理论知识 4、数据库 5、Java web(JavaEE) 6、消息队列 7、Linux及服务器相关 8、分布式相关 9、拓展技能 参考:https://blog.csdn.net/ferrari_cal/articl
阅读全文
摘要:内容: 1、递归与多态规划的关系 2、暴力递归 3、动态规划 1、递归与多态规划的关系 暴力递归: 把问题转化为规模缩小了的同类问题的子问题 有明确的不需要继续进行递归的条件(base case) 有当得到了子问题的结果之后的决策过程 不记录每一个子问题的解 动态规划: 从暴力递归中来 将每一个子问
阅读全文

浙公网安备 33010602011771号