自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

村里的原振侠的博客

Open your eyes, look up the skies

  • 博客(136)
  • 资源 (1)
  • 收藏
  • 关注

原创 LeetCode github集合,附CMU大神整理笔记

Github LeetCode集合本人所有做过的题目都写在一个java项目中,同步到github中了,算是见证自己的进步。github目前同步的题目是2020-09-17日之后写的题。之前写过的题会陆续跟新到github中。目前大概280个题目Github 项目链接:https://github.com/sunliancheng/leetcode_github...

2020-09-24 22:58:54 1447

原创 LeetCode 28. Implement strStr() Rabin-Karp算法

Description:Implement strStr().Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.Example 1:Input: haystack = “hello”, needle = “ll”Output: 2Clarification:What should we return when needle is an e

2020-05-19 10:20:18 632

原创 经过千锤百炼的算法模版

起始语平时写算法的时候,很多时候思路有了,但是边界问题总是傻傻搞不清楚。所以找了一些经过千锤百炼的模版来帮助代码。持续更新中。。。方便自己在通勤路上,记忆一下模版,所以发在了博客上。算法基础排序快速排序把每个比基准值大的值放到右边,比基准值小的值放到左边,再分别左右快速排序void quick_sort(int q[], int l, int r) { if (l >= r) return; int x = q[l], i = l - 1, j = r + 1; //这里基准

2021-06-17 21:21:07 202

原创 计算表达式(中缀转后缀表达式,逆波兰式结果计算)

前缀,中缀,后缀表达式(逆波兰表达式)参考: https://www.cnblogs.com/chensongxian/p/7059802.html中缀表达式中缀表达式就是常见的运算表达式,如 (3 + 4) * 5 - 6前缀表达式介绍前缀表达式又称为波兰式,前缀表达式的运算符位于操作数之前比如: - * + 3 4 5 6前缀表达式的计算机求值从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符弹出栈顶的两个数字,并进行运算,将结果压入堆栈。重复上述过程,直到最后的一个数字,即为

2021-05-26 21:40:10 210

原创 Mybatis Plus笔记

Mybatis Plus简介MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD

2021-04-12 11:10:14 1753

原创 RocketMQ源码笔记(学习更新中)

RocketMQ源码笔记本文是学习 “RoecketMQ技术内幕” 时的学习笔记,中间会贴上部分dubug源码的调试结果。2 NameServer2.1 NameServer 架构设计Broker消息服务器在启动时,向所有NameServer注册,Producer在发送消息之前从NameServer获取broker服务器地址列表,然后根据负载均衡算法从列表中选择一台消息服务器进行消息发送。NameServer和每台broker服务器保持长连接,每隔30s检测broker是否存活,如果监测到宕机则从路

2021-04-07 19:55:51 234

原创 Java int[]数组如何逆序排序

前言每次写排序的时候,碰到List<>的排序总是容易的很,写个lambda表达式就排好了,但是 int[] 型的数组逆序排序则很麻烦。lambda表达式总是报错。List 排序List<Integer> list = new ArrayList<>();list.add(3);list.add(5);Collections.sort(list, (a, b) -> b - a);int[] 排序顺序排序只要这样就行:Arrays.sort(nu

2021-03-11 16:36:39 4905 6

原创 LC 260. Single Number III 位运算解法

DescriptionGiven an integer array nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once. You can return the answer in any order.Follow up: Your algorithm should r

2021-03-04 10:24:39 144 1

原创 LC238 Product of Array Except Self

DescriptionGiven an array nums of n integers where n > 1, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].Example:Input: [1,2,3,4]Output: [24,12,8,6]Constraint: It’s guaranteed that th

2021-03-02 15:26:12 84

原创 手写 BST 二叉查找树

思路之前一直觉得二叉查找树写起来比较麻烦,主要是添加删除元素比较复杂抽象,这次写了一下其实还好。删除某个元素,只需要把右子树中最小节点和待删除元素交换,并删除最后那个字节点。(右子树最小节点刚好比左子树所有节点大,比右子树所有节点小,故符合要求)。这么一思考,代码挺简单的。Codepublic class BST {TreeNode root;TreeNode makeEmpty(TreeNode t) { if (t == null) return null; makeEmpt

2021-01-14 09:05:51 138

原创 MySQL高级和原理

MySQL高级字符my.cnf配置文件最后加上character_set_server=utf8修改表的字符集mysql> alter table dubbo convert to character set 'utf8';权限查看权限mysql> select * from user\G;*************************** 1. row *************************** Host: lo

2021-01-14 09:00:09 188

原创 MySQL基础

MysqlMysql 基础Create DBCREATE database demo;使用demo数据库mysql> use demoDatabase changedCreate Tablecreate table Person ( Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) );描述Person表:mysql> d

2021-01-14 08:59:19 158

原创 Java 大厂面试集合(juc jvm linux)

Java 面试集合JUCvolatile并行:同时做A,B两件事并发:同时有很多线程访问某个资源volatile: 是java虚拟机提供的轻量级的同步机制保证可见性不保证原子性禁止指令冲排序JMMJava内存模型:Java Memory Model,它描述的是一组规范或者规范定义了内存中各个变量。主内存是共享内存区域,线程对变量操作,会先把数据读取到自己的工作内存中,然后对变量进行操作,然后写回主内存,各个线程的工作内存中存储着主内存的变量副本拷贝,线程间通信必须通过主内存来完成。

2021-01-14 08:57:23 274

原创 一个不知名的SQL面试题

假设新建一张Scores表格,用来记录学生分数mysql> create table Scores( Id int, Name varchar(255), Subject varchar(255), Score int );Query OK, 0 rows affected (0.01 sec)mysql> desc Scores;+---------+--------------+------+-----+---------+-------+| Field | Type

2021-01-08 18:04:16 97 1

原创 Redis基础

RedisNoSQLNot Only SQL:不需要固定的模式储存,可以横向扩展,泛指非关系型数据库。BSon可以画出非关系型数据模型,binary Json。例如下单:本来关系型数据库一个id要查订单表,收货地址表等等表,而非关系型数据库可以直接一个id查出所有信息(放入json串中)NoSQL数据库的四大分类KV键值:redis tier等文档型数据库:bson格式较多。MongoDB是一个基于分布式文件存储的数据库,是非关系型数据库中最像关系型数据库的。列存储数据库:列存储数据库图关

2021-01-05 17:07:06 111

原创 手写java线程池(参考jdk源码)

java线程池目前只写到能正确创建线程,线程扩容到最大线程数,还没写线程池缩容。package com.xxx.springboot.myThreadPool;import org.apache.camel.model.GlobalOptionDefinition;import org.junit.jupiter.api.Test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.text.SimpleD

2021-01-04 12:31:14 232

原创 Java socket编程

Java 网络编程网络编程概述通过 Ip 和 Port 来通信。TCP/IP参考模型应用层传输层网络层物理 + 数据链路层IP地址对应的类:InetAddress端口号 + ip地址 = 网络套接字:socketTCP 编程服务端和客户端通信Demo。 @Test public void client() throws Exception { InetAddress ip = InetAddress.getByName("localhost");

2021-01-03 17:00:21 190 2

原创 Java IO流

Java IOIO 流原理和分类按照数据单位不同分为:字节流(8 bit)和字符流(16 bit)抽象基类字节流字符流缓冲流输入流InputStreamReaderBufferedInputStream输出流OutputStreamWriterBufferedReader/Wirter字符流输入 @Test public void test() throws Exception { //指定流来源 File

2021-01-03 01:02:55 136

原创 Spring Bean完整生命周期测试,超详细输出结果展示

IOC容器生命周期测试参考:https://www.cnblogs.com/zrtqsk/p/3735273.html流程图这里的流程图可以和最后的输出结果对比,逐一对比来了解Spring Bean的生命周期。输出结果已经经过很认真的整理,以及去除不必要的日志 ,并且对输出结果做了优化,容易理解。流程总结Bean的完整生命周期经历了各种方法调用,这些方法可以划分为以下几类:Bean自身的方法: 这个包括了Bean本身调用的方法和通过配置文件中的init-method和destroy-me

2020-12-30 19:06:57 387 7

原创 字节面试官:GC Root是啥

写在最前很早前面试的时候,问JVM垃圾回收算法,然后深入问了下啥算GC Root,然后就跪了。网上看了一些资料,一般比较含糊,自己整理了下,仅供参考,有错误的地方欢迎指正!GC RootClass - 由系统类加载器(system class loader)加载的对象,这些类是不能够被回收的,他们可以以静态字段的方式保存持有其它对象。我们需要注意的一点就是,通过用户自定义的类加载器加载的类,除非相应的java.lang.Class实例以其它的某种(或多种)方式成为roots,否则它们并不是roots

2020-12-29 18:01:10 477

原创 LC312 Burst Balloons (动态规划 + 分治法)

思路这题如果正向思考很难解决:先戳破第 i 个气球,会发现后面的计算过于复杂。但是如果逆向思考:最后戳破第 i 个气球,那么区间范围 [i, j] 中的所有除它以外的气球都破了,就很方便计算出结果。状态转移方程是:resLeft + resRight + left * nums[k] * right自顶向下带有记忆的分治int[][] dp = null; public int maxCoins2(int[] nums) { if (nums.length == 0)

2020-12-17 11:55:52 189

原创 LC241 Different Ways to Add Parentheses (高级dp,1 ms)

LC241 Different Ways to Add Parentheses这题贴出来的原因:这题的动态规划解法,是我自己想出来的,我感觉这题的动态规划算是有点难度了(普通的二维dp的进阶进阶版本),而且我做到了 1 ms beats 99.93%,37.3 mb beats 96.98%。还是很有成就感的。动态规划动态规划虽然代码多了,逻辑复杂了,但是时间空间都缩减了很多。List<Integer> data = new ArrayList<>(); List&

2020-12-15 22:38:53 130

原创 LC300. Longest Increasing Subsequence (两种dp解法)

LC300. Longest Increasing Subsequence (Medium)思路第一种是寻常的解法,从某个数字往前搜索dp数组,dp表示到这个数字结尾到最大递增序列。第二种也是往前找,只不过因为保存的是当前递增序列,所以找的范围要少很多。其实这里可以第二步优化:由于保存到是递增序列,那么可以使用二分查找加速。解法1public int lengthOfLIS(int[] nums) { int[] dp = new int[nums.length];

2020-12-15 11:26:35 219 1

原创 手写Spring的Autowired注解

手写Spring的Autowired注解定义Autowired@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)@Inherited@Documentedpublic @interface Autowired {}定义UserServicepublic class UserService {}定义UserControllerpublic class UserController { @Autowire

2020-12-10 14:37:48 390 2

原创 Spring基础IOC,AOP和事务

Spring本篇是Spring基础知识查漏补缺,快速过一遍基础知识,还未跟新玩IOCIOC 概念对象创建交给spring,降低耦合度。类之间相互依赖,如果某个类路径变化,另一个类也会受影响,所以IOC能降低耦合。IOC 过程通过xml解析,工厂模式,发射创建对象xml 配置<bean id="dao" class="com.xxx.spring.UserDao"/>有service类和dao类,创建工厂类class UserFactory { public s

2020-12-04 22:16:28 214 1

原创 Java 设计模式(剖析spring源码 jdk源码 等)

Java 设计模式高内聚,低耦合,可维护,可读性设计模式七大设计原则单一职责原则Single Responsibility一个类应该只负责一项单一的职责降低类的复杂度,一个类负责一个单一职责提高类的可可读性和可维护性降低变更带来的风险接口隔离原则Interface Segregation Priciple一个类对另一个类的依赖应该建立在最小的接口上。客户端不应该依赖它不需要的接口。如果一个接口的一部分被A依赖,另一部分被B依赖,这个时候应该把接口拆分成两个字接口,实现接口隔离原则

2020-11-18 17:07:53 436 1

原创 手写SpringMVC简易DispatchServlet

手写SpringMVC简易DispatchServletSpringMVC中的DispatchServlet使用了适配器模式,来适配Controller类。当需要新增Controller类的时候,可以在不修改原有框架代码的基础上,添加HandlerAdapter类即可正常工作。Controller类public interface Controller {}class AnnotationController implements Controller { public void do

2020-11-18 15:44:03 291 1

原创 activemq 使用自定义插件(ip白名单认证插件)

activemq 使用自定义插件(ip白名单认证插件)插件类IPAuthenticationBroker用来过滤ip符合ip格式的ip会判断是否在允许的白名单中,否则抛出异常package com.xxx.mq.myPlugins;public class IPAuthenticationBroker extends BrokerFilter { List<String> allowedIPAddresses; Pattern pattern = Pattern.c

2020-11-17 11:09:23 3990

原创 Spring源码之NamespaceHandler和NamespaceHandlerSupport

最近看分布式平台消息队列组件源码的时候,涉及到了使用继承自NamespaceHandlerSupport的类来向spring容器中注入bean定义解析器NamespaceHandler直接上NamespaceHandler代码:public interface NamespaceHandler { /** * 初始化向spring容器中注册bean定义解析器 */ void init(); /** * 解析函数 */ BeanDefinition parse(E

2020-10-29 14:16:05 1241 2

原创 juc和jvm (剖析部分JDK源码)

juc和jvm学习本文档主要是记录juc和jvm的学习之路,阳哥,永远滴神!“生死看淡,不服就干”“基础不牢,地动山摇”“发财的方法都写在’刑法’上”“大学大学: 大家自己学”“没有无所谓,只有做到位”“树长得高是因为它的根扎得深”“沉下来,深深的水,静静地流”“扫帚不倒,灰尘不会自己跑掉”“万丈高楼平地起,一切承担靠地基”SaleTickets并发/并行concurrent parallel。分门别类两件事,并行。三个包Java.util.concurrentjava.u

2020-10-20 14:37:58 583 2

原创 ActiveMQ配置文件解析

ActiveMQ配置文件credentials.properties <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>file:${activemq.conf}/credentials.properties</value>

2020-10-16 16:24:37 1774 2

原创 ActiveMQ高级特性_02

ActiveMQ高级特性_02本篇是我看ActiveMQ官方文档的笔记,主要涵盖以下方面:Composite Destinations;等内容。Composite Destinations在客户端层面,可以使用逗号分隔多个目的地:FOO.A,FOO.B,FOO.C定义一个Queue或Topic来代表一系列destinations:Queue queue = new ActiveMQQueue("FOO.A,FOO.B,FOO.C");producer.send(queue, someMes

2020-10-14 17:17:29 388

原创 ActiveMQ高级特性_01

ActiveMQ高级特性_01本篇是我看ActiveMQ官方文档的笔记,主要涵盖以下方面:Networks of Brokers;Virtual Destinations 虚拟主题;Distributed Queues 分布式队列; 等内容。Networks of BrokersConfiguring a network of brokers 配置A fixed list of URIs两个broker的配置文件分别如下:<?xml version="1.0" encoding="UTF

2020-10-13 15:58:13 306

原创 java中的PO VO BO DTO DO DAO之间的关系

java中的PO VO BO DTO DO DAO之间的关系DOdomain object 领域对象,现实世界中抽象出来的有形或无形的业务实体POpersistant object 持久对象,也被称作Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录。PO中不应该包含任何对数据库的操作。VOValue object值对象,通常用于业务层之间传数据,和PO一样也仅仅是包含数据。View object用于展示层,把某个指定页面或组件的所有数据封装起来。DTO

2020-10-10 17:01:04 343

原创 回溯法leetcode题目集合

回溯法leetcode题目集合Subsets :https://leetcode.com/problems/subsets/public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> list = new ArrayList<>(); Arrays.sort(nums); backtrack(list, new ArrayList<&g

2020-10-04 08:56:16 181

原创 LC371 Sum of Two Integers

Description:Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.Example 1:Input: a = 1, b = 2Output: 3Example 2:Input: a = -2, b = 3Output: 1Solution:妈妈问我为啥跪着写代码!!!xor:表示不算进位符的两数相加结果(a ^ b)carry : 表示进位符

2020-09-24 22:53:20 164

原创 Springboot入门到进阶-01

SpringbootSpringboot 入门微服务把每个功能元素独立出来,动态扩展。一个应用是一个小型服务,通过HTTP的方式进行互通。与之对应的是 All in one:所有都写在一个代码中创建maven工程倒入springboot依赖maven 配置文件 <parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.

2020-09-21 16:31:10 172

原创 LeetCode 93 Restore IP Addresses, 1 ms > 99.64%, 38.3 mb > 96.64%

Description:Given a string s containing only digits, return all possible valid IP addresses that can be obtained from s. You can return them in any order.A valid IP address consists of exactly four integers, each integer is between 0 and 255, separated b

2020-09-17 13:06:35 121

原创 ActiveMQ 基础到进阶 && 高级面试

activemq查漏补缺基础带日志自定义启动./activemq start > /myactiveMQ/run_time.log注意如果启动不了amq,有一种原因是:linux机器名带有下滑线_,腾讯云服务器也会带下划线,会在日志中报错。activemq图解通过ConnectionFactory获取connection,connection生成Session,然后session可以生成Message,MessageProducer和MessageConsumer。消费者一个生产者

2020-09-17 10:58:23 558 1

原创 JAVA Comparator 重写compare方法

int compare(T o1, T o2);接口源码描述:Compares its two arguments for order. Returns a negative integer,zero, or a positive integer as the first argument is less than, equalto, or greater than the second.翻译:有序比较它的两个参数,返回一个正数,零或者负数;当第一个参数小于,等于或大于第二个参数。@th

2020-09-14 10:22:02 2203

web.xml的配置文件

javaweb开发中 web.xml 容易配置失败,这个是头文件,可以照这个修改

2018-01-26

空空如也

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

TA关注的人

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