- 博客(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
466
原创 Dubbo启动常见错误
java.lang.IllegalStateException: Invalid name="org.apache.dubbo.config.ProtocolConfig#0"没有指定dubbo protocol名称
2020-06-02 11:46:57
2577
原创 Java线程池吞异常源码解析
工作中使用线程池,内部发生了异常,由于是在线上,进行了日志打印,怎么都打印不出来,贼坑。。。然后本地模拟debug终于找到了原因,使用线程池submit方法执行线程时候会吞掉异常,导致异常无法打印出来测试代码: public static void main(String[] args) { ExecutorService pool = Executors.new...
2019-09-28 18:10:19
658
原创 微信公众号相关
客服消息优点:可以发文字、图片、视频、语音、小程序(小程序与公众号关联)等缺点:发送的用户在48小时和该公众号平台有交互,交互行为包括:用户发送信息点击自定义菜单(仅有点击推事件、扫码推事件、扫码推事件且弹出“消息接收中”提示框这3种菜单类型是会触发客服接口的)关注公众号扫描二维码支付成功用户维权模板消息特点:没有了和用户交互的限制每个账号可以同时使用...
2019-09-27 20:41:22
297
原创 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
6233
原创 Cookie和Session
存储方式:Cookie:大小限制4k,每次发起请求自动携带,保存在客户端的,默认存储在内存,浏览器关闭就会失效,可设置时间,设置存活时间后存在硬盘中,浏览器关闭了依旧可用。Session:没有大小限制,存储在服务器,默认存在内存中两者之间的关系:Session的实现依赖于sessionID,而sessionID存储在Cookie上,所以说session是基于cookie实现的一种数据存储方...
2019-08-16 09:32:08
206
原创 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
332
原创 理解ClassLoader类加载器
类加载器一般分为:启动类加载器BootstrapClassLoader扩展类加载器ExtClassLoader系统类加载器AppClassLoader用户自定义类加载器ExtClassLoader和AppClassLoader是Launcher的内部类,都继承了URLClassLoader,最上层的基类为ClassLoader。那么为什么说AppClassLoader的父类是ExtCl...
2019-07-10 15:13:03
278
原创 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
204
原创 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
163
原创 Java集合之Map
HashMap数组(Node类型的数组)加链表(或者红黑树),new HashMap时不指定大小,则默认为空,在第一次put数据时候会对Node数组进行扩容,默认大小为16,扩容是耗费性能的,所以阿里手册中创建HashMap时候需要指定容量大小transient Node<K,V>[] table;通过计算存入对象的Hash值来计算在数组的索引位置当发生Hash冲突时...
2019-07-02 10:42:09
133
转载 K8s Restful patch请求content-type相关设置
API 资源使用REST模式,具体说明如下。 GET /<资源名的复数格式>:获得某一类型的资源列表,例如GET /pods 返回一个Pod资源列表。 POST /<资源名的复数格式>:创建一个资源,该资源来自用户提供的JSON对象。 GET /<资源名复数格式>/<名字>:通过给出的名称(Name)获得单个资源,例如GET...
2019-06-11 16:22:32
2463
原创 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
1664
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
2643
原创 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
465
原创 ThreadLocal的学习
demo:使用户可以判断自己访问站点的排名// 配置拦截器用于拦截所有的访问请求<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="demo.MyInterceptor"></bean> ...
2019-04-04 15:30:15
157
原创 Velocity的学习
public class VelocityTest { /** * $!(var):如果有值则输出,如果为空,则不显示; * <p> * ${var}:如果有值则输出,如果为空,则将该代码原样输出; */ public static void main(String[] args) { VelocityEngi...
2019-03-20 10:37:57
240
原创 mysql乐观锁的实现
方法一:通过加字段的方式加一个version字段,初始值为0,修改自动生成的update方法,每次进行update操作的时候,version自加1(set version=version+1),并且where条件中要加上version要等于原值(version=#{version})...
2019-03-19 15:07:16
1667
原创 SimpleDateFormat的线程安全问题
SimpleDateFormat是一个线程不安全的类,它的对象不要作为utils静态变量,也不要作为成员变量,否则会引起以下异常:java.lang.NumberFormatException: For input stringjava.lang.NumberFormatException: multiple points 分析原因:SimpleDateFormat的parse方法会用...
2019-03-19 10:11:01
192
原创 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
13475
3
原创 Spring的生命周期
1.找一个bean工厂装修小队(实例化BeanFactoryPostProcessor) 2.bean工厂装修小队开始建这个工厂(BeanFactoryPostProcessor调用postProcessBeanFactory方法) 3.成立bean工厂产品管理审核部门(实例化BeanPostProcessor) 4.厂长宣布开工生产bean了(InstantiationAwareBean...
2019-02-27 15:22:42
399
转载 SQL中AVG()、COUNT()、SUM()等函数对NULL值处理
一、AVG()求平均值注意AVE()忽略NULL值,而不是将其作为“0”参与计算二、COUNT()两种用法1、COUNT(*)对表中行数进行计数不管是否有NULL2、COUNT(字段名)对特定列有数据的行进行计数忽略NULL值三、SUM()可以对单个列求和,也可以对多个列运算后求和忽略NULL值,且当对多个列运算求和时,如果运算的列中任意一列的值...
2019-01-20 18:05:29
3803
原创 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
2627
原创 PV、UV、CTR含义
CTR (Click Through Rate): 点击率PV(Page View)访问量, 即页面浏览量或点击量,在一定统计周期内用户每打开或刷新一个页面就记录1次UV(Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据),如果清除了cookies或者更换设备访问,计数会加1。...
2019-01-10 13:30:17
20283
原创 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
290
转载 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
1564
原创 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
2000
原创 Dubbo和Nginx的区别
dubbo的负载均衡是服务层面,nginx的负载均衡还在http请求层面。dubbo具备了server注册,发现、路由、负载均衡的功能。dubbo在服务发现这个地方做的更像一个dns(个人感觉),一个消费者需要知道哪里有这么一个服务,dubbo告诉他,然后他自己去调用。而nginx在具备了以上功能,还有两个最主要的功能是:1,维持尽可能多的连接。2,把每个连接的具体服务需求pass到...
2018-12-14 12:43:19
4783
原创 MaxComputer (ODPS) 之UDF
UDTF功能:可以放在sql语句中对单行中某个字段进行处理并且生成一行或者多行数据.开发工具 Intellij IDEA1.下载MaxCompute Studioidea -> File -> settings -> Plugins 搜索‘MaxCompute Studio’没有的话点击Browse repositories… ,点击Manage reposi...
2018-12-14 12:35:59
4874
原创 显示某字段的记录为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
375
原创 CDP4J爬虫、JAVA实现
pom依赖: <!-- cdp4j依赖 --> <dependency> <groupId>io.webfolder</groupId> <artifactId>cdp4j</artifactId> <version>2.2.1&am
2018-12-07 11:07:54
2504
4
原创 Puppeteer爬虫
const puppeteer = require('puppeteer');const fs = require("fs");let scrape = async () => { // headless为true时不会弹出浏览器 const browser = await puppeteer.launch({headless: false}); const ...
2018-11-27 17:42:13
913
原创 TCP、HTTP、SOCKET的关系
1、OSI网络七层模型第一层:应用层。定义了用于在网络中进行通信和传输数据的接口;(Http协议位于该层) 第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等; 第三层:会话层。管理用户的会话,控制用户间逻辑连接的建立和中断; 第四层:传输层。管理着网络中的端到端的数据传输;(Tcp协议位于该层) 第五层:网络层。定义网络设备间如何传输数据;(IP位于该层) 第六层:链...
2018-11-23 14:47:39
8695
原创 K8s部署docker化Java应用
docker下载链接Docker下面以SpringBoot工程为例首先建立一个SpringBoot工程,工程目录结构如下:> mt-myservice > .idea > .mvn > src > main > docker Dockerfile ...
2018-11-17 10:11:19
2723
原创 Java 实用快捷工具类
md5加密:String md5Str = DigestUtils.md5Hex("".getBytes());流转为字节数组:byte[] bytes = IOUtils.toByteArray(new FileInputStream(""));字节数组转为流:ByteArrayInputStream byteArrayInputStream = new ByteArrayInputS...
2018-11-09 14:58:44
152
原创 Java ZIP解析
private void extractZipFile(InputStream inputStream) { try (ZipInputStream zis = new ZipInputStream(inputStream, Charset.forName("GBK"))) { // 解析文件 ZipEntry entry ...
2018-11-06 10:15:26
1966
5
原创 Java RAR解析
maven依赖:<!-- https://mvnrepository.com/artifact/com.github.junrar/junrar --><dependency> <groupId>com.github.junrar</groupId> <artifactId>junrar</artifactId&...
2018-11-06 10:00:26
3136
原创 FastJson反序列化为什么用TypeReference
泛型序列化非TypeReference code: public static void main(String[] args) { Map<String, Person> map = new HashMap<>(16); map.put("one", new Person("zhangsan")); map.pu...
2018-11-02 13:48:57
7092
原创 Java Excel解析
maven依赖: <dependency> <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> <version>1.4.01</version> &
2018-11-01 15:37:04
188
原创 笔记
https://blog.youkuaiyun.com/glory1234work2115/article/details/51550250 maven常用插件配置详解https://segmentfault.com/a/1190000009071883 Chrome headless模式https://segmentfault.com/a/1190000009353359 使用Chro...
2018-10-24 19:26:19
152
java查询cpu内存工具
2018-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人