java
java
NPException
学无止境
展开
-
java中的PO、BO、VO、QO、POJO、DTO、DAO分别代表什么意思
PO:persistantobject持久对象BO:businessobject业务对象VO:valueobject值对象,ViewObject表现层对象QO:查询对象POJO:plainordinaryjavaobject简单java对象DTO:DataTransferObject数据传输对象DAO:dataaccesso...原创 2019-12-03 10:24:33 · 3972 阅读 · 0 评论 -
关于Java中的WeakReference类的笔记(弱引用)
前言今天在看ThreadLocal源码的时候,其中内部类ThreadLocalMap中的Entry继承了WeakReferenc,为了能搞清楚ThreadLocal,只能先了解下了WeakReferenc。先看一下源码:从源码中可以看出他又继承了抽象类Reference,WeakReference如字面意思,弱引用, 当一个对象仅仅被weak reference(弱引用)指向, 而...原创 2019-11-14 16:46:17 · 1250 阅读 · 0 评论 -
java模拟发送form-data的请求
package com.silot.test;import org.apache.http.HttpResponse;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.mime.HttpMultipartMode;import org.apache.http.entity.mime....原创 2018-11-07 18:00:05 · 26462 阅读 · 2 评论 -
分布式缓存
缓存雪崩 缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间所有原本应该访问缓存的请求都 去查询数据库了,而对数据库 CPU 和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列 连锁反应,造成整个系统崩溃。一般有三种处理办法: 1. 一般并发量不是特别多的时候,使用最多的解决方案是加锁排队。 2. 给每一个缓存数据增加相应的缓存标记,记录缓存的是否失效,如果缓存标记...原创 2019-07-26 13:02:50 · 225 阅读 · 0 评论 -
java内部类
一.概述Java 类中不仅可以定义变量和方法,还可以定义类,这样定义在类内部的类就被称为内部类。根 据定义的方式不同,内部类分为静态内部类,成员内部类,局部内部类,匿名内部类四种。 1.静态内部类 定义在类内部的静态类,就是静态内部类。 1. 静态内部类可以访问外部类所有的静态变量和方法,即使是 private 的也一样。 2. 静态内部类和一般类一致,可以定义静态变量、方法,...原创 2019-07-19 16:54:28 · 239 阅读 · 0 评论 -
java集合------Map
一.概述Map是一个包含键值对的集合,一个map不能有重复的键(key),而且每个键至多只能对应一个值.Map同Collection一样,它的所有通用实现都会提供一个转换器构造函数,接收一个Map类型集合,并以此初始化自己,这样只要是Map的实现都可以相互之间转换. 和List与Set一样,Map强化了equal和hashCode以能对两个Map对象实现逻辑上的比较.如果两个Map实例有...原创 2019-07-19 14:47:31 · 337 阅读 · 0 评论 -
java集合------Queue
一.概述 Queue一种队列结构集合,用来存储将要进行处理的元素.通常以FIFO的方式排序元素,但这并不是必须的.比如优先度队列就是一个例外,它是以元素的值来排序.但无论怎样,每个Queue的实现都必须指定它的排序属性.Queue通常不定义元素的equal和hashCode方法.二.主要方法 每个Queue方法都存在两种形式(1)操作失败则抛出异常(2)操作失败返回一个特定值,通常...原创 2019-07-19 14:14:06 · 217 阅读 · 0 评论 -
java集合------List
一.概述 List是一种有序集合,有时也被称为序列,可以有重复的元素.List集合相比Collection,除了直接继承的方法外,有以下拓展的操作方法 位置访问---可以基于元素索引来操作元素,比如get,set,add,addAll和remove方法都支持这一点 搜索---在集合中搜索一个特定对象,并返回它的索引,如indexOf和lastIndexOf方法 迭代---除了继...原创 2019-07-19 14:13:25 · 244 阅读 · 0 评论 -
java集合------Set
一.概述 Set是一种没有重复元素的集合,Set 注重独一无二的性质,该体系集合用于存储无序(存入和取出的顺序不一定相同)元素,值不能重 复。它所有的方法都是直接继承自Collection接口,并且添加了一个对重复元素的限制.Set要求强化了equals和hashCode两个方法,以使Set集合可以对元素进行排序和对比,对象的相等性本质是对象 hashCode 值(java 是依据对象的内存...原创 2019-07-19 14:10:42 · 253 阅读 · 0 评论 -
java集合------Collection
一.概述Collection是集合框架的根接口.不同的集合具有不同的特性,比如有的集合可以有重复元素,有的不可以,有的可以排序,有的不可排序,如此等等,而Collection作为集合的根接口,它规范定义了集合的通用方法,一个集合我们可以看作一个在内存中的小型数据库,而数据库的常用操作无外乎"增删改查",Collection中的方法也大体是这些类型操作. 此外Colletion的...原创 2019-07-19 14:08:37 · 334 阅读 · 0 评论 -
java集合------Iterable接口
Iterable接口是java 集合框架的顶级接口,实现此接口使集合对象可以通过迭代器遍历自身元素,我们可以看下它的成员方法修饰符和返回值 方法名 描述 Iterator<T> iterator() 返回一个内部元素为T类型的迭代器 defaultvoid forEach(Consumer<? superT>action) ...原创 2019-07-19 13:48:59 · 313 阅读 · 0 评论 -
java集合------概述
一.概述 Java Collection Framework (JCF) 提供给我们一系列的类和接口,方便开发者处理集合对象. 在Java 2之前,Java是没有完整的集合框架的。它只有一些简单的可以自扩展的容器类,比如Vector,Stack,Hashtable等。这些容器类在使用的过程中由于效率问题饱受诟病,因此在Java 2中,Java设计者们进行了大刀阔斧的整改,重新设计,于是...原创 2019-07-19 13:22:06 · 232 阅读 · 0 评论 -
Spring Boot之邮件服务
发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。最早期的时候我们会使用 JavaMail 相关 api 来写发送邮件的相关代码,后来 Spring 推出了 JavaMailSender 更加简化了邮件发送的过程,在之后 Spring Boot 对此进行了封装就有了现在的spring-boot-starter-mail,本章文章的介绍主要来自于此包。简单使用...原创 2019-07-17 17:53:01 · 561 阅读 · 0 评论 -
springboot之定时任务简单使用
在我们开发项目过程中,经常需要定时任务来帮助我们来做一些内容, Spring Boot 默认已经帮我们实行了,只需要添加相应的注解就可以实现1、pom 包配置<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId&...原创 2019-07-17 16:30:27 · 223 阅读 · 0 评论 -
mybatis配置多数据源
首先看项目结构:pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati...原创 2019-07-16 18:44:33 · 280 阅读 · 0 评论 -
SpringBoot中使用Redis实现缓存和两台或者多台中共享 Session方案
Redis介绍Redis 是目前业界使用最广泛的内存数据存储。相比 Mmcached,Redis 支持更丰富的数据结构,例如 hashes, lists, sets 等,同时支持数据持久化。除此之外,Redis 还提供一些类数据库的特性,比如事务,HA,主从库。可以说 Redis 兼具了缓存系统和数据库的一些特性,因此有着丰富的应用场景。本文介绍 Redis 在 Spring Boot 中两个...原创 2019-10-12 17:04:50 · 847 阅读 · 0 评论 -
lettuce与jedis的区别
Lettuce 和 Jedis 的定位都是Redis的client,所以他们当然可以直接连接redis server。Jedis在实现上是直接连接的redis server,如果在多线程环境下是非线程安全的,这个时候只有使用连接池,为每个Jedis实例增加物理连接Lettuce的连接是基于Netty的,连接实例(StatefulRedisConnection)可以在多个线程间并发访问,应为...原创 2019-07-16 14:01:46 · 2388 阅读 · 0 评论 -
Spring Boot 之FilterRegistrationBean-自定义Filter
项目老的用spring写的,新的升级到了springboot,原代码中有在web.xml中定义过滤器,在boot中,自然没法这样用了,因而看了看boot如何使用自定义过滤器。在springboot 中,主要是靠FilterRegistrationBean 这个类来提供这样的功能。自定义 Filter我们常常在项目中会使用 filters 用于录调用日志、排除有 XSS 威胁的字符、执行...原创 2019-07-16 13:54:21 · 2293 阅读 · 0 评论 -
mysql如何批量插入百万数据
我们这里使用jdbc来插入测试:用jdbc插入,20万条数据只需要8s,推荐下面看代码:package com.zoo.lion.modules.test.mysql;import org.junit.Test;import java.sql.*;/** * @Author: xf * @Date: 2019/7/15 10:00 * @Version 1.0 ...原创 2019-07-15 11:12:47 · 3833 阅读 · 0 评论 -
java学习之动态代理
动态代理:应用程序发布后,通过动态创建代理对象;动态代理可以动态地创建代理并动态地处理对所代理方法的调用。其中动态代理又可分为:一、JDK原生动态代理二、CGLIB动态代理1.JDK原生动态代理JDK动态代理只能针对实现了接口的类生成代理。只需要一个代理类,而不是针对每个类编写代理类。新增一个动态代理类实现实现了 InvocationHandler 接口,那么必须实现该...原创 2019-07-12 11:35:25 · 299 阅读 · 0 评论 -
java学习之静态代理
一、概述代理是一种模式,提供了对目标对象的间接访问方式,即通过代理访问目标对象。如此便于在目标实现的基础上增加额外的功能操作,前拦截,后拦截等,以满足自身的业务需求,同时代理模式便于扩展目标对象功能的特点也为多人所用。代理,即:你不用去做,别人代替你去处理。二、图形描述三、静态代理 静态代理的实现比较简单,代理类通过实现与目标对象相同的接口,并在类中维护一个代理对象。通过构...原创 2019-07-12 10:31:35 · 276 阅读 · 0 评论 -
java中new与static分析
抱怨java的new浪费了太多的内存,应该大量的使用static前半句在某些情况下正确,后半句绝对错误。说这话的是完全不懂对象,完全没有OO基础知识,但是这些人还在从事Java/.NET等OO软件开发,相当于外行人冒充内行,可见当前中国软件业水平多么低下。为什么说这些程序员完全不懂OO呢?因为他们只知道对象两个表面含义,却不懂对象背后的含义,对象重要特征是什么?对象重要的特征就是有生命的,...转载 2019-07-10 16:39:34 · 870 阅读 · 0 评论 -
实体类转换DTO的方式
背景:在对外传输数据展示过程中,为了避免model层直接对外暴露,我们会多加一个对应的DTO保理想要传输的数据即可,隐藏model层。应对:1.第一种,如果是实体类字段类型都一样,大部分会采用bean拷贝的方式,BeanUtils.copyProperties(obj,obj),单个对象的转换还好,但是List对象就要循环来转换。2.第二种,要是遇到驼峰类型字段与下划线字段的对象进行转...转载 2019-07-10 16:27:59 · 4737 阅读 · 0 评论 -
BIO、NIO和AIO初识和代码实现
简介IO,常协作I/O,是Input/Output的简称,即输入/输出。通常指数据在内部存储器(内存)和外部存储器(硬盘、优盘等)或其他周边设备之间的输入和输出。输入/输出是信息处理系统(例如计算机)与外部世界(可能是人类或另一信息处理系统)之间的通信。输入是系统接收的信号或数据,输出则是从其发送的信号或数据。在Java中,提供了一些列API,可以供开发者来读写外部数据或文件。我们...原创 2019-07-09 14:16:03 · 296 阅读 · 0 评论 -
java IO流学习总结
首先看一下常用的类:https://www.processon.com/mindmap/5d231767e4b0ae3317dc9404其中,以Stream结尾的为字节流,以Writer或者Reader结尾的为字符流。所有的输入流都是抽象类IuputStream(字节输入流)或者抽象类Reader(字符输入流)的子类,所有的输出流都是抽象类OutputStream(字节输出流...转载 2019-07-09 13:30:27 · 325 阅读 · 0 评论 -
PageHelper查询结果排序
1.使用PageHelperPageHelper.startPage(pageNum , pageSize);PageHelper.orderBy("A B");其中A为排序依据的字段名,B为排序规律,desc为降序,asc为升序或者一步到位String orderBy="字段名 排序规律";PageHelper.startPage(pageNum, pageSize, orde...原创 2019-07-09 11:21:56 · 11666 阅读 · 1 评论 -
SpringBoot 使用@RequestBody 接受不到参数的问题
首先看问题:postman实体:@Data@AllArgsConstructor@NoArgsConstructorpublic class Test{ private Long id; private Integer ifCertification;}发现ifCertification使用@RequestBody总是接受不到参数;解决方式:...原创 2019-07-04 16:28:14 · 19693 阅读 · 3 评论 -
InputStream抽象类的方法详解
首先类的结构InputStream这个抽象类是所有基于字节的输入流的超类首先这是一个抽象类,实现了Closeable接口,也Closeable接口又拓展了AutoCloseable接口,因此所有InputStream及其子类都可以用于Java 7 新引入的带资源的try语句。读入字节之前,我们可能想要先知道还有多少数据可用,这有available方法完成,具体的读入由read()及其重...原创 2019-07-02 09:04:58 · 2081 阅读 · 0 评论 -
java的Comparator接口详解
前面我们讲过Java提供了一个用于比较的接口Comparable,提供了一个比较的方法,所有实现该接口的类,都动态的实现了该比较方法。实际上Java中除了比较一个接口外,还提供了一个接口,该接口也是具有比较的功能,但该接口注重的却是比较容器,然后对其排序,这就是Comparator,下面我们就来具体认识一下;首先看一下源码:package java.util;import java....原创 2019-07-01 13:52:43 · 23429 阅读 · 0 评论 -
java的Comparable接口详解
背景 我们在字符串中见到过CompareTo方法,知道这个方法是用于比较字符串顺序的,根据字典顺序进行排序。Java中很多类也都有CompareTo方法,甚至于排序算法的底层组成也是依赖于比较的,而这个比较就是依赖于各种数据类型的CompareTo或者Compare方法。Java中所有的compareTo方法都源于一个共同的接口,那就是Comparable。这个接口只有一个方法,那就是Com...原创 2019-07-01 13:36:56 · 1777 阅读 · 0 评论 -
java中URLEncoder.encode与URLDecoder.decode处理url特殊参数的方法
今天在调取一个三方接扣的时候发现需要对参数编码:如或者在使用 url 的 queryString 传递参数时,因为参数的值,被DES加密了,而加密得到的是 Base64的编码字符串,类似于:za4T8MHB/6mhmYgXB7IntyyOUL7Cl++0jv5rFxAIFVji8GDrcf+k8g==显然 这里面含有了 特殊字符: / + = 等等,如果直接通过url 来传...原创 2019-06-28 23:29:57 · 2170 阅读 · 0 评论 -
JAVA中的Random()
Java中存在着两种Random函数:一、java.lang.Math.Random;二、java.util.Random第一种:调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。例子如下:package com.zoo.l...原创 2019-06-05 13:44:33 · 142559 阅读 · 4 评论 -
JDK的AutoCloseable,Closeable和Flushable使用详解
探究java IO之AutoCloseable,Closeable和Flushable接口有3个接口对于流类相当重要。其中两个接口是Closeable和Flushable,它们是在java.io包中定义的,并且是由JDK5添加的。第3个接口是AutoColseable,它是由JDK7添加的新接口,被打包到java.lang包中。AutoCloseable接口对JDK7新添加的...原创 2019-06-01 17:25:24 · 2603 阅读 · 0 评论 -
org.springframework.beans.BeanUtils与org.apache.commons.beanutils.BeanUtils的copyProperties用法区别
知识点org.springframework.beans.BeanUtils与org.apache.commons.beanutils.BeanUtils都提供了copyProperties方法,作用是将一个Bean对象中的数据封装到另一个属性结构相似的Bean对象中1)两者的copyProperties方法参数位置不同 org.springframework.beans.BeanU...原创 2019-05-31 12:32:36 · 1955 阅读 · 1 评论 -
commons configuration管理项目的配置文件
Commons Configutation commons configuration可以很方便的访问配置文件和xml文件中的的内容。Commons Configuration 是为了提供对属性文件、XML文件、JNDI资源、来自JDBC Datasource数据的访问。官方文档:http://commons.apache.org/proper/commons-configuration...转载 2019-05-09 12:33:52 · 353 阅读 · 0 评论 -
使用WebMvcConfigurer配置SpringMVC
Spring的WebMvcConfigurer接口提供了很多方法让我们来定制SpringMVC的配置。而且Spring还提供了WebMvcConfigurerAdapter让我们更加优化的去进行配置。我们的配置类可以直接继承WebMvcConfigurerAdapter来进行配置。configurePathMatch:匹配路由请求规则setUseSuffixPatternMatc...原创 2019-05-09 11:13:35 · 4192 阅读 · 0 评论 -
RestTemplate的几种实现
https://blog.csdn.net/qq_35981283/article/details/82056285转载 2019-05-06 15:55:51 · 737 阅读 · 0 评论 -
Springboot中你用Xstream和JAXB方式xml与bean相互转换
在现今的项目开发中,虽然数据的传输大部分都是用json格式来进行传输,但是xml毕竟也会有一些老的项目在进行使用,正常的老式方法是通过获取节点来进行一系列操作,个人感觉太过于复杂、繁琐。推荐一套简单的api--XStream类。在理解了原理的情况下看下注解的语法即会使用例子是把xml映射成bean对象<?xml version="1.0" encoding="UTF-8"?>&...原创 2019-03-27 11:38:05 · 2326 阅读 · 0 评论 -
使用druid连接池带来的坑testOnBorrow=false
https://blog.csdn.net/lx348321409/article/details/76095751转载 2019-02-12 13:18:43 · 1485 阅读 · 0 评论 -
Java中映射Map的merge、compute、computeIfAbsent、computeIfPresent基本用法
下面是Java8中Map的一些新方法merge、compute、computeIfAbsent、computeIfPresent介绍。我们在项目开发中,经常使用map,key有时存在有时不存,我们需要是用containsKey去判断,然后再决定如何修改value。 这样比较麻烦,嫩不能在一个方法调用就完成这些工作呢(如果key存在value(还可以有其他逻辑判断),就do a,如果不存在就do...原创 2018-11-23 19:38:48 · 530 阅读 · 0 评论