- 博客(68)
- 收藏
- 关注
原创 第一次被虐-java面试
1. 自我介绍;2. 介绍Spring;3. 排序算法有哪些,以及它的时间复杂度;4.线程池的作用;5.网络的协议;http是哪一层的协议;UDP和TCP协议的区别;6.写SQL代码;7.介绍servlet;8.创建线程的方式;9.面向对象的三大特性;10.反射机制;11.进程与线程之间的区别,进程之间怎么进行通信;12.手撕快速排序算法第一次面试凉凉了,真是很感谢面试官坚持面了30-40分钟。...
2020-09-16 16:49:56
361
1
原创 JVM的内部结构简要介绍
主要记录一些对jvm内存模型以及垃圾回收机制的理解。下图为jvm的一个简易结构图。JRE(Java Runtime Environment) ,它为Java提供了运行环境,其中重要的一环就是通过JVM将字节码解释成可执行的机器码。JRE由JVM,Java运行时类库,动态链接库等组成。JVM是Java Virtual Machine(Java虚拟机)的缩写,在运行时环境,JVM会将...
2020-04-26 14:11:10
424
原创 剑指offer试题编程练习44(java) 删除链表中重复的结点
题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:首先明确该链表是一个排序链表,也就是说若出现重复的结点,则这些结点在链表中必定相邻;还需要明确的一点是只要出现重复的结点,则相同的结点都删除;该题我觉得最主要的问题...
2020-04-22 14:53:13
260
原创 剑指offer试题编程练习43(java) 从二叉搜索树中查找出第k小的结点
题目:给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。思路:已知该树为一棵二叉搜索树,二叉搜索树的左节点值<根节点值<右结点值,题目中要找到第三小的结点,则可采用中序遍历的方式对该二叉树进行遍历,当查找到第k个结点时返回。注意k值不能小于等于0.import java.util.List;...
2020-04-20 20:29:32
188
转载 maven的下载与安装(Windows)
前言: 安装Maven 3,需要安装jdk1.7及以上版本具体步骤如下: 1、进入官网:http://maven.apache.org/download.cgi,如下图红框部分 其中: apache-maven-3.5.4-bin.zip是压缩包,解压到安装路径即可 apache-maven-3.5.4-sr...
2020-04-19 13:38:46
464
转载 window下启动Redis闪退问题解决
我下载的是免安装版的window版redis,解压后如下:刚解压开直接双击redis-server.exe启动redis或者在命令提示符中找到路径启动,但当第二次使用的时候,发现双击redis-server闪退,在命令提示符启动也报错(该错误其实由于电脑内存不足影响的),我百度了好多解决方式,但是都没用,最后终于找到一个适合自己电脑上redis的解决方式,仅供参考,如下:第一步:在解压的r...
2020-04-18 15:47:45
327
原创 剑指offer试题编程练习42(java) 按层打印二叉树(广度优先遍历二叉树)
题目:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。思路:利用队列数据结构来存储结点,每次存入一层的结点。import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;/*public class TreeNode { int val = 0; Tree...
2020-04-18 15:42:04
191
原创 redis的数据结构及相关命令
redis的数据结构* redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构* value的数据结构:1) 字符串类型 string2) 哈希类型 hash : map格式3) 列表类型 list : linkedlist格式。支持重复元素4) 集合类型 set : 不允许重复元素5) 有序集合类型 s...
2020-04-18 14:58:16
114
原创 剑指offer试题编程练习41(java) 按之字形打印二叉树
题目:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。思路: 该问题为一个广度优先遍历问题,按题意所说,在遍历时要分奇数层和偶数层,利用队列数据结构来保存二叉树结点,通过对奇偶层的判断来决定元素是从列表的后面插入还是前面插入。import java.util.ArrayList;import...
2020-04-18 14:28:27
141
原创 Linux上常用网络操作
1、主机名配置hostname 查看主机名hostname xxx 修改主机名重启后无效如果想要永久生效,可以修改/etc/sysconfig/network文件,使用vim编辑命令进行修改。2、IP地址配置ifconfig 查看(修改)ip地址(重启后无效)ifconfig eth0 192.168.12.22 修改ip地址如果想要永久生效修改/etc...
2020-04-16 21:35:58
150
原创 Linux的权限命令
1、文件权限每个文件前面所对应的这些字符串表示文件的权限,由十个字符组成,分为四个部分。第一位表示文件类型 - 表示文件 d 表示文件夹 l 表示链接第二部分表示当前用户具有该文件的权限 r : read 读 w : write 写 x : excute 执行以下部分相同第三部分表示当前组内其他...
2020-04-15 20:45:45
280
原创 Vi和Vim编辑器
1、Vim编辑器在Linux下一般使用vi编辑器来编辑文件。vi既可以查看文件也可以编辑文件。三种模式:命令行、插入、底行模式。切换到命令行模式:按Esc键;切换到插入模式:按i 、o、a键;i 在当前位置前插入I 在当前行首插入a 在当前位置后插入A 在当前行尾插入o 在当前行之后插入一行O 在当前行之前插入...
2020-04-15 18:54:19
356
原创 Linux常用命令
1、列出文件列表:ls llls(list)是一个非常有用的命令,用来显示当前目录下的内容。配合参数的使用,能以不同的方式显示目录内容。格式:ls[参数] [路径或文件名]在linux中以.开头的文件都是隐藏文件ls 列出当前目录下所包含的文件及文件夹 ls -a 显示所有文件或目录(包含隐藏文件) ls -l (缩写成ll) 与ls命令显示的...
2020-04-14 20:37:13
187
原创 剑指offer试题编程练习40(java) 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。import java.util.ArrayList;public class Solution { public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { ...
2020-04-13 20:15:21
256
原创 剑指offer试题编程练习39(java) 输出所有和为S的连续正数序列
输出所有和为S的连续正数序列(至少包含两个数)。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序。思路:利用穷举法的思想。根据条件“至少包含两个数”,可以确定得到的序列中最大值可达到S/2+1,首先将第一个元素加入结果序列,S=S-i;依次往后找j=i+1,判断S-j的大小,若大于0则加入结果序列;若等于零将结果序列加入返回序列,退出内层循环,i++,重复上述操作;若小于零,退出内层...
2020-04-13 15:14:33
109
原创 剑指offer试题编程练习38(java) 判断一棵二叉树是否是对称的
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:根据https://blog.youkuaiyun.com/Ferlan/article/details/82975543/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode...
2020-04-12 13:21:24
266
原创 剑指offer试题编程练习37(java) 根据二叉树中序遍历查找某个结点的下个结点
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:首先要搞清楚二叉树的中序遍历顺序为左子树->根节点->右子树。接下来要考虑该结点的位置,若该结点有右子树则查找右子树的最后一个左节点,若无左节点则返回该右结点;若该结点无右子树则查找其父节点,若该结点为父节点的左子树则返回该父结点,否则继续往上...
2020-04-11 18:39:12
188
原创 剑指offer试题编程练习36(java) 找出数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路:利用Map数据结构来进行处理,熟悉Map数据结构怎么存取数据。//num1,num2分别为长度为1的数组。传出参数//将num1[0],num2[0]设置为返回结果import java.util.Map;import java.util.HashMap;public class S...
2020-04-11 15:41:30
155
原创 剑指offer试题编程练习35(java) 判断是否为平衡二叉树
输入一棵二叉树,判断该二叉树是否是平衡二叉树。根据上篇求树的深度,判断左右子树的深度之差,若大于1则不是平衡二叉树。平衡二叉树相关内容参考:https://baijiahao.baidu.com/s?id=1651427207567199156&wfr=spider&for=pcpublic class Solution { boolean isBalance...
2020-04-10 21:47:44
113
原创 剑指offer试题编程练习34(java) 求二叉树的深度
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。采用递归的方法进行解决/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int v...
2020-04-10 11:44:17
133
原创 剑指offer试题编程练习33(java) 寻找两个链表的公共节点
输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)思路:两个链表的公共节点,因为每个节点只有一个next,所以如果两个链表有公共节点的话,那么从该公共节点开始后面的所有节点相同,则可通过得到两个链表的长度,找到长链表与短链表长度相同的一个起点,逐一与短链表的节点进行比较。/*public class Lis...
2020-04-09 20:05:25
147
原创 剑指offer试题编程练习32(java) 查找字符串中第一个只出现一次的字符
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).思路:把字符串转换为字符数组,利用Map数据结构,将字符作为Key,字符出现的次数作为Value,依次将字符存入Map结构中。import java.util.HashMap;import java.util.Map;pub...
2020-04-08 21:37:18
135
原创 java修饰符
修饰符主要分为访问修饰符和非访问修饰符。一、访问控制修饰符default:默认访问修饰符,在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。 接口里的变量都隐式声明为 public static final,而接口里的方法默认情况下访问权限为 public。private:在同一类内可见。使用对象:变量、方法。 注意:不能修...
2020-04-07 14:49:54
130
原创 java中的抽象类
在面向对象的概念中,所有的对象都是通过类来描绘的,但反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。用abstract关键字来修饰,可以修饰类和成员方法(不包含方法体)。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。 1. 抽象类不能被实例化(初学者很容易犯的错),如果...
2020-04-07 11:34:47
184
原创 剑指offer试题编程练习31(java) 统计一组数中1的个数
31、求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。思路:利用当前数除10来得到该数中1的个数...public clas...
2020-04-06 16:33:02
147
原创 剑指offer试题编程练习30(java) 数组子序列最大和
30、HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和...
2020-04-06 16:13:54
87
原创 进程与线程的基本概念
一、进程的提出从计算机接受单一特定指令到批处理操作系统,其中指令运行方式为串行,内存中始终只有一个程序在运行,其效率是不高的,人们为提高计算机的操作效率,便思考“内存中是否能存在多个程序”,于是便有科学家提出了进程的概念。使用进程+CPU时间片轮转方式的操作系统,在宏观上看起来同一时间段执行多个任务,但事实上,对于单核CPU来说,任意具体时刻都只有一个任务在占用CPU资源。二、线...
2020-04-06 12:22:07
188
原创 剑指offer试题编程练习29(java) 找出数组中最小的K个数
29、输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路:只对数组中的前K个数进行排序,可采用冒泡排序的方法,若K值大于数组的长度,返回空。import java.util.ArrayList;public class Solution { public ArrayList<Integer>...
2020-04-05 15:52:10
144
原创 剑指offer试题编程练习28(java) 数组元素计数
28、数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路:首先想到的计数方法是使用Map数据结构来进行计数,Key保存数组中的元素,Value保存该元素在数组中出现的次数。//该题为给数组中的元素计数的问题,首先让我想到的是M...
2020-04-05 15:14:28
149
原创 剑指offer试题编程练习27(java) 字符串的排列组合
27、输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。未完 待解决!!!...
2020-04-04 15:47:13
110
原创 剑指offer试题编程练习26(java) 二叉搜索树转换成一个排序的双向链表
26、输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路:一颗二叉搜索树的中序遍历为一个递增的序列......明天再来.......
2020-04-03 19:54:00
142
原创 剑指offer试题编程练习25(java) 复杂链表的复制
25、输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)解法来自:https://blog.youkuaiyun.com/qq_41901915/article/details/90286802/*public class Rand...
2020-04-03 19:30:26
98
原创 剑指offer试题编程练习24(java) 二叉树路径查找
24、输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)分析:这题相当于对二叉树进行深度优先遍历,其中还存在剪枝操作。....待会来解决...
2020-04-01 15:52:58
311
原创 剑指offer试题编程练习23(java) 二叉查找树(二叉搜索树)
23、输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。首先我们要明确二叉搜索树它是怎么样的一个结构二叉搜索树中根节点的值大于其左子树中任意一个节点的值,小于其右节点中任意一节点的值,这一规则适用于二叉搜索树中的每一个节点。(来自网友https://blog.youkuaiyun.com/rodman177/art...
2020-04-01 14:51:58
145
原创 剑指offer试题编程练习22(java) 二叉树广度优先遍历
22、从上往下打印出二叉树的每个节点,同层节点从左至右打印。分析:该题属于二叉树的遍历,广度优先遍历思路:借助一个数列按照广度优先遍历顺序依次存放二叉树中的节点,每次弹出第一个节点,存放该节点的值到数组中。import java.util.ArrayList;import java.util.Queue;/**public class TreeNode { int va...
2020-03-31 20:34:32
284
原创 剑指offer试题编程练习21(java) 判断某序列是否可能为某栈的弹出序列
21、输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路1: 利用栈的特点来进行解题,栈是一种后进先出的数据结构。首先找出弹出序列中的第一个...
2020-03-31 12:33:01
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人