03 2019 档案
摘要:网上关于这题,大多数的解答都有问题。在此提醒一下自己。
阅读全文
摘要:CREATE TABLE EMP (EMPNO integer NOT NULL, ENAME VARCHAR(10), JOB VARCHAR(9), MGR integer, HIREDATE DATE, SAL integer, COMM integer, DEPT...
阅读全文
摘要:-- create database exercise; -- 学生表 Student create table Student( SId varchar(10), Sname varchar(10), Sage datetime, Ssex varchar(10) ); insert into Student values('01' , '赵雷' , '1990-01-01' , ...
阅读全文
摘要:alter常见用法 1:删除列 ALTER TABLE 【表名字】 DROP 【列名称】 2:增加列 ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL COMMENT '注释说明' 3:修改列的类型信息 ALTER TABLE 【表名字】 CHANGE 【列名称】【新
阅读全文
摘要:1、redis事务相关的命令 MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。 用法: MULTI命令用于开启一个事务,它总是返回 OK。 MULTI 执行之后, 客户端可以继续向服务器发送任意多条命令, 这些命令不会立即被执行, 而是被放到一个队列中,
阅读全文
摘要:1、git如何创建一个新项目 首先用cd切换到项目目录,通过git init把它变成Git仓库,再通过git add .把项目添加到仓库 再通过git commit -m "注释内容"把项目提交到仓库"; 在Github新建一个远程仓库,通过git remote add origin https:/
阅读全文
摘要:1、什么是主从复制? redis持久化保证了redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可以避免这种单点故障。主机数据更新后根据配置和策略,自动同步到备机。 2、
阅读全文
摘要:Redis有两种持久化方案 RDB AOF 如果rdb文件和aof文件同时存在,优先加载aop文件 1、RDB RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。 即在指定目录下生成一个dump.rdb文件。 Redis 重启会通过加
阅读全文
摘要:1 简介 Quartz是一个完全由java编写的开源作业调度框架。 通过触发器设置作业定时运行规则、控制作业的运行时间。 Quartz定时器的作用很多,比如定时发送信息、定时器生成报表。 2 核心组件 2.1 Quartz框架的核心对象 Scheduler – 核心调度器 Job – 任务 JobD
阅读全文
摘要:JDBC什么是JPAJPA与hibernate的关系JPA的供应商JDBC jdbc是一组规范,是接口,由不同的数据库厂商各自提供相应的实现类,打包成jar包,也就是所谓的数据库驱动。而我们的java应用程序,只需要调用jdbc的接口就可以了。 而JPA是和jdbc类似的东西 1、什么是JPA Ja
阅读全文
摘要:1、@RestController @RestController被称为一个构造型(stereotype)注解。它为阅读代码的开发人员提供建议。对于Spring,该类扮演了一个特殊角色。它继承自@Controller注解。4.0之前的版本,spring MVC的组件都使用@Controller来标识
阅读全文
摘要:题目:打印是one还是two 第一张情况:两个普通同步方法,打印结果是 OneTwo 第二种情况:在getOne方法中新增一个Thread.sleep()调用,打印结果 OneTwo 第三种情况:在Number类中新增一个普通方法,打印结果 ThreeOneTwo 第四种情况:两个普通同步方法,两个
阅读全文
摘要:1、最长公共子序列和最长公共子串的区别? 最长公共子序列:不要求子序列连续。 最长公共子串:要求子串一定连续。 2、最长公共子序列 最长公共子序列定义:两个或多个已知数列的子序列集合中最长的就是最长公共子序列。 比如数列A = “abcdef”和B = “adefcb”,那么两个数列的公共子序列集合
阅读全文
摘要:1 public class Main { 2 3 public static void main(String[] args) { 4 String s = "abcabcababaccc"; 5 String m = "ab"; 6 7 System.out.println(getIndex(s, m)...
阅读全文
摘要:1xx:请求处理中,请求已被处理,正在处理 2xx:请求成功,请求被成功处理 200 OK 3xx:重定向,要完成请求必须进一步处理 301:永久性转移 302:短暂性转移 304:已缓存 4xx:客户端错误,请求不合法 400:Bad Request,请求有语法问题 403:拒绝请求 404:客户
阅读全文
摘要:实现机制:Session的实现常常依赖于Cookie机制,通过Cookie机制回传SessionID; 大小限制:Cookie有大小限制并且浏览器对每个站点也有cookie的个数限制,Session没有大小限制,理论上只与服务器的内存大小有关; 安全性:Cookie存在安全隐患,通过拦截或本地文件找
阅读全文
摘要:21 FTP(文件传输协议) 22 SSH 23 Talnet(远程)服务 25 SMTP(简单邮件传输协议) 53 DNS域名服务器 80 HTTP超文本传输协议 110 POP3邮件协议3 443 HTTPS 1080 Sockets 1521 Oracle数据库默认端口 3306 Mysql服
阅读全文
摘要:ARP是地址解析协议,简单的语言解释一下原理? APR地址解析协议的作用:IP地址->物理地址 1、首先每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。 2、当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则
阅读全文
摘要:A类地址:以0开头,第一个字节范围:0~127(1.0.0.0 - 126.255.255.255); B类地址:以10开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255); C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 -
阅读全文
摘要:从上到下 OSI分层(7层):应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 五层协议:应用层、运输层、网络层、数据链路层、物理层 TCP/IP分层:应用层、运输层、网际层、网络接口层
阅读全文
摘要:对象优先在新生代的 eden 区分配内存,但是也并不绝对,下面几种情况对象会晋升到老年代 大对象直接进入老年代。比如很长的字符串,或者很大的数组等。 长期存活的对象进入老年代。在堆中分配内存的对象,其内存布局的对象头中(Header)包含了 GC 分代年龄标记信息。如果对象在 eden 区出生,那么
阅读全文
摘要:Minor GC 也被称为新生代 GC,指发生在新生代(PSYoungGen)的垃圾收集动作,新生代包括三块内存区域 eden 区,from (From Survivor)区 与 to(To Survivor) 区。对象优先在 eden 创建并区分配内存,当 eden 区内存无法为一个新对象分配内存
阅读全文
摘要:强引用就是在程序代码中普遍存在的,类似Object obj=new Object()这类的引用,只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象。 软引用是用来描述一些还有用但并非必须的元素。对于它在系统将要发生内存溢出异常之前,将会把这些对象列进回收范围之中进行第二回收,如果这次回收还没有足
阅读全文
摘要:类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。其中,类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。
阅读全文
摘要:1、标记-清除法 2、复制算法 4、标记-整理法 5、分代收集算法
阅读全文
摘要:JVM内存分为哪几部分,这些部分分别都存储哪些数据? 线程隔离的数据区:程序计数器、Java虚拟机栈、本地方法栈。 由所有线程共享的数据区:Java堆、方法区。 程序计数器 可以看作当前线程所执行的字节码的行号指示器。 Java虚拟机栈 Java虚拟栈描述的是Java方法执行的内存模型:每个方法在执
阅读全文
摘要:Java 中的 volatile 关键字有两个主要的作用,一个是保证内存的可见性,还有一个作用就是禁止指令重排序的发生。 上面我们已经简答的提到了 volatile 关键字的作用,一个是保证内存的可见性,还有防止指令重排序。 下面再来解释一下内存可见性 内存可见性:当一条线程修改了某个值,这个新值对
阅读全文
摘要:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法(如果覆盖了finalize()方法),并且在下一次垃圾回收器发生时,才会真正回收对象占用的内存。 至于为什么在下一次垃圾回收动作发生时才会回收内存,原因是如果一个对象覆盖了 finalize() 方法,那么在真正被宣告
阅读全文
摘要:不会,在下一个垃圾回调周期中,这个对象将是被可回收的。 也就是说并不会立即被垃圾收集器立刻回收,而是在下一次垃圾回收时才会释放其占用的内存。
阅读全文
摘要:类加载器的双亲委托模型并不是一个强制的约束模型,而是 Java 设计者推荐给开发者的一种加载器方式。上面类加载器的父子关系一般不会以继承的方式实现,而是采用组合的关系来复用父类加载器的代码。 工作过程:如果一个类加载器收到了类加载的请求,它首先不会自己去加载这个类,而是把这个请求委派给父类加载器去完
阅读全文
摘要:一、直接插入排序 往有序的数组中快速插入一个新的元素。 基本思想:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过为止。 二、希尔排序 希尔排序又称递减增量排序算法。希尔排序是先把待排序的记录序列分割成若干子序列,分别进行直接插入排序,待
阅读全文
摘要:一、定义 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 二、实现 观察者模式使用三个类 Subject、Observer 和 Client。Subject 对象带有绑定观察者到 Clie
阅读全文
摘要:一、定义 一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 二、实现
阅读全文
摘要:一、定义 动态的给对象添加一些额外的属性或行为。相比于使用继承,装饰者模式更加灵活。 Component:装饰者和被装饰者共同的父类,是一个接口或者抽象类,用来定义基本行为 ConcreteComponent:定义具体对象,即被装饰者 Decorator:抽象装饰者,继承自Component,从外类
阅读全文
摘要:一、定义 适配器模式,即定义一个包装类,用于包装不兼容接口的对象。 包装类=适配器 被包装的类=被适配的类 二、解决的问题 原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 三、模式原理 3.1 类适配器模式 类的适配器模式是把适配的类的API转换成为目标类的API。 在上图中可以看出: 冲
阅读全文
摘要:一、定义 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。 注意: 二、单例模式的实现 2.1 懒汉式,线程不安全 2.2 懒汉式,线程安全 虽然做到了线程安全,但是它并不高效。因为在任何时候只能有一个线程调用 getInstance() 方法。但是同步操作只需要在第
阅读全文
摘要:一、定义 简单工厂模式,又被称为静态工厂方法模式。在简单工厂模式中,可以根据参数的不同,返回不同类的实例。 二、模式组成 1、抽象产品 2、具体产品 3、工厂 三、适用的场景 其实由定义也大概能推测出其使用场景,首先由于只有一个工厂类,所以工厂类中创建的对象不能太多,否则工厂类的业务逻辑就太复杂了,
阅读全文
摘要:一、java.util.concurrent介绍 java.util.concurrent包含了许多线程安全,测试良好,高性能的并发模块。创建java.util.concurrent的目的就是要实现Collection框架对数据结构所执行的并发操作。 二、核心组件 Executor Executor
阅读全文
摘要:肯定 7 次 25匹马先设5组:假设A,B,C,D,E五组 跑5轮后选每组前3名进下一轮 每组第一名比赛一轮(第6圈)得出第一名(假设A1)第二名(假设B1)第三名(假设C1) 从(第6圈)第一名组中选出第二、三名(假设A2、A3)第二名组中选出第二名(假设B2)和(第6圈)的第二名(B1)第三名(
阅读全文
摘要:题目:There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity
阅读全文
摘要:题目: 数字以0123456789101112...格式序列化到一个字符序列中。在这个序列中,第5位(从0开始)是5,第13位是1。 解答: 比如找1001位数字 1、1位数有10个,0-9,数字为10x1=10个,显然1001>10,跳过这10个数值,在后找第991为位数字(1001-10) 2、
阅读全文
摘要:题目: 我们把只包含因子2、3和5的数称为丑数。求按从小到大的顺序的第1500个丑数。习惯上我们把1当做第一个丑数。 解答: 对于已经有的丑数,我们顺序存放在数组中,对于乘以2而言,必定存在一个某个丑数T2,排在它前面的每个丑数乘以2得到的结果都会小于已有的最大丑数,排在它之后的每二个丑数乘以2得到
阅读全文
摘要:题目: 请从字符串中找出一个最长的不含重复字符串的子字符串,计算该最长子字符串的长度。假设字符串中只包含'a'-'z'的字符。 解答:
阅读全文
摘要:PriorityQueue是基于优先级堆的极大优先级队列 在PriorityQueue提供的构造方法中,可以使用自定义的排序方法: 也可以使用元素自带的Comparable排序 因此,PriorityQueue要求在默认排序的时候,需要元素对象拥有Comparable功能。 但是,若对象在没有Com
阅读全文
摘要:题目: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 我们来分析一下上述算法的时间复杂度。假设总共有k个list,每个list的最大长度是n,那么运
阅读全文
摘要:队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。 LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。 以下实例演示了队列(Queue)的用法:
阅读全文
摘要:题目: 要求使用非递归的方法,中序遍历二叉树。 解答: 前序遍历 可以使用一个栈来模拟这种操作: 首先将root压栈; 每次从堆栈中弹出栈顶元素,表示当前访问的元素,对其进行打印; 依次判断其右子树,左子树是否非空,并进行压栈操作,至于为什么先压栈右子树,因为先压栈的后弹出,左子树需要先访问,因此后
阅读全文
摘要:题目: 字符串转换为整数 : atoi 可能的输入: 1 带符号数 2 无符号数 3 零 4 空指针 5 超出表示范围 – 暂时仅仅是直接退出且设置最小 – 可以考虑此时抛个异常 6 非法输入,比如并不是一个0-9或者+ -组成的字符串 – 对于非法输入一律返回的是Integer.MIN_VALUE
阅读全文
摘要:题目: 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 解答:
阅读全文
摘要:题目: 不使用循环判断一个数字是不是2的n次方 解答:
阅读全文
摘要:题目: 一个长度为n-1的递增排序数组中所有的数字都是唯一的,并且每个数字的都在0-n-1之内。请在范围0-n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 解答:
阅读全文
摘要:题目: 统计一个数字在排序数组中出现的次数。例如:输入排序数组是{1,2,3,3,3,3,4,5},由于这个3在这个数组中出现了4次,因此输出为4。 解答:
阅读全文
摘要:题目: 输入一个颗二叉树搜索树,请找出其中的第K大节点。 解答:
阅读全文
摘要:题目: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 解答:
阅读全文
摘要:题目: 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、"5e2"、"-123"、"3.1416"、"-1E-16"都表示数值,但是"12e"、"1a3.14"、"1.2.3"、"+-5"、"12e+5.4"都不是。 解答:
阅读全文
摘要:题目: 在一个长度为n+1的数组里面的所有数字都在1-n的范围内,所以数组至少存在了一个数字是重复的。请找出数。中任意一个重复的数字,但不能修改输入的数组。 解答:
阅读全文
摘要:题目: 在一个长度为n的数组里的所有数字都在0-n-1的范围内,数字中某些数字是重复的,但是不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 解答:
阅读全文
摘要:题目: 输入一个整型数组,实现一个函数来调整数组中数字中顺序。使得所有奇数位于数组的前半部分,所有的偶数位于数组的后半部分。 解答:
阅读全文
摘要:题目: 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 解答:
阅读全文
摘要:题目: 输入一个链表的头节点,从尾到头打印出每个节点的值。 解答:
阅读全文
摘要:题目: 在O(1)时间内删除链表节点。给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。 解答:
阅读全文
摘要:题目: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 解答:
阅读全文
摘要:题目: 给你一段长度为n的绳子,请把绳子剪成m段,每段绳子的长度记为:k[0]、k[1]、...。请问它们的乘积最大值是多少? 解答:
阅读全文
摘要:题目: 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5
阅读全文
摘要:1 public class Solution { 2 3 public static List> solveNQueens(int n) { 4 List> res = new ArrayList(); 5 int[] queenList = new int[n]; 6 placeQueen(queenList, 0, n,...
阅读全文
摘要:给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board =[ ['A','B','C','E'], ['S','F','C','S']
阅读全文
摘要:题目: 请输入一个函数,输入一个整数,请输出该数的二进制表示中的1的个数。 解答:
阅读全文
摘要:题目: 给定一个二叉树和其中一个结点,如何找出中序遍历的下一个结点?树中的节点除了两个分别指向左、右子节点的指针外,还有一个指向父节点的指针。 解答:
阅读全文
摘要:题目: 输入一个整型数组,判断该数组是不是二叉搜索树的后序遍历结果。 如果是,返回true。否则返回false 解答:
阅读全文
摘要:题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。 解答:
阅读全文
摘要:题目: 请实现一个函数,用来判断一颗二叉树是不是对称的。如果一颗二叉树和它的镜像是一样的,那么它就是对称的。 解答:
阅读全文
摘要:1 public class Solution { 2 3 public static void MirrorBinaryTree(TreeNode root) { 4 if(root == null) { 5 return; 6 } 7 8 if(root.left == null && roo...
阅读全文
摘要:死锁? 死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。例如,在某一个计算机系统中只有一台打印机和一台输入 设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时打印机正被进程P2 所占用,而P2在未释放打印机之前,又提出请求使用正被P1占用
阅读全文