java
文章平均质量分 69
菜鸟在沉思
哈喽程序员
展开
-
领域驱动设计在互联网业务开发中的实践
1.以数据为驱动,查数据库-》处理数据-》前端,小系统没有复杂的业务,对象是数据的载体,没有行为。随着业务的复杂,代码逻辑散落在大量的方法中,代码只是对数据的处理会使我们忘记代码的目的,领域驱动设计使对象包含行为,将数据和行为封装在一起,并与现实世界中的业务对象相映射。转载 2021-06-07 17:21:23 · 106 阅读 · 0 评论 -
Java有5种方式来创建对象
Java有5种方式来创建对象原创 2021-05-21 10:55:05 · 51 阅读 · 0 评论 -
idea编辑器基本操作与进阶操作
原创 2021-05-17 12:32:45 · 157 阅读 · 0 评论 -
代理模式之动态代理、静态代理
开闭原则:在编写程序的过程中,软件的所有对象应该是对扩展是开放的,而对修改是关闭的原创 2021-03-23 20:20:59 · 133 阅读 · 0 评论 -
String、Stringbuffer和StringBuilder
文章目录1.String2.StringBuffer3.StringBuilder4.三者区别4.1String 类型和 StringBuffer 的主要性能区别4.2字符串拼接(特别情况)StringBuffer和StringBuilder类的区别1.String字符串常量,字符串长度不可变。Java 中 String 是 immutable(不可变)的。private final char value [];用于存放字符的数组被声明为 final 的,因此只能赋值一次,不可再更改。2.S原创 2021-03-19 20:21:56 · 72 阅读 · 0 评论 -
重载(编译期多态),重写(运行时多态)
多态顾名思义,是多种状态,是指方法有多种不同的状态,在编译时或运行时才可以确定具体的状态,这种使程序具有多种状态的技术就叫做多态,在面向对象语言中,接口的多种不同的实现方式即为多态。原创 2021-03-17 17:24:54 · 2310 阅读 · 0 评论 -
JVM的内存
文章目录1.JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)1.JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)栈区:每个线程包含一个栈区,栈中只保存方法中(不包括对象的成员变量)的基础数据类型和自定义对象的引用(不是对象),对象都存放在堆区中每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。堆区:存储原创 2021-03-16 09:33:44 · 70 阅读 · 0 评论 -
类初始化和实例初始化
1.类初始化过程一个类要创建实例需要先加载并初始化该类main方法所在的类需要先加载和初始化一个子类要初始化需要先初始化父类一个类初始化就是执行 clinit()方法clinit方法由静态类变量显示赋值代码和静态代码块组成从上到下执行。只执行一次2.实例初始化过程实例初始化就是执行init()方法init()方法可能重载有多个,有几个构造器就有几个init方法init()方法由非静态实例变量显示赋值代码和非静态代码块、对应构造器代码组成非静态实例变量显示赋值代码原创 2021-03-07 09:30:07 · 456 阅读 · 1 评论 -
SingLeton饿汉式与懒汉式
- 在内部类被加载和初始化时,才创建INSTANCE实例对象- 静态内部类不会随着外部类加载和初始化而初始化,它要独自加载和初始化- 因为是在内部类加载和初始化时。创建的,因此是线程安全的原创 2021-03-06 23:03:33 · 157 阅读 · 1 评论 -
volatile保证多线程DCL双端检测
进入前后判断有隐患,指令重排,会出异常加入volatile可以防止指令重排指令重排只会保证单例运行的合理性,不会关心多线程语义的一致性原创 2021-03-06 14:24:36 · 222 阅读 · 0 评论 -
springboot加载rest风格的源码
springboot加载rest风格的源码原创 2021-03-05 23:41:57 · 116 阅读 · 1 评论 -
Spring AOP的重要概念
文章目录0.Spring AOP的重要概念1.通知:就是会在目标方法执行前后执行的方法1.1.1JoinPoint 对象1.1.2前置通知@Before1.1.3环绕通知@Around1.1.4后置返回通知@AfterReturning1.1.5异常通知 @AfterThrowing1.1.6后置通知@After2.定义切入点函数:应用通知进行增强的目标方法2.1直接把切入点函数作为值传递给通知类型2.2通过@pointcut2.3execution基本格式3.连接点:连接点就是可以应用通知进行增强的方法4原创 2021-03-05 11:28:17 · 261 阅读 · 2 评论 -
JVM中的泛型
所有的泛型在编译阶段就已经被处理成了普通类和方法。原创 2021-03-04 08:35:16 · 300 阅读 · 1 评论 -
JAVA集合详解(一)
文章目录1.List,Map,Set存取的特点2.ArrayList、Vector、LinkedList的存储性能和特性3.ArrayList和LinkedList的区别4.HashMap和Hashtable的区别4.1继承的父类不同4.2线程安全性不同4.3key和value是否允许null值4.4内部实现使用的数组初始化和扩容方式不同4.5迭代器不同5.快速失败(fail-fast)和安全失败(fail-safe)的区别6.Iterator和ListIterator的区别6.1ListIterator原创 2021-03-03 16:48:07 · 1264 阅读 · 9 评论 -
内部锁池和等待池
Java平台中,每个对象都有一个唯一与之对应的内部锁(Monitor)。Java虚拟机会为每个对象维护两个“队列”(姑且称之为“队列”,尽管它不一定符合数据结构上队列的“先进先出”原则)原创 2021-03-03 11:31:15 · 259 阅读 · 3 评论 -
volatile关键字
volatile是java中的一个类型修饰符。它是被设计用来修饰被不同线程访问和修改的变量。如果不加入volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器 失去大量优化的机会。原创 2021-03-02 10:11:03 · 69 阅读 · 0 评论 -
java注解(Annotation)
目录1.描述2.定义3.元注解3.1@Retention3.2@Documented3.3@Target3.4@Inherited3.5@Repeatable4.注解的属性5.Java 内置的注解5.1 @Deprecated5.2@Override5.3@SuppressWarnings5.4@SafeVarargs5.5@FunctionalInterface6.注解的提取6.1注解与反射7.注解应用实例7.1JUnit 测试框架7.2mybatis中的@Param()注解1.描述官方:注解是一原创 2021-02-25 20:11:03 · 84 阅读 · 1 评论