java
java相关
码上腾飞
这个作者很懒,什么都没留下…
展开
-
mybatis generator cmd 终端命令 生成dao model mapper
mybatis generator cmd 终端命令 生成dao model mapper文件包下载mybatis-generator-core-1.3.2.jar下载地址:https://github.com/mybatis/generator/releasesmysql-connector-java-5.1.34.jar下载地址:http:/...原创 2018-09-09 14:56:00 · 222 阅读 · 0 评论 -
阿里巴巴Java开发手册
https://web.kamihq.com/web/viewer.html?source=extension_pdfhandler&extension_handler=webrequest_1_autoload_true_user_5851252&file=https%3A%2F%2Ffiles.cnblogs.com%2Ffiles%2Fhan...原创 2018-09-26 11:05:00 · 125 阅读 · 0 评论 -
Intellij IDEA使用总结
Intellij IDEA使用总结项目模板类型对于新建的Project,一般会选择【Create New Project】,对于界面中,众多的Project类型从IDEA给有一个默认的分类,包括一下几类1、Java语言相关默认工程模板2、Spring、Maven、Gradle等第三方构建工具提供的模板3、基于JVM的Groovy语言模板工程4、...原创 2018-09-27 16:11:00 · 185 阅读 · 0 评论 -
Java 构造方法总结
Java 构造方法总结①方法名和 类名相同②在方法名的前面没有返回值类型的声明③在方法中不能使用return语句返回一个值④在创建对象时,要调用new,如:book b1=new book();⑤当没有指定构造方法时,系统会自动添加无参的构造方法⑥当有指定构造方法时,无论该构造方法是有参,还是无参,系统都不会再自动添加无参的构造方法⑦构造方法的重载...原创 2018-09-29 17:13:00 · 919 阅读 · 0 评论 -
Map梳理
Map梳理类型介绍通用Map:用于在应用程序中管理映射,通常在 java.util 程序包中实现HashMap、Hashtable、Properties、LinkedHashMap、IdentityHashMap、TreeMap、WeakHashMap、ConcurrentHashMap专用Map: 通常我们不必亲自创建此类Map,而是通过某些其他类...原创 2018-10-08 09:59:00 · 246 阅读 · 0 评论 -
java反射机制梳理
java反射机制梳理Java反射简介反射简介编译和运行编译时刻加载类是静态加载类、运行时刻加载类是动态加载类要让Java程序能够运行,那么就得让Java类要被Java虚拟机加载。Java类如果不被Java虚拟机加载,是不能正常运行的。现在我们运行的所有的程序都是在编译期的时候就已经知道了你所需要的那个类的已经被加载了。Java的反射机制是在编译并...原创 2018-10-09 10:12:00 · 184 阅读 · 0 评论 -
java泛型梳理
java泛型梳理概述泛型,即参数化类型,是在JDK1.5之后才开始引入的。所谓参数化类型是指所操作的数据类型在定义时被定义为一个参数,然后在使用时传入具体的类型。这种参数类型可以用在类,接口,方法的创建中,分别被称为泛型类、泛型接口和泛型方法。泛型值存在于java的编译期,编译后生成字节码文件泛型是被擦除的;Java泛型的底层原理泛型思想最早在C+...原创 2018-10-09 14:39:00 · 135 阅读 · 0 评论 -
JAVA的(PO,VO,TO,BO,DAO,POJO)解释
JAVA的(PO,VO,TO,BO,DAO,POJO)解释O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。详解PO(persistant object) 持久对...原创 2018-10-13 09:52:00 · 207 阅读 · 0 评论 -
DTO
DTODTO就是前后端数据交互中用来承载数据的对象,这个对象被填充数据后就会被序列化为json、xml或其他格式,然后通过http等网络协议发送给对方。DTO本身不是业务对象,他是根据UI需求进行设计的。简单来说Model面向业务,我们是通过业务来定义Model的。而DTO是面向UI,通过UI的需求来定义的,通过DTO我们实现了表现层与Model层之间的解耦...原创 2018-10-24 11:20:00 · 320 阅读 · 0 评论 -
串行化
串行化什么是串行化?其实Java序列化和Java串行化都是一样的,都对应英文中的Serializable。一个对象随着创建而存在,随着程序结束而结束。那如果我要保存一个对象的状态呢?Java序列化能够将对象的状态写入byte流存储起来,也从其他地方将byte流读取出来,重新构造一个新的对象。这种机制允许你将对象通过网络进行传播,并且可以随时把对象持久化到数...原创 2018-11-08 15:30:00 · 844 阅读 · 0 评论 -
Optional
Optional概述Java 8开始引入的Optional类,主要解决的问题是空指针异常(NullPointerException)使用of()/ofNullable()of() 和 ofNullable() 方法创建包含值的 Optional。两个方法的不同之处在于如果你把 null 值作为参数传递进去,of() 方法会抛出 NullPointe...原创 2018-12-07 13:52:00 · 128 阅读 · 0 评论 -
Java中的String,StringBuilder,StringBuffer三者的区别
Java中的String,StringBuilder,StringBuffer三者的区别这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > StringString最慢的原因:String为字符串常量,而Str...原创 2018-12-13 10:11:00 · 96 阅读 · 0 评论 -
静态代理和动态代理的区别和联系
静态代理和动态代理的区别和联系代理概述Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题代理解决的问题当两个类需要通信时,引入第三方代理类,将两个类的关系解耦,让我们只了解代理类即可,而且代理的出现还可以让我们完成与另一个类之间的关系的统一管理,但是切记,代理类和委托类要实现相同的接口,因为代理真正调用的还是委托类的方法。...原创 2018-12-13 15:37:00 · 265 阅读 · 0 评论 -
AOP编程实践总结
AOP编程实践总结AOP概述AOP(Aspect-Oriented Programming,面向方面编程)是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。AOP利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为 “Aspect”,即方面。AOP应用A...原创 2018-12-13 17:36:00 · 173 阅读 · 0 评论 -
springboot集成quartz实现任务调度
springboot集成quartz实现任务调度 quartz概述特点强大的调度功能灵活的应用方式分布式和集群能力用到的设计模式Builder 模式factory模式组件模式链式写法体系结构调度器任务触发器架构图spring boot quartzpom配置 <depe...原创 2019-01-01 19:36:00 · 289 阅读 · 0 评论 -
构建器模式
构建器模式 构建器模式// 定义public class User { private final Integer id; private final String name; private Integer age; private String sex; private String phone;...原创 2019-01-21 17:08:00 · 118 阅读 · 0 评论 -
架构模式中的Active Record和Data Mapper
架构模式中的Active Record和Data Mapper 架构模式中的Active Record和Data Mapper概念在简单应用中,领域模型是一种和数据库结构一致的简单结构,对应每个数据库表都有一个领域类,在这种情况下,有必要让每个对象负责数据库的存取过程,这也就是Active Record(活动记录)。领域对象直接鱼数据库表进...原创 2019-01-22 17:48:00 · 503 阅读 · 0 评论 -
java线程基础梳理
java线程基础梳理 java线程概述进程:运行时概念,运行的应用程序,进程间不能共享内存线程:应用程序内并发执行的代码段,可以共享堆内存和方法区内存,而栈内存是独立的。并发理解:在单核机器上,从微观角度来看,一段时间内cup只能执行一个任务,但是因为cup在只执行一段代码段的时候大部分的时间是处于等待程序的,所以可以再开几条程序,然后通...原创 2019-01-23 22:10:00 · 117 阅读 · 0 评论 -
ThreadLocal梳理
ThreadLocal梳理 ThreadLocalThreadLocal提供了线程独有的局部变量,可以在整个线程存活的过程中随时取用,极大地方便了一些逻辑的实现.当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本.常...原创 2019-01-24 13:57:00 · 170 阅读 · 0 评论 -
java内存模型梳理
java内存模型梳理 java内存模型内存模型和内存结构区别它们是两个概念。内存模型是和jvm多线程相关的。内存结构是指的jvm内存结构。内存模型的作用内存模型简称JMMJMM是决定一个线程对共享变量的写入时,能够对另一个线程是否可见。抽象概念。主内存:共享内存变量本地内存:共享变量的副本。共享内存模型指的就是Java...原创 2019-01-24 14:24:00 · 121 阅读 · 0 评论 -
重排序
重排序 重排序重排序只会在多线程场景下遇到,在单线程场景是不会遇到的。cpu会对代码实现执行做优化重排序,不会对有依赖关系性的做重排序。编译器优化的重排序。编译器在不改变单线程程序语义放入前提下,可以重新安排语句的执行顺序。指令级并行的重排序。现代处理器采用了指令级并行技术来将多条指令重叠执行。如果不存在数据依赖性,处理器可以改变语句对...原创 2019-01-24 14:27:00 · 125 阅读 · 0 评论 -
线程池梳理
线程池梳理 线程池目的降低资源消耗通过重复利用已创建的线程降低线程的创建和销毁的消耗提高利用率当任务到达时,可以省去线程的创建时间,直接去执行。方便管理线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性。使用线程池可以统一分配,调优和监控。线程池的四种创建方式newCachedThread...原创 2019-01-24 21:50:00 · 108 阅读 · 0 评论 -
Static、Final、static final
Static、Final、static final Static、Final、static finalfinal可以修饰:属性,方法,类,局部变量(方法中的变量)用final关键字修饰的变量,只能进行一次赋值操作,并且在生存期内不可以改变它的值。在声明final类型的成员变量时就赋初值在声明final类型的成员变量时不赋初值,但在类的...原创 2019-01-25 16:00:00 · 165 阅读 · 0 评论 -
Future、Callback、Promise
Future、Callback、Promise 推荐下边两篇,写的很棒https://juejin.im/post/5b126065e51d4506bd72b7cchttps://www.cnkirito.moe/future-and-promise/ posted @ 2019-...原创 2019-01-25 18:25:00 · 208 阅读 · 0 评论 -
停止线程
停止线程 如何停止线程JDK API推荐使用停止线程的方法Thread.interrupt()方法既然不能直接stop线程,那么只有一种方法可以让线程结束,那就是让run方法运结束。Thread.interrupt()代表的意思是“停止,中止”。但是这个方法需要加入一个判断才可以完成线程的停止。一旦检测到线程处于中断状态,那么就有机会结束ru...原创 2019-01-30 18:36:00 · 94 阅读 · 0 评论 -
队列分类梳理
队列分类单向队列Queue extends Collection 队列实现了 Collection 接口,Collection接口是集合类的顶级接口从前面删除元素,从后面插入元素,跟现实中排队是一样的道理双向队列双端队列支持同时从两端添加或移除元素双向队列在java中的接口规范是Deque,是继承Queue,Queue继承CollectionArrayDequeArr...原创 2019-02-01 11:15:00 · 240 阅读 · 0 评论 -
CAS
CAS CAS算法介绍CAS(比较与交换,Compare and swap) 是一种有名的无锁算法。CAS具有原子性CAS, CPU指令,在大多数处理器架构,包括IA32、Space中采用的都是CAS指令,CAS的语义是“我认为V的值应该为A,如果是,那么将V的值更新为B,否则不要更改该位置,只告诉我这个位置现在的值即可CAS是项 乐观...原创 2019-02-01 11:16:00 · 140 阅读 · 0 评论 -
重入锁
重入锁 重入锁重入锁指的是当前线成功获取锁后,如果再次访问该临界区,则不会对自己产生互斥行为。Java中对ReentrantLock和synchronized都是可重入锁,synchronized由jvm实现可重入即使,ReentrantLock都可重入性基于AQS实现。ReentrantLock还提供公平锁和非公平锁两种模式。重入锁的基...原创 2019-02-01 11:55:00 · 232 阅读 · 0 评论 -
AQS
AQS概述AQS,即AbstractQueuedSynchronizer, 队列同步器,它是Java并发用来构建锁和其他同步组件的基础框架AQS原理AQS的实现依赖内部的同步队列(FIFO双向队列),如果当前线程获取同步状态失败,AQS会将该线程以及等待状态等信息构造成一个Node,将其加入同步队列的尾部,同时阻塞当前线程,当同步状态释放时,唤醒队列的头节点。AQS最主要...原创 2019-02-01 11:57:00 · 106 阅读 · 0 评论 -
Spring事务梳理
Spring事务传播行为概述Spring在TransactionDefinition接口中规定了7种类型的事务传播行为事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。事务的分类Java事务类型分为JDBC事务跟JTA事务JDBC事务:即为上面说的数据库事务中的本地事务,通过connection对象控制管理。JTA事务:JTA指Jav...原创 2019-02-01 15:46:00 · 144 阅读 · 0 评论 -
GC原理---对象可达判断
GC原理---对象可达判断 对象可达判断引用计数算法(Reference Counting)给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计数器都为0的对象就是不可能再被使用的。引用计数算法的实现简单,判断效率也很高,在大部分情况下它都是一个不错的算法。但是Java语言中没有选用引用计...原创 2019-02-10 10:36:00 · 361 阅读 · 0 评论 -
GC原理---垃圾收集算法
GC原理---垃圾收集算法 垃圾收集算法Mark-Sweep(标记-清除算法)标记清除算法分为两个阶段,标记阶段和清除阶段。标记阶段任务是标记出所有需要回收的对象,清除阶段就是清除被标记对象的空间。优缺点:实现简单,容易产生内存碎片。因为会存在大量的空间碎片,因为回收后的空间是不连续的,这样给大对象分配内存的时候可能会提前触发full gc...原创 2019-02-10 10:51:00 · 140 阅读 · 0 评论 -
GC原理---垃圾收集器
GC原理---垃圾收集器 垃圾收集器如果说收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现Serial收集器串行收集器是最古老,最稳定以及效率高的收集器,可能会产生较长的停顿,只使用一个线程去回收。新生代、老年代使用串行回收;新生代复制算法、老年代标记-压缩;垃圾收集的过程中会Stop The World(服务暂停)参数控制:...原创 2019-02-10 11:44:00 · 233 阅读 · 0 评论 -
CountDownLatch CyclicBarrier和 Semaphore
CountDownLatch CyclicBarrier和 Semaphore CountDownLatch CyclicBarrier和 Semaphore原理基于AQS实现。让需要的暂时阻塞的线程,进入一个死循环里面,得到某个条件后再退出循环,以此实现阻塞当前线程的效果。CountDownLatchCountDownLatch一...原创 2019-02-10 15:17:00 · 179 阅读 · 0 评论 -
深入理解ClassLoader
深入理解ClassLoader 深入理解ClassLoaderClassLoader 作用负责将 Class 加载到 JVM 中ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回 这个类的class对象。审查每个类由谁加载(父优先的等级加载机...原创 2019-02-11 17:51:00 · 176 阅读 · 0 评论 -
Arrays.asList()用法梳理
Arrays.asList()用法梳理 Arrays.asList()用法梳理asList概述Arrays是java容器相关操作的工具类,asList方法将Array转换为list,是Array和List之间的桥梁。asList本质使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/rem...原创 2019-02-13 12:05:00 · 627 阅读 · 0 评论 -
equals()和hashCode()使用总结
equals()和hashCode()使用总结 equals()和hashCode()使用总结equals()Object类中的equals方法和“==”是一样的,没有区别,即俩个对象的比较是比较他们的栈内存中存储的内存地址。而String类,Integer类等等一些类,是重写了equals方法,才使得equals和“==不同”,他们比较的...原创 2019-02-13 14:50:00 · 136 阅读 · 0 评论 -
ApplicationContextAware获取bean
ApplicationContextAware概述在某些特殊的情况下,Bean需要实现某个功能,但该功能必须借助于Spring容器才能实现,此时就必须让该Bean先获取Spring容器,然后借助于Spring容器实现该功能。为了让Bean获取它所在的Spring容器,可以让该Bean实现ApplicationContextAware接口。Spring容器会检测容器中的所有Bean...原创 2019-08-17 16:43:00 · 291 阅读 · 0 评论 -
解决SpringMvc后台接收json数据中文乱码问题
解决SpringMvc后台接收json数据中文乱码问题 原因分析使用ajax从前台页面传输数据到后台controller控制器的时候,出现中文乱码其实乱码问题出现的原因,就是由于默认的tomcat配置,接收请求是以ISO-8859-1来转码,导致中文出现了乱码问题,只要能正确的以utf-8来转码,则可以解决乱码问题。普通数据传输,从jsp页...原创 2019-04-16 22:17:00 · 366 阅读 · 0 评论 -
CAS的ABA问题详解
CAS的ABA问题详解 CAS的ABA问题详解ABA问题在多线程场景下CAS会出现ABA问题,关于ABA问题这里简单科普下,例如有2个线程同时对同一个值(初始值为A)进行CAS操作,这三个线程如下1.线程1,期望值为A,欲更新的值为B2.线程2,期望值为A,欲更新的值为B线程1抢先获得CPU时间片,而线程2因为其他原因阻塞了,线程1...原创 2019-03-18 21:05:00 · 281 阅读 · 0 评论