自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 矩阵置0

//给定一个m*n的矩阵,如果有一个元素是0,就把该元素所在的行和列上的元素全置为0,要求使用原地算法。 //拓展: //你的算法有使用额外的空间吗? //一种比较直接的算法是利用O(m,n)的空间,但是这不是一个好的解法 //使用简单的改进可以在O(m+n)的空间解决这个问题,但是还不是最佳的解法 //你能在常量级的空间复杂度内解决这个问题吗? //遍历矩阵,如果cell[i][j] == 0 就将cell[i][0](首列) 和cell[0][j...

2020-12-01 12:35:48 417

原创 Spring生命周期

生命周期1.指定初始化和销毁方法通过@Bean指定init-method和destroy-method;2.通过让Bean实现InitializingBean类(定义初始化逻辑afterPropertiesSet方法)DisposableBean类(定义销毁逻辑destroy方法);3.使用JSR250,@PostConstruct:在bean创建完成并且属性赋值完成,来执行初始化方法;@PreDestroy:在容器销毁bean之前通知我们进行清理工作4.BeanPostProcessor[int

2020-11-19 18:10:18 136

原创 JDK不同版本内存模型总结

1.不同版本JDK的intern()区别    JDK6中当调用intern方法时,如果字符串常量池先前已创建出该字符串对象,则返回池中的该字符串的引用。否则,将此字符串对象添加到字符串常量池中,并返回该字符串对象的引用。    JDK6+中当调用intern方法时,如果字符串常量池先前已创建出该字符串对象,则返回池中的该字符串的引用。否则如果该字符串对象已经存在于Java堆中,则将堆中此对象的引用添加到字符串常量池中,并且返回该引用;如果堆中不存在,则在池中创建该字符串并返回其引用。2.方法区、常量

2020-06-21 17:29:41 379

原创 Linux常用命令

1.查找特定的文件find path [options] params#查找当前目录和其子目录find -name '文件名'#若要全局搜索则只需要从根路径开始搜索即可find / -name '文件名'#当前用户下文件名模糊匹配find ~ -name '文件名*'#忽略文件名大小写find ~ -iname '文件名*' find ~ | grep 文件名2.文件内容查找grep '查找内容' 文件名#对查找出的内容显示指定的内容grep '查找内容' 文件名 | grep

2020-06-14 15:41:12 165

原创 mysql学习总结

1.mysql使用B+树作为索引的数据结构优势1.1 B树性质M阶B树满足下列条件:1.定义任意非叶子结点最多只有M个儿子;且M>2;2.根结点的儿子数为[2, M];3.除根结点以外的非叶子结点的儿子数为[M/2, M];4.每个结点存放至少M/2(取上整)-1和至多M-1个关键字;(至少2个关键字,根节点至少一个关键字);5.非叶子结点的关键字个数=指向儿子的指针个数-1;6.非叶子结点的关键字:K[1], K[2], …, K[m-1],m<M+1;且K[i]< K[

2020-05-24 17:32:52 164

原创 FastJson那些事儿

    FastJson对于Java程序员来说肯定不会陌生,正如它的名字一样,他的特点就是快,那么阿里巴巴的FastJson、开源的Jackson、Google的Gson各有什么特点呢?1.FastJson,不需要依赖额外的jar包,提供静态方法,调用简单方便,而且速度在三者之中相对最快(查阅资料的发现有人说,在反序列化时,json字符串较大,反序列速度略低于Jackson),但与Jackson差不了多少。2.开源的Jackson,所依赖的jar包较少,但是使用时需要实例化,调用繁琐,可以在使用的时候进

2020-05-24 15:04:11 181

原创 RocketMQ-如何保证消息顺序消费

RocketMQ生产者如果是使用MessageListenerOrderly则自带此实现,如果是使用MessageListenerConcurrently,则需要把线程池改为单线程模式。private MessageQueueSelector messageQueueSelector = new MessageQueueSelector() { @Override public MessageQueue select(List<MessageQueue> mq

2020-05-17 13:35:25 5611 1

原创 nginx proxy_cache 配置

nginx proxy_cache 配置1.proxy_cache_path2.location nginx缓存中,key是保存在内存中,而value是保存在文件系统中。1.proxy_cache_pathproxy_cache_path /.../temp_cache levels=1:2 keys_zone=my_cache:100m max_size=2g inactive=7d;...

2020-05-05 15:29:43 448 1

原创 tomcat调优

1.使用spring-boot中无keepalive相关配置文件keepAliveTimeOut:多少毫秒后不响应的断开keepalivemaxKeepAliveRequests:多少次请求后keepalive断开失效使用WebServerFactoryCustomizer定制化内嵌tomcat配置...

2020-04-21 21:25:08 120

原创 C#中async与await

private void Button_Click(object sender, RoutedEventArgs e) { Trace.WriteLine("Task Start !"); DOTaskWithAsync(); Trace.WriteLine("Task End !"); ...

2020-03-26 19:41:02 154

原创 Redis面试题集合

(0)redis为什么是key,value的,为什么不是支持SQL的?(1)redis是多线程还是单线程?(回答单线程的请回吧,为什么请回,请往下看)(2)redis的持久化开启了RDB和AOF下重启服务是如何加载的?(3)redis如果做集群该如何规划?AKF/CAP如何实现和设计?(4)10万用户一年365天的登录情况如何用redis存储,并快速检索任意时间窗内的活跃用户?...

2020-02-25 11:10:05 1554 2

原创 Java面试题总结

1.spring生命周期,几种scope区别singleton(默认)、prototype、request、session、global session

2019-11-20 20:36:36 92

原创 RateLimiter限流

import com.google.common.util.concurrent.RateLimiter;引用guava封装的RateLimiterprivate Map<String, RateLimiter> rateLimiterMap = new ConcurrentHashMap<>();//tps从数据库或者缓存中获取RateLimiter ...

2019-11-18 20:36:21 682

原创 RocketMQ消息发送

RocketMQ支持3种消息发送方式:同步(sync)、异步(async)、单向(oneway)。1.同步:通过send(Message msg)方法发送,生产者想MQ发送消息时,同步等待,直到服务器返回发送结果,才会发下一条消息,线程阻塞。2.异步:send(Message msg, SendCallback sendCallback)方法发送,sendCallback是指定消息发送成功...

2019-07-30 17:19:49 543

原创 RocketMQ部署过程中遇到的问题

步骤几命令行1.Linux环境下解压rocketmq后,进入目录执行:mvn -Prelease-all -DskipTests clean install -U2.进入到 distribution/target/apache-rocketmq 目录3.启动 NameServer: 1)nohup sh bin/mqnamesrv & (启动命令,并且常驻内存)...

2019-07-18 20:31:29 1421

原创 ContextLoaderListener

项目启动初始化问题

2019-07-18 19:53:38 131

原创 PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException

在settings-maven-runner的VMoptions里添加-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME-Dmaven.wagon.http.ssl.insecure=true-Dmaven.wagon.http.ssl.allowall=true-Dmaven.wagon.http.ssl.ignore.validity...

2019-05-17 19:04:39 1585 3

原创 Netty学习笔记——01

1.监听端口(NioEventLoop)1)新连接的接入2)连接上的数据流的读写2.连接(Channel)对socket的抽象,一系列读写都可以在channel上操作3.接受数据(ByteBuf)服务端接受数据的载体4.业务逻辑(ChannelHandler)多个ChannelHandler组成Pipeline(Pipeline与Channel一一对应)5.发...

2019-05-16 13:27:13 101

原创 注解@Aspect的AOP实现

待完成

2019-05-07 10:36:40 154

原创 Oracle降低高水位

待完成

2019-04-03 09:00:34 300

原创 Failed to read artifact descriptor for xxx

在pom.xml中导入包时有时候会出现这样的问题,找到C:\Users\xxx\.m2\repository的路径,找到对应的包,如图文件家里有个.lastUpdated的文件,删掉它,然后重新导入ok了。...

2019-03-06 15:51:06 3134 2

原创 foreach与iterator

1.foreach执行下面这段代码的时候会抛出异常public void testForeach() { List&lt;Integer&gt; list = new ArrayList&lt;&gt;(); for (int i = 0; i &lt; 10; i++) { list.add(i); } ...

2019-02-26 15:20:55 814

原创 Java学习之路-随笔

JSON.toJSONString(map)会去掉map中value为null的字段。 spring中@Transactional使用时要注意,默认的是只有抛出RuntimeException(或者集成了RuntimeException的Exception)事务才会终止然后回滚。 在controller中注入service时,这个service有两个实现类,如何区别使用哪个实现类?使用@Qu...

2019-02-11 09:58:35 118

原创 list.toArray()中的问题

public void testToArray() { String[] strArray = new String[] { "aa", "bb", "cc" }; List&lt;String&gt; list = new ArrayList&lt;&gt;(Arrays.asList(strArray)); String[] strArray2...

2019-01-16 17:03:15 822 1

原创 文件上传到ftp时文件尾部出现丢失问题

FtpUtil.putFileToFtp(ftpHost, ftpUser, ftpPwd, ftpPath, fileName, file);System.out.println(file.length());csv.flush();csv.close();csv.flush();csv.close();FtpUtil.putFileToFtp(ftpHost, ftpUser...

2018-09-20 14:24:13 3194

原创 list!=null和list.size()>0

1.list==null,list没有分配地址,在堆内不存在。 2.list.size()=0,意思list分配了地址,在内存堆存在,但是没有元素,所以大小为零。 3.list如果为null的话,说明没有进行初始化,这时list调用任何的方法都会抛出空指针异常。list.size()==0说明list已经被new过,但是里面没有值。 ...

2018-09-09 12:59:24 1105

原创 mysql安装问题

根目录创建my.ini[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]#设置3306端口port = 3306 # 设置mysql的安装目录basedir=C:\Java\mysql-5.7.22-winx64# 设置mysql数据库的数据的存放目录datadir=C:\Java\mysql-5.7.22...

2018-07-28 18:02:42 88

转载 Socket类的getInputStream方法与getOutputStream方法的使用

客户端上的使用1.getInputStream方法可以得到一个输入流,客户端的Socket对象上的getInputStream方法得到输入流其实就是从服务器端发回的数据。2.getOutputStream方法得到的是一个输出流,客户端的Socket对象上的getOutputStream方法得到的输出流其实就是发送给服务器端的数据。服务器端上的使用1.getInputStream方法...

2018-07-19 10:49:42 770

原创 equals和hashCode

关于equals和hashCode 方法,一致的约定是:重写了equals与方法的对象必须同时重写hashCode()方法。如果2个对象通过equals调用后返回是true,那么这个2个对象的hashCode方法也必须返回同样的int型散列码如果2个对象通过equals返回false,他们的hashCode返回的值允许相同。(但是hashCode返回独一无二的散列码,能提高散列的性能,会让存储这个...

2018-06-20 16:45:39 104

原创 Git

1.git init在当前项目中初始化本地的git仓库2.git status项目中文件的状态3.git add .将新文件上传到本地仓库4.git commit -am 'first commit' (-am意思是加注释)5.git remote add origin + github复制的的地址 (添加远程连接)6.git branch (查看一下当前分支)7.git pull (先拉取分支下...

2018-06-09 13:59:08 117

原创 缓存 - Redis - 数据结构

1

2018-06-03 17:21:24 269

原创 数据库分区表、读写分离

数据库结构优化有很多种,但一般主要是两种,一种是使用存储过程,一种是分区表。存储过程优点1. 存储过程允许标准组件式编程存储过程创建后可以在程序中被多次调用执行,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移植性。2. 存储过程能够实现较快的执行速度如果某一操作包含大量的T-SQL语句代码,分别被多次执行...

2018-05-28 12:02:41 216

原创 敏感词过滤

@Service// Spring中InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,// 凡是继承该接口的类,在初始化bean的时候会执行该方法。public class SensitiveService implements InitializingBean { private static final Lo...

2018-05-27 22:36:49 303

原创 volatile和synchronized

volatile1. volatile修饰的变量具有可见性volatile是变量修饰符,其修饰的变量具有可见性,当对volatile标记的变量进行修改时,会将其他缓存中存储的修改前的变量清除,当用到缓存中的变量时,需要重内存中重新读取。在Java中为了加快程序的运行效率,对一些变量的操作通常是在该线程的寄存器或是CPU缓存上进行的,之后才会同步到主存中,而加了volatile修饰符的变量相当于直接...

2018-05-27 22:36:02 81

原创 索引

二叉树、红黑树等数据结构也可以用来实现索引,但是文件系统及数据库系统普遍采用B-/+Tree作为索引结构索引一般以文件形式存储在磁盘上,索引检索需要磁盘I/O操作。与主存不同,磁盘I/O存在机械运动耗费,因此磁盘I/O的时间消耗是巨大的。索引的建立就是为了减少I/O操作的次数。SQL的聚集索引和非聚集索引聚集索引聚集索引存储记录是物理上连续存在(如果主键不是自增id,那么可以想象,它会干些什么,不...

2018-05-27 22:35:14 123

原创 数据结构中常见的树

BST树即二叉搜索树:1.所有的非叶结点至多拥有两个子结点2.所有的结点存储一个关键字3.非叶结点的左指针小于其关键字的子树,右子针指向大于其关键字的子树 BST的搜索,从根结点开始,如果查询的关键字与结点关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子指针为空,则没找到相应的关键字 如果BST树的所有非叶子结点的左右...

2018-05-27 22:34:36 124

原创 HashMap与ConcurrentHashMap

HashMapHashMap是数组(桶)+链表+红黑树(JDK1.8后,若链表长度大于8时,则转化为红黑树)final int hash; //用来定位数组索引位置final K key;V value;Node&lt;K,V&gt; next; //链表的下一个nodeNode是HashMap的一个内部类,本质是就是一个映射(键值对),HashMap使用哈希表来存储的。HashM...

2018-05-27 22:33:06 107

原创 死锁

死锁四个必要条件互斥条件请求和保持条件不剥夺条件环路等待条件public class DeadLock implements Runnable { public int flag = 1; //静态对象是类的所有对象的共享,o1与o2的争夺满足必要条件之一,互斥 //满足不可剥夺条件,进程所获得的资源在未使用完毕之前,不被其他进程强行剥夺 //请求和保持条件:进程...

2018-05-27 22:31:50 106

原创 线程池

ThreadPoolExecutorcorePoolSize:核心线程数量maximumPoolSize:线程最大线程数workQueue:阻塞队列,存储等待执行的任务,对线程运行过程产生重大影响三个参数的关系:如果线程数小于corePoolSize,直接创建新的线程处理任务,无论其他线程是否空闲。线程数量大于corePoolSize且小于maximumPoolSize时,只有当workQueue...

2018-05-27 22:30:00 105

空空如也

空空如也

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

TA关注的人

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