- 博客(31)
- 收藏
- 关注
原创 使用跳板机dump数据
mysqldump -h ${IP} -P ${port}-u ${username}-p${password} ${database} ${tablename...} --skip-lock-tables > test.sql
2022-06-16 11:12:13
204
1
原创 堆排序及其复杂度分析
以升序排序为例,大顶堆实现:package leetcode.sort.compare.select;import java.util.Arrays;public class HeapSort { public void downAdjust(int[] array, int parentIndex, int length) { int largestIndex = parentIndex; int lChildIndex = 2 * parent..
2022-01-17 11:38:10
2047
原创 读写锁--插队策略
读写锁:读写线程不能同时持有同一把锁,可以多个读线程同时持有同一把锁,多个写线程不能同时持有同一把锁。一、公平锁:不允许插队二、非公平锁:写锁 可以随时插队; 读锁仅在等待队列头结点不是想获取写锁的线程时才可以插队。...
2021-11-20 22:24:53
353
原创 Java位运算和几个常用的规律
一.异或 运算:无进位相加应用:1.不申请额外空间,交换两个数int a, b;a = a^b;b = a^b;a = a^b;2.提取最右边的1int n;int rightOne = n & (~n + 1);例如: n :11010100; ~n :00101011; ~n+1 :00101100;n&(~n+1):00000100;3.无进位相加,抹去最右边的1int n;int rightOne = n &am
2021-09-08 10:52:53
158
原创 Java基础--类加载机制
一、Java类加载机制在讲类加载机制之前先放上一张JVM物理结构图,有助于理解类加载机制:JVM物理结构图1、类加载机制概念 当程序主动使用某个类时,如果该类还没被加载到内存中,则JVM会通过加载、连接、初始化 3 个步骤来对类进行初始化。如果没有意外,JVM将会连续完成这 3 个步骤,所以有时也把这 3 个步骤统称为类加载或类初始化。2、类加载过程工作机制...
2019-09-06 16:14:49
200
原创 Java字符串大小比较--compareTo()方法
Java编程中,我们会偶尔遇到字符串大小比较的问题compareTo()方法很简单就实现这种功能。该方法用于判断一个字符串是大于、等于还是小于另一个字符串。判断字符串大小的依据是根据它们在字典中的顺序决定的。 语法:str1.compareTo(str2);其返回的是一个int类型值。若Str1等于参数字符串Str2字符串,则返回0;若该Str1按字典顺序小于参数字...
2019-08-19 15:06:30
38448
5
原创 Java ==和equals()的区别
本篇文章讲的是从JVM角度比较==和equals的区别一、**Java数据类型分类**1:基本数据类型又称为原始数据类型,他们之间的比较应该使用(==),比较的是他们的值。2:引用数据类型当引用数据类型用(==)进行比较,比较的是他们在内存中的存放地址。当复合数据类型之间进行equals比较时,这个方法的初始行为是比较对象在堆内存中的地址。equals()方法...
2019-08-14 09:28:41
196
原创 Java基础--变量
Java变量有两种类型:primitive主数据类型和引用类型primitive主数据类型:用来保存基本类型的值,包括整数,布尔和浮点数等类型 位数 值域 boolean JVM决定 true/false char 16bits 0~65535 byte 8bits -128~127 short 16bits -3...
2019-08-08 10:23:41
206
原创 Java中基本数据类型转换(自动、强制、提升)
Java种的8大基本数据类型,以及它们所占内存大小和范围1、自动类型转换自动类型转换是指:数字表示范围小的数据类型可以自动转换成范围大的数据类型。如:long l = 100;int i = 200;long ll = i;具体自动转换如如下图所示:实线表示自动转换时不会造成数据丢失,虚线则可能会出现数据丢失问题。自动转换也要小心数据溢出问题,看下...
2018-10-23 16:41:32
359
原创 几条常用的git命令
Git几个概念:工作区-->暂存器-->版本库-->远程仓库1、git init --创建版本库2、vi 文件名 --同个vi 指令添加文件3、git add 文件名 ...
2018-10-18 18:48:46
178
原创 LeetCode435. 无重叠区间
LeetCode上提交 执行时间优于100%的提交记录给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间...
2018-08-30 19:44:18
597
原创 JVM (四)--垃圾收集(二)
一、垃圾收集算法1、标记-清除将存活的对象进行标记,然后清除掉未被标记的对象。不足:标记和清除过程中效率多不高; 会产生大量不连续的内存碎片,导致无法给大对象分配内存。2、标记-整理让所有存活的对象都向一端移动,然后直接清除掉端边界以外的内存。3、复制将内存划分为大小相等的两块,每次只使用一块,当这一块内存用完就将还存活的对象复制到另外一块上面,然后再...
2018-08-30 11:05:14
223
原创 JVM (四)--垃圾回收(一)
程序计数器、虚拟机栈、本地方法栈这三个区域属于线程私有,只存在于线程的生命周期内,线程结束之后也会消失,因此,不需要对这三个区域进行垃圾回收。垃圾回收主要针对方法区和Java堆进行。一、判断一个对象是否存活1、引用计数算法给对象添加一个引用计数器,当对象增加一个引用时计数器加1,引用失效时计数器减1。引用计数器不为0的对象仍然存活。两个对象出项循环引用的时候,此时引用计数器永远不为...
2018-08-29 17:20:02
280
原创 JVM (二)--Java程序编译、类加载及执行
Java程序的编译Java程序的编译是由Java源码编译器来完成,流程图如下:Java程序的执行Java程序的编译是由Java执行引擎来完成,流程图如下: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码编译机制 类加载机制 类执行机制 一、Java源码编译机制Java 源码编译由以下三个过程组成:分析和输入...
2018-08-29 11:38:50
352
原创 JVM (三)--内存模型、变量可见性、指令重排、内存屏障
Java内存模型Java内存模型(JMM):Java定义的一中抽象规范,用来屏蔽不同硬件和操作系统的内存访问差异,让Java程序在不同平台下都能达到一致的内存访问效果。Java内存图示:1、主内存:线程共享内存,线程读写访问较慢;包括方法区和Java堆,对于一个共享变量(比如静态变量,堆内存中的实例),主内存存有其“本尊”。2、工作内存:线程私有的内存,线程访问较快。对...
2018-08-28 22:37:03
1038
原创 LeetCode31.下一个排列(字典序全排列)
实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3→1,3,23,2,1→1,2,31,1,5→1,5,1思路分析:下面贴一张leetcode上官方解答...
2018-08-28 17:33:40
3011
1
原创 JVM (一)--运行整体流程
面试:面试被问到JVM,竟然对JVM这几个字母没反应过来,后面也就答了JVM的内存管理和GC算法,答得模棱两可。写给自己:JVM一直都是Java中很重要基础知识,是面试中必问的知识点。如果连JVM都弄不清楚,还谈什么Java开发。运行流程Java语言宣称:一次编译,到处运行实现如下:1)Java程序经过一次编译后,将Java代码编译为字节码文件(.class文件);2)...
2018-08-27 14:09:41
1140
原创 08头条实习生面试_字典序的第K小数字
LeetCode(440)字典序的第K小数字思路:其实这是一个"十叉树",如下图:1)每个节点的子节点可以有十个,比如节点1的子节点可以是10~19、节点2的字节的可以是20~29、。。。但是由于n大小的限制,构成的并不是一个"满十叉树"。2)分析题目中给的例子可以知道,数字1的子节点有4个(10,11,12,13),而后面的数字2到9都没有子节点,那么这道题实...
2018-08-21 16:39:15
2865
1
原创 06网易笔试题_数对
牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。牛牛希望你能帮他计算一共有多少个可能的数对。输入描述:输入包括两个正整数n,k(1 <= n <= 10^5, 0 <= k <= n - 1)。输出描述:对于每个测试用例, 输出一个正整数表...
2018-08-10 20:46:32
324
原创 05网易笔试题目_牛牛找工作
为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,分别表示工作的数量N(N<=1...
2018-08-10 11:15:41
339
原创 04头条笔试_字母交换
【编码题】字符串S由小写字母构成,长度为n。定义一种操作,每次都可以挑选字符串中任意的两个相邻字母进行交换。询问在至多交换m次之后,字符串中最多有多少个连续的位置上的字母相同?输入描述:第一行为一个字符串S与一个非负整数m。(1 <= |S| <= 1000, 1 <= m <= 1000000)输出描述:一个非负整数,表示操作之后,连续最长的相同字母...
2018-08-09 20:39:15
3978
原创 03头条笔试题目_手串
作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串——每个串珠要么无色,要么涂了若干种颜色。为了使手串的色彩看起来不那么单调,金主要求,手串上的任意一种颜色(不包含无色),在任意连续的m个串珠里至多出现一次(注意这里手串是一个环形)。手串上的颜色一共有c种。现在按顺时针序告诉你n个串珠的手串上,每个串珠用所包含的颜色分别有哪些。请你判断该手串上有多少种颜色不符合要求。即询问有多少种颜色在...
2018-08-09 16:19:37
539
原创 02头条后端笔试题_ 用户喜好
为了不断优化推荐效果,今日头条每天要存储和处理海量数据。假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用户(标号相连的一批用户)中,有多少用户对这类文章喜好值为k。因为一些特殊的原因,不会出现一个查询的用户区间完全覆盖另一个查询的用户区间(不存在L1<=L2<=R2<=R1)。输入描述:...
2018-08-08 20:28:27
1534
原创 01头条笔试题目-最大点
P为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内)如下图:实心点为满足条件的点的集合。请实现代码找到集合 P 中的所有 ”最大“ 点的集合并输出。输入描述:第一行输入点集的个数 N, 接下来 N...
2018-08-08 13:45:09
481
原创 SpringMVC流程架构图
【组件说明】以下组件通常使用框架提供实现:1.DisPatcherServlet:前端控制器(不需要程序员开发)用户请求到达前端控制器,它相当于MVC模式中的C(Controller),DispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,DispatcherServlet的存在降低了组件之间的耦合性。作用:作为接受请求,相应结果,相当于转发器,中...
2018-08-05 16:29:11
455
原创 MySQL数据库优化
1、选取最适用的字段属性将表中字段的宽度设得尽可能小:MySQL可以很好地支持大数据量的存取,但是一般来说,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为char(255),显然给数据库增加了不必要的空间。另外,如果使用varchar类型,虽然varchar按...
2018-07-18 22:21:26
180
原创 char(10)和VARCHAR(10)主要的区别
CHAR的长度是固定的,而VARCHAR的长度是可以变化的。 比如,存储字符串“abc",对于CHAR (10),表示你存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR2 (10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度存储。 CHAR的效率比VARCHAR的效率稍高。 目前VARCHAR是VARCHAR的同义词。工业...
2018-07-18 21:56:44
3583
原创 IDEA搭建MyBatis工作环境(不使用Maven)
一、创建工程1、创建Java项目,勾选Java EE,Next,修改名称位MyBatisDemo,Finish新建后目录结构如图:2、在WEB-INF下创建两个文件夹classes和lib,分别用作 输出文件目录 和 库文件目录3、File-Project Structure, Module-Path中将Out path和Test Out path更改为classes4、File-Project ...
2018-07-16 15:35:26
4424
2
原创 Fedora25安装Mysql&&通过navicat连接
背景:之前在腾讯云服务器的ubuntu系统中安装过,但这次在Fedora25上安装碰到了很多问题,特此记录一下参考文章:https://www.cnblogs.com/S-tec-songjian/p/5674718.html说明:Fedora19以后好像取消了对mysql的支持,看其他人好像说是用的mariadb的。Centos里用yum安装的方式,放到Fedora中不能用一、切换为root用户...
2018-06-11 23:53:05
857
原创 动态规划——背包问题
01背包问题01背包问题的状态转换方程f[i,j] = Max{ f[i-1,j-Wi]+Pi( j >= Wi ), f[i-1,j] }f[i,j]表示在前i件物品中选择若干件放在承重为 j 的背包中,可以取得的最大价值。Pi表示第i件物品的价值。决策:为了背包中物品总价值最大化,(如果第i件物品放得下的话)第 i件物品应该放入背包中吗 ?(当然,如果放不下,那就只能选择不放了)题目...
2018-03-31 10:15:54
237
原创 腾讯云服务器配置
说明:良心之作,专为小白解惑。附:几条常用的linux指令1、进入目录操作进入上一级指令:cd ..进入子目录:cd direct(direct为子目录的名称)2、将文件/home/ubuntu/customer.war复制到/home/ubuntu/tomcat/webapps指令:cp /home/ubuntu/customer.war /home/ubuntu/tomcat/webapp...
2018-03-26 11:29:02
2368
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人