自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 指针和引用的对比

1.概念指针值是一个变量的地址,通过解引用指针可以对这个变量进行操作 引用是一个变量的别名,对引用的操作就是对变量本身的直接操作2.声明和定义指针在声明和定义的时候可以赋初值(某个他所要指向变量的地址),也可以根据需要设置为NULL 引用必须用变量初始化,以表示它是哪个变量的引用3.相同点一个变量可以有多个指针指向它,也可以有多个别名,但是指针和引用的底层实现机制都是一样的 下图代码和汇编代码

2017-08-11 20:53:09 372

原创 C++实现红黑树

红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:性质1. 节点是红色或黑色。性质2. 根节点必须是黑色。性质3. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)性质4. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。这些约束强制了红黑树的关键性质: 从根到叶

2017-04-10 20:55:04 561

原创 智能指针——AutoPtr & ScopedPer & SharedPtr & WeakPtr

在说智能指针之前先说一下什么是RAII,RAII就是资源分配即初始化,这是一种思想,其最广泛的应用就是智能指针。智能指针就是能自动完成资源的清理和释放。为什么需要智能指针呢?因为有时候写的代码忘了进行指针所指向内存的清理工作,或者有时候代码的运行会提前return或者throw使得本来已经写好的清理代码未曾运行,比如下面的代码:void Test(){ int* ptr = new int

2017-03-02 20:36:57 625

原创 C++多态——静态多态与动态多态

多态:顾名思义,多态就是多种形态,也就是对不同对象发送同一个消息,不同对象会做出不同的响应。并且多态分为静态多态和动态多态。静态多态就是在系统编译期间就可以确定程序执行到这里将要执行哪个函数,例如:函数的重载,对象名加点操作符执行成员函数等,都是静态多态,其中,重载是在形成符号表的时候,对函数名做了区分,从而确定了程序执行到这里将要执行哪个函数,对象名加点操作符执行成员函数是通过this指针来调用的

2017-02-16 16:01:54 11772 5

原创 函数栈帧图解

我们知道内存空间大致可以用下图表示: 而函数在调用的时候都是在栈空间上开辟一段空间以供函数使用,所以下面来详细谈一谈函数的栈帧结构。 如图示,栈是由高地址向地地址的方向生长的,而且栈有其栈顶和栈底,在x86系统的CPU中,寄存器ebp保存的是栈底地址,称为帧指针,寄存器esp保存的是栈顶地址,称为栈指针。而且还应该明确一点,栈指针和帧指

2016-11-05 11:55:09 11478 5

原创 fork源码库以后如何同步最新的代码

fork源代码的时候,只能fork源代码库的master分支,如何同步源代码库的所有内容到自己的仓库呢?

2023-05-18 15:20:35 1913

原创 Mybatis主要流程源码分析

源码debug截图,保姆级教程学会mybatis的主要流程源码分析

2023-03-01 16:33:07 298

原创 spring 事务源码剖析

spring事务源码看不懂??不可能的,看完必会!

2022-11-09 17:30:33 346

原创 spring bean生命周期源码剖析

spring bean生命周期记不住?看完这篇源码剖析就会了,根本不用背诵

2022-10-04 22:28:09 2358 1

原创 Linux系统负载高排查指南

机器负载高,无从下手?看完必会

2022-06-21 17:20:05 3992

原创 简单工厂模式

1.概念简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。2.实际应用-----两个数的计算器Operation父类:定义两个数定义计算方法calculate...

2019-11-11 16:09:55 144

原创 LintCode--28.搜索二维矩阵

链接:搜索二维矩阵解题思路:矩阵按行遍历,从右上角到左下角public boolean searchMatrix(int[][] matrix, int target) { // write your code here if (matrix.length < 1) { return false; } ...

2019-08-28 11:03:32 161

原创 java实现单例模式的四种方式

1.饿汉模式public class Singleton1 { private static Singleton1 instance = new Singleton1(); private Singleton1() { } public static Singleton1 getInstance() { return instance; ...

2019-08-27 15:52:18 190

原创 java并发------start( )方法和run( )方法的区别与联系

1.java创建线程的两种基本方式继承 Thread类:public class ThreadTest extends Thread { @Override public void run() { System.out.println("ThreadTest:"+Thread.currentThread().getName()); }}实现Run...

2019-08-21 17:58:48 225

原创 彻底弄懂java中的== 和 equals 的区别

核心两句话:==在比较对象的时候,是比较他们是不是引用的同一个对象,即比较对象的地址而equals比较对象的“值”是否相等,取决于equals方法的实现(一定要看如何实现的才能判断equals的返回结果)经典问题:String类情况1: String s1="abc"; String s2="abc"; System.out.printl...

2019-07-26 17:40:11 238

原创 Lintcode 13. 字符串查找(java实现)

原题:LintCode 13.字符串查找描述:对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。样例 1:输入: source = "source" , target = "target"输出:-1 样例解释: 如果source里没有包含target的内容...

2019-07-23 14:16:42 291

原创 Tomcat中文乱码问题

.中文乱码问题(Windows下,Linux同)1.不生效?看下面

2019-07-16 00:40:41 104

原创 LintCode 3. 统计数字(Java实现,拒绝暴力破解)

描述计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值样例样例 1:输入:k = 1, n = 1输出:1解释:在 [0, 1] 中,我们发现 1 出现了 1 次 (1)。样例 2:输入:k = 1, n = 12输出:5解释:在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 中,我们发现 1 出...

2019-06-14 16:10:39 276 1

原创 SQL之各个join的区别

1.inner join(join)语法:SELECT column_name(s)FROM table1INNER JOIN table2ON table1.column_name=table2.column_name;或者SELECT column_name(s)FROM table1JOIN table2ON table1.column_name=table2.col...

2019-06-02 15:03:54 458

原创 Stream实例

0.接口简述在对于一个 Stream 进行多次转换操作 (Intermediate 操作),每次都对 Stream 的每个元素进行转换,而且是执行多次,这样时间复杂度就是 N(转换次数)个 for 循环里把所有操作都做掉的总和吗?其实不是这样的,转换操作都是 lazy 的,多个转换操作只会在 Terminal 操作的时候融合起来,一次循环完成。我们可以这样简单的理解,Stream 里有个操作函数...

2019-05-29 18:04:49 495

原创 LintCode 100. 删除排序数组中的重复数字(java实现,O(N),O(1))

描述给定一个排序数组,在原数组中“删除”重复出现的数字,使得每个元素只出现一次,并且返回“新”数组的长度。不要使用额外的数组空间,必须在不使用额外空间的条件下原地完成。样例样例 1:输入: []输出: 0样例 2:输入: [1,1,2]输出: 2 解释: 数字只出现一次的数组为: [1,2]分析定义两个索引,一前一后,后面的一直递增和前面的比较。相同就++,不通...

2019-05-20 15:27:57 521

原创 LintCode 96. 链表划分(java实现,O(N))

描述给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。样例样例 1:输入: list = null, x = 0输出: null 样例解释: 空链表本身满足要求样例 2:输入: list = 1->4->3->2->5->2->null, x = 3输出: 1->...

2019-05-20 11:27:33 233

原创 LintCode 60. 搜索插入位置(java实现,O(nlogn))

描述给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。注意你可以假设在数组中无重复元素。样例[1,3,5,6],5 → 2[1,3,5,6],2 → 1[1,3,5,6], 7 → 4[1,3,5,6],0 → 0分析二分法即可,需要注意的是在数组中找不到target的时候,如何确定正确的插入位置我的代码中,出...

2019-05-10 15:37:52 138

原创 LintCode 44 最小子数组(java实现,O(N))

描述给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。备注子数组最少包含一个数字样例输入:[1, -1, -2, 1]输出:-3输入:[1, -1, -2, 1, -4]输出:-6输入:[5, -4]输出:-4分析1.求最小子数组,当累加和大于零的时候其实是无意义的,不需要记录,此时更新为当前元素2.新累加和和上一次最小值相比,将最小值更新代码publ...

2019-05-07 19:52:21 218

原创 LintCode 9 Fizz Buzz 问题(java实现,只用一个if)

1.说明给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:如果这个数被3整除,打印fizz.如果这个数被5整除,打印buzz.如果这个数能同时被3和5整除,打印fizz buzz.如果这个数既不能被 3 整除也不能被 5 整除,打印数字本身。2.挑战是否可以只用一个 if 来实现3.样例比如 n = 15, 返回一个字符串数组:[ "1", "2", "fizz"...

2019-05-07 11:26:15 689

原创 java8之Optional类实践

一句话Optional类是为了很好的解决NPE,看如下的源码的前3行代码,我们就知道Optional是如何防范NPE的:(Optional 是个容器:它可以保存类型T的值,无论该值是否为null。至于是什么设计模式,就不说了) * @param <T> the type of value * @since 1.8 */public final class Optional&l...

2019-04-23 22:58:18 276

转载 Linux系统git公钥配置

大神详解戳这里

2019-03-25 17:03:20 2117

原创 LintCode 451. 两两交换链表中的节点(C++递归法实现)

1.描述给一个链表,两两交换其中的节点,然后返回交换后的链表。样例样例 1:输入:1->2->3->4->null输出:2->1->4->3->null样例 2:输入:5->null输出:5->null2.代码ListNode *swapPairs(ListNode *head) { if (!head...

2019-03-21 23:40:42 379

原创 lintcode 1119 三个数的最大乘积(java实现)

1.描述给定一个整数数组,找到三个元素,使乘积最大,返回该积。注:数组的长度范围为[3, 10^4],所有的元素范围为[-1000, 1000]。 任意三个元素的积不会超过32位有符号整数的范围。样例样例 1:输入: [1,2,3]输出: 6样例 2:输入: [1,2,3,4]输出: 242.代码public int maximumProduct(int[] nums...

2019-03-21 19:56:23 300

原创 lintcode 644 镜像数字(Java实现)

1.描述一个镜像数字是指一个数字旋转180度以后和原来一样(倒着看)。例如,数字"69",“88”,和"818"都是镜像数字。写下一个函数来判断是否这个数字是镜像的。数字用字符串来表示。2.样例样例1:输入 : “69”输出 : true样例 2:输入 : “68”输出 : false3.代码public boolean isStrobogrammatic(String nu...

2019-03-14 10:56:17 489

原创 LintCode区间查询(java实现)

1.描述给定一个包含若干个区间的List数组, 区间的长度是 1000, 例如 [500,1500], [2100,3100].给定一个 number ,请问number是否在这些区间内.返回 True 或 False.输入: List = [[100,1100],[1000,2000],[5500,6500]] 和 number = 6000输出: true解释:6000 在区间[55...

2019-03-12 12:31:43 815

原创 LintCode两数之和(java实现)

1.描述给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。Example1:给出 numbers = [2, 7, 11, 15], target = 9, 返回 [0, 1].Example2:给出 numbers = [15, 2, 7, 1...

2019-03-12 12:29:41 224

原创 lintcode --最大子数组(c++实现)

class MaxSubArray {public: int maxSubArray(vector&lt;int&gt; &amp;nums) { // write your code here // 判空 if (nums.size() == 0) { return 0; } in...

2018-12-06 14:59:39 266

原创 lintcode -- 旋转字符串(c++实现)

给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)class Solution {public: /** * @param str: An array of char * @param offset: An integer * @return: nothing */ void rotateString(string &amp...

2018-12-03 20:34:39 460

原创 lintcode -- 合并有序数组(c++实现)

合并两个排序的整数数组A和B变成一个新的数组。class Solution {public: /** * @param A: sorted integer array A * @param B: sorted integer array B * @return: A new sorted integer array */ vect...

2018-12-03 20:32:20 181

原创 lintcode ->尾部的零(c++实现)

设计一个算法,计算出n阶乘中尾部零的个数class Solution {public: /* * @param n: A long integer * @return: An integer, denote the number of trailing zeros in n! */ long long trailingZeros(long long...

2018-12-03 20:30:04 233

原创 AOP原理----动态代理的spring模拟实现(JDK+ InvocationHandler)

public class Main { public static void main(String[] args) { UserService userService = new UserServiceImpl(); InvocationHandler invocationHandler = new UserInvocationHandler(userService); ...

2018-11-30 11:12:37 217 1

原创 Java继承中的代码执行顺序

democlass A{ static { System.out.println("父类静态代码块"); } public A(){ System.out.println("父类构造方法"); } { System.out.println("父类初始化块"); }}public class B ...

2018-09-11 11:01:41 765

原创 java多线程之Thread VS Runnable

package ThreadCompare;public class MyThreadByRunnable implements Runnable { private int ticket = 5; @Override public void run() { while(ticket&amp;gt;0) { ticket--; ...

2018-08-21 23:35:56 157

原创 java反射详解

java反射是什么AVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。一.Class类简单介绍1.什么是Class类Class类简单说就是任何一个类的类型,因为我们常说,java是面向对象的,一切都是对象,而对象又是它属于所属类的一个实例...

2018-08-12 00:34:44 367

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除