随笔分类 -  Java

摘要:聊聊Tomcat 阅读全文
posted @ 2021-08-01 08:25 Natee 阅读(70) 评论(0) 推荐(0)
摘要:分布式ID方案总结 阅读全文
posted @ 2021-07-28 08:15 Natee 阅读(104) 评论(0) 推荐(0)
摘要:spring循环依赖 阅读全文
posted @ 2021-07-16 09:55 Natee 阅读(990) 评论(0) 推荐(1)
摘要:深拷贝和浅拷贝 阅读全文
posted @ 2020-04-26 08:58 Natee 阅读(448) 评论(0) 推荐(0)
摘要:kafka分区 阅读全文
posted @ 2019-05-30 08:29 Natee 阅读(434) 评论(0) 推荐(0)
摘要:【并发编程】Future模式添加Callback及Promise 模式 阅读全文
posted @ 2019-05-16 08:46 Natee 阅读(1796) 评论(0) 推荐(0)
摘要:一、什么是消息队列 我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,Rocket 阅读全文
posted @ 2019-04-26 08:28 Natee 阅读(4943) 评论(1) 推荐(1)
摘要:LRU原理 在一般标准的操作系统教材里,会用下面的方式来演示 LRU 原理,假设内存只能容纳3个页大小,按照 7 0 1 2 0 3 0 4 的次序访问页。假设内存按照栈的方式来描述访问时间,在上面的,是最近访问的,在下面的是,最远时间访问的,LRU就是这样工作的。 但是如果让我们自己设计一个基于 阅读全文
posted @ 2019-04-18 16:49 Natee 阅读(4086) 评论(0) 推荐(0)
摘要:Tomcat应该都不陌生,我们经常会把写好的代码打包放在Tomcat里并启动,然后在浏览器里就能愉快的调用我们写的代码来实现相应的功能了,那么Tomcat是如何工作的? 一、Tomcat工作原理 我们启动Tomcat时双击的startup.bat文件的主要作用是找到catalina.bat,并且把参 阅读全文
posted @ 2019-03-11 09:09 Natee 阅读(1407) 评论(0) 推荐(0)
摘要:Redis是一个由ANSI C语言编写,性能优秀、支持网络、可持久化的K-K内存数据库,并提供多种语言的API。它常用的类型主要是 String、List、Hash、Set、ZSet 这5种。 Redis在互联网公司一般有以下应用:String:缓存、限流、计数器、分布式锁、分布式SessionHa 阅读全文
posted @ 2019-03-03 10:07 Natee 阅读(23860) 评论(2) 推荐(2)
摘要:在分布式系统下唯一id问题,就是id咋生成?比如分表分库,因为要是一个表分成多个表之后,每个表的id都是从1开始累加自增长,那是不对的。举个例子,一个表拆分为了2张表,每个表的id都从1开始累加,这个肯定有问题了!你的系统就没办法根据表主键来查询了,比如id = 10这个记录,在两个表里都有!所以此 阅读全文
posted @ 2019-02-21 09:00 Natee 阅读(414) 评论(0) 推荐(0)
摘要:1.1、Future模式是什么 先简单举个例子介绍,当我们平时写一个函数,函数里的语句一行行同步执行,如果某一行执行很慢,程序就必须等待,直到执行结束才返回结果;但有时我们可能并不急着需要其中某行的执行结果,想让被调用者立即返回。比如小明在某网站上成功创建了一个账号,创建完账号后会有邮件通知,如果在 阅读全文
posted @ 2018-09-01 19:34 Natee 阅读(1308) 评论(0) 推荐(0)
摘要:本文只是记录fastjson、jackson一些常用的操作方法,没作比较,网上写比较的文章很多啦。 1、对象转Json串 2、Json串转Json对象 3、Json串转Java对象 4、获取Json对象的key 5、获取Json对象的value 6、创建一Json对象并设置key\value 在这点 阅读全文
posted @ 2018-08-13 08:56 Natee 阅读(2979) 评论(2) 推荐(0)
摘要:一.最常用通过 Arrays.asList(strArray) 方式,将数组转换List后,不能对List增删,只能查改,否则抛异常。 关键代码: 例子: 执行报错: 报错原因: 上面程序在list.add(“1”)处抛出异常:UnsupportedOperationException。这是因为Ar 阅读全文
posted @ 2018-08-02 09:18 Natee 阅读(613) 评论(0) 推荐(0)
摘要:当要删除ArrayList里面的某个元素,一不注意就容易出bug。今天就给大家说一下在ArrayList循环遍历并删除元素的问题。首先请看下面的例子: 常见错误写法: 一: 结果:第二个“b”的字符串没有删掉。 二: 结果:这种for-each写法会报出并发修改异常:java.util.Concur 阅读全文
posted @ 2018-03-11 11:40 Natee 阅读(1095) 评论(0) 推荐(0)
摘要:从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronized的缺陷讲起 阅读全文
posted @ 2017-10-24 11:47 Natee 阅读(1031) 评论(0) 推荐(0)
摘要:1. 悲观锁与乐观锁 我们都知道,cpu是时分复用的,也就是把cpu的时间片,分配给不同的thread/process轮流执行,时间片与时间片之间,需要进行cpu切换,也就是会发生进程的切换。切换涉及到清空寄存器,缓存数据。然后重新加载新的thread所需数据。当一个线程被挂起时,加入到阻塞队列,在 阅读全文
posted @ 2017-10-23 17:28 Natee 阅读(360) 评论(0) 推荐(0)
摘要:BigDecimal一共有4个够造方法,让来看看其中比较常用的两种用法: 第一种:BigDecimal(double val)Translates a double into a BigDecimal. 第二种:BigDecimal(String val)Translates the String 阅读全文
posted @ 2017-10-17 16:54 Natee 阅读(558) 评论(0) 推荐(0)
摘要:一、java静态代码块与静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直 阅读全文
posted @ 2017-10-13 19:31 Natee 阅读(412) 评论(0) 推荐(0)