自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (3)
  • 收藏
  • 关注

原创 @Enable XX实现原理

1、自定义注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import({InitSpringListener.class})public @interface EnableTest {}2、spring boot加上自定义的注解@Slf4j@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)@Enab.

2020-10-14 18:49:12 412

原创 Dubbo启动常见错误

java.lang.IllegalStateException: Invalid name="org.apache.dubbo.config.ProtocolConfig#0"没有指定dubbo protocol名称

2020-06-02 11:46:57 2452

原创 Java线程池吞异常源码解析

工作中使用线程池,内部发生了异常,由于是在线上,进行了日志打印,怎么都打印不出来,贼坑。。。然后本地模拟debug终于找到了原因,使用线程池submit方法执行线程时候会吞掉异常,导致异常无法打印出来测试代码: public static void main(String[] args) { ExecutorService pool = Executors.new...

2019-09-28 18:10:19 572

原创 微信公众号相关

客服消息优点:可以发文字、图片、视频、语音、小程序(小程序与公众号关联)等缺点:发送的用户在48小时和该公众号平台有交互,交互行为包括:用户发送信息点击自定义菜单(仅有点击推事件、扫码推事件、扫码推事件且弹出“消息接收中”提示框这3种菜单类型是会触发客服接口的)关注公众号扫描二维码支付成功用户维权模板消息特点:没有了和用户交互的限制每个账号可以同时使用...

2019-09-27 20:41:22 242

原创 Incorrect string value错误解决

创建数据库时配置character set为:utf8mb4collation为:utf8mb4_unicode_ci表的配置character set为:utf8mb4collation为:utf8mb4_general_ci插入表情(例如????)时候报错java.sql.SQLException: Incorrect string value: '\xF0\x9F\x94\xA...

2019-09-10 19:21:01 6107

原创 Cookie和Session

存储方式:Cookie:大小限制4k,每次发起请求自动携带,保存在客户端的,默认存储在内存,浏览器关闭就会失效,可设置时间,设置存活时间后存在硬盘中,浏览器关闭了依旧可用。Session:没有大小限制,存储在服务器,默认存在内存中两者之间的关系:Session的实现依赖于sessionID,而sessionID存储在Cookie上,所以说session是基于cookie实现的一种数据存储方...

2019-08-16 09:32:08 168

原创 XSS、CSRF攻击

XSS跨站脚本攻击(Cross Site Scripting)原理:采用恶意script脚本注入,类似于sql注入解决方案:对输入参数进行校验,处理可疑字符CSRF(Cross Site Request Forgery, 跨站域请求伪造)登录信任站点A,产生了cookie信息在cookie没有失效时进入危险站点B,危险B站点有一个图片标签(<img src=http://B....

2019-08-16 09:31:08 293

原创 理解ClassLoader类加载器

类加载器一般分为:启动类加载器BootstrapClassLoader扩展类加载器ExtClassLoader系统类加载器AppClassLoader用户自定义类加载器ExtClassLoader和AppClassLoader是Launcher的内部类,都继承了URLClassLoader,最上层的基类为ClassLoader。那么为什么说AppClassLoader的父类是ExtCl...

2019-07-10 15:13:03 208

原创 ReentrantLock可重入式锁

首先看下AQS以及CLH在AQS(AbstractQueuedSynchronizer)中,没有获取到锁的线程我们使用CLH队列进行储存CLH是一个双向链表,链表的元素是Node节点,Node类是AQS的内部类,Node主要存储以下信息:共享模式的标记static final Node SHARED = new Node();独占模式的标记static final Node EXC...

2019-07-08 18:30:40 146

原创 Java集合之List

ArrayList继承于AbstractList,底层是数组实现的transient Object[] elementData;不设置大小则默认大小为0,当第一次进行add操作时候会扩容,如果容量小于10,默认扩容为10public boolean add(E e) { ensureCapacityInternal(size + 1); // 看ensureCapacit...

2019-07-02 18:17:06 122

原创 Java集合之Map

HashMap数组(Node类型的数组)加链表(或者红黑树),new HashMap时不指定大小,则默认为空,在第一次put数据时候会对Node数组进行扩容,默认大小为16,扩容是耗费性能的,所以阿里手册中创建HashMap时候需要指定容量大小transient Node<K,V>[] table;通过计算存入对象的Hash值来计算在数组的索引位置当发生Hash冲突时...

2019-07-02 10:42:09 98

转载 K8s Restful patch请求content-type相关设置

API 资源使用REST模式,具体说明如下。 GET /<资源名的复数格式>:获得某一类型的资源列表,例如GET /pods 返回一个Pod资源列表。 POST /<资源名的复数格式>:创建一个资源,该资源来自用户提供的JSON对象。 GET /<资源名复数格式>/<名字>:通过给出的名称(Name)获得单个资源,例如GET...

2019-06-11 16:22:32 2301

原创 Java正则匹配单词数和汉字

public void matcher(String text) { long c1 = 0; long c2 = 0; if (StringUtils.isBlank(text)) { System.out.println("汉字数量:0" + "\n" + "单词数量:0"); retur...

2019-05-21 11:55:06 1601 1

原创 Hive和HBase的区别

1.hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储2.Hive query就是MapReduce jobs查询时间较久;HBase相当于一个nosql通过key/value的形式查询。3.Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑;HBase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它...

2019-04-26 16:15:47 2583

原创 Java并发Semaphore信号量的学习

public class MyThreadTest { private final static Semaphore semaphore = new Semaphore(2);// 设置2个车位 public static void main(String[] args) { System.out.println("start"); p(sem...

2019-04-09 19:07:17 436

原创 ThreadLocal的学习

demo:使用户可以判断自己访问站点的排名// 配置拦截器用于拦截所有的访问请求<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="demo.MyInterceptor"></bean> ...

2019-04-04 15:30:15 121

原创 Velocity的学习

public class VelocityTest { /** * $!(var):如果有值则输出,如果为空,则不显示; * <p> * ${var}:如果有值则输出,如果为空,则将该代码原样输出; */ public static void main(String[] args) { VelocityEngi...

2019-03-20 10:37:57 180

原创 mysql乐观锁的实现

方法一:通过加字段的方式加一个version字段,初始值为0,修改自动生成的update方法,每次进行update操作的时候,version自加1(set version=version+1),并且where条件中要加上version要等于原值(version=#{version})...

2019-03-19 15:07:16 1613

原创 SimpleDateFormat的线程安全问题

SimpleDateFormat是一个线程不安全的类,它的对象不要作为utils静态变量,也不要作为成员变量,否则会引起以下异常:java.lang.NumberFormatException: For input stringjava.lang.NumberFormatException: multiple points 分析原因:SimpleDateFormat的parse方法会用...

2019-03-19 10:11:01 155

原创 org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body

在使用httpclient下载大文件时候报错。错误分析:1.请求链接提前关闭导致拿到数据包和期待数据包不一致2.http请求不稳定,对大的数据包会导致丢数据的问题解决办法:文件过大导致数据包丢失的话就分片下载断点续传,把文件分块进行下载请求头中加以下代码Header header = new BasicHeader("Range", "bytes=" + startInde...

2019-03-13 15:05:25 12884 3

原创 Spring的生命周期

 1.找一个bean工厂装修小队(实例化BeanFactoryPostProcessor) 2.bean工厂装修小队开始建这个工厂(BeanFactoryPostProcessor调用postProcessBeanFactory方法) 3.成立bean工厂产品管理审核部门(实例化BeanPostProcessor) 4.厂长宣布开工生产bean了(InstantiationAwareBean...

2019-02-27 15:22:42 363

转载 SQL中AVG()、COUNT()、SUM()等函数对NULL值处理

一、AVG()求平均值注意AVE()忽略NULL值,而不是将其作为“0”参与计算二、COUNT()两种用法1、COUNT(*)对表中行数进行计数不管是否有NULL2、COUNT(字段名)对特定列有数据的行进行计数忽略NULL值三、SUM()可以对单个列求和,也可以对多个列运算后求和忽略NULL值,且当对多个列运算求和时,如果运算的列中任意一列的值...

2019-01-20 18:05:29 3511

原创 JAVA中小数乘法精度损失问题

BigDecimal one = new BigDecimal("1.3223");BigDecimal two = new BigDecimal("2.33");System.out.print(one.multiply(two)                    .setScale(2, RoundingMode.HALF_EVEN)    //保留两位小数            ...

2019-01-14 11:32:13 2554

原创 PV、UV、CTR含义

CTR (Click Through Rate): 点击率PV(Page View)访问量, 即页面浏览量或点击量,在一定统计周期内用户每打开或刷新一个页面就记录1次UV(Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据),如果清除了cookies或者更换设备访问,计数会加1。...

2019-01-10 13:30:17 18223

原创 Git应用

$ git clone git地址 //拉取代码$ git status //查看分支状态$ git pull //同步代码$ git add . //新增文件类等$ git commit -a -m "说明" //新增并提交代码$ git merge A B //把A的东西合并到B上$ git rebase -i  //类似于merge,只是git树会是一条没有分叉的,可以对comm...

2019-01-07 14:40:34 253

转载 csxf攻击

转自:http://www.cnblogs.com/hyddd/一.CSRF是什么?  CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么?  你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。...

2019-01-07 14:39:40 1488

原创 JAVA正则常见使用

① .*和.*?的区别String str = "1000001000100";Pattern p1 = Pattern.compile("1.*1");Pattern p2 = Pattern.compile("1.*?1");System.out.println(p1.matcher(str).replaceAll(""));// 00System.out.println(p2...

2018-12-24 11:50:11 1945

原创 Dubbo和Nginx的区别

dubbo的负载均衡是服务层面,nginx的负载均衡还在http请求层面。dubbo具备了server注册,发现、路由、负载均衡的功能。dubbo在服务发现这个地方做的更像一个dns(个人感觉),一个消费者需要知道哪里有这么一个服务,dubbo告诉他,然后他自己去调用。而nginx在具备了以上功能,还有两个最主要的功能是:1,维持尽可能多的连接。2,把每个连接的具体服务需求pass到...

2018-12-14 12:43:19 4663

原创 MaxComputer (ODPS) 之UDF

UDTF功能:可以放在sql语句中对单行中某个字段进行处理并且生成一行或者多行数据.开发工具 Intellij IDEA1.下载MaxCompute Studioidea -&gt; File -&gt; settings -&gt; Plugins 搜索‘MaxCompute Studio’没有的话点击Browse repositories… ,点击Manage reposi...

2018-12-14 12:35:59 4505

原创 显示某字段的记录为null时的处理

SELECT COALESCE(NUM, 0) FROM TABLE_A; SELECT CASE WHEN NUM IS NULL  THEN 0 ELSE NUM END AS NUM FROM TABLE_A;即if...else...

2018-12-10 17:33:50 341

原创 CDP4J爬虫、JAVA实现

pom依赖: &lt;!-- cdp4j依赖 --&gt; &lt;dependency&gt; &lt;groupId&gt;io.webfolder&lt;/groupId&gt; &lt;artifactId&gt;cdp4j&lt;/artifactId&gt; &lt;version&gt;2.2.1&am

2018-12-07 11:07:54 2319 4

原创 Puppeteer爬虫

const puppeteer = require('puppeteer');const fs = require("fs");let scrape = async () =&gt; { // headless为true时不会弹出浏览器 const browser = await puppeteer.launch({headless: false}); const ...

2018-11-27 17:42:13 849

原创 TCP、HTTP、SOCKET的关系

1、OSI网络七层模型第一层:应用层。定义了用于在网络中进行通信和传输数据的接口;(Http协议位于该层) 第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等; 第三层:会话层。管理用户的会话,控制用户间逻辑连接的建立和中断; 第四层:传输层。管理着网络中的端到端的数据传输;(Tcp协议位于该层) 第五层:网络层。定义网络设备间如何传输数据;(IP位于该层) 第六层:链...

2018-11-23 14:47:39 8608

原创 K8s部署docker化Java应用

docker下载链接Docker下面以SpringBoot工程为例首先建立一个SpringBoot工程,工程目录结构如下:&gt; mt-myservice &gt; .idea &gt; .mvn &gt; src &gt; main &gt; docker Dockerfile ...

2018-11-17 10:11:19 2656

原创 Java 实用快捷工具类

md5加密:String md5Str = DigestUtils.md5Hex("".getBytes());流转为字节数组:byte[] bytes = IOUtils.toByteArray(new FileInputStream(""));字节数组转为流:ByteArrayInputStream byteArrayInputStream = new ByteArrayInputS...

2018-11-09 14:58:44 120

原创 Java ZIP解析

private void extractZipFile(InputStream inputStream) { try (ZipInputStream zis = new ZipInputStream(inputStream, Charset.forName("GBK"))) { // 解析文件 ZipEntry entry ...

2018-11-06 10:15:26 1822 5

原创 Java RAR解析

maven依赖:&lt;!-- https://mvnrepository.com/artifact/com.github.junrar/junrar --&gt;&lt;dependency&gt;    &lt;groupId&gt;com.github.junrar&lt;/groupId&gt;    &lt;artifactId&gt;junrar&lt;/artifactId&...

2018-11-06 10:00:26 3053

原创 FastJson反序列化为什么用TypeReference

泛型序列化非TypeReference code: public static void main(String[] args) { Map&lt;String, Person&gt; map = new HashMap&lt;&gt;(16); map.put("one", new Person("zhangsan")); map.pu...

2018-11-02 13:48:57 6975

原创 Java Excel解析

maven依赖: &lt;dependency&gt; &lt;groupId&gt;xml-apis&lt;/groupId&gt; &lt;artifactId&gt;xml-apis&lt;/artifactId&gt; &lt;version&gt;1.4.01&lt;/version&gt; &amp

2018-11-01 15:37:04 147

原创 笔记

https://blog.csdn.net/glory1234work2115/article/details/51550250 maven常用插件配置详解https://segmentfault.com/a/1190000009071883 Chrome headless模式https://segmentfault.com/a/1190000009353359 使用Chro...

2018-10-24 19:26:19 124

深入理解jvm

该资源为深入理解java虚拟机相关书籍,为高清pdf文档,希望对您有用!

2019-01-07

java查询cpu内存工具

#通过任务管理器查询pid #打印指定pid堆栈日志到指定文件 cmd jstack pid >> d:\log #在ProcessExplorer上查看进程cpu和内存使用情况,找到java进程点开可以看tid线程使用情况,通过tid可在线程日志中找到指定线程进行分析

2018-11-05

文件编码识别

java文件编码识别代码,有效识别常见的编码内容,欢迎补充

2018-08-02

空空如也

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

TA关注的人

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