![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 88
一个儒雅随和的男子
专注于后端技术
展开
-
池化技术的总结
总结了开发中对系统性能影响比较大的池化技术。原创 2024-02-04 10:55:50 · 1438 阅读 · 2 评论 -
面试不是很理想,总结一下
针对今天和昨天面试问题回答的不是很流程做出的总结,附上较为完整的答案。vue相关的问题1.vue的父子组件的通信1).使用 import 自定义名称 from “./文件路径” 来引入到当前文件,不引入是不能使用的2). components:{}中注册组件,v-home 为组件名, Home 要与引入时的自定义名称一致。总结:将想要传递给子组件的数据定义在data中,在使用子组件时,动态绑定该数据名。在子组件中,使用 props 接收父组件传递过来的数据这样就实现了父子组件之间的通信原创 2021-12-29 22:38:13 · 220 阅读 · 0 评论 -
深入理解原型设计模式
标题应用场景考虑这样一个实际用例:订单处理系统。现有一个订单处理的系统,里面有一个保存订单的业务功能。在这个业务功能中,客户有这样一个需求:每当订单的预定产品数量超过1000,就把订单拆成两份保存。如果拆成两份订单后,它还超过1000,那就继续拆分,直到订单订单少于1000为止。至于为什么要拆分的话,可能就是后续工作人员只能处理少于1000产品数的订单,这里不要太纠结。不使用模式的解决方案分析一下功能需求,其实这种应用场景并不算难,一共就一个功能,多加几个if语句,但是真的那么简单吗?下面我们查实=原创 2021-03-24 14:30:44 · 1101 阅读 · 0 评论 -
十分钟就能看懂的观察者模式
观察者模式的应用场景来考虑实际生活中订阅报纸的过程,这里简单总结了一下订阅报纸的基本流程,(互联网时代很少人这样做哈)。1.首先按照自己的需要选择合适的报纸,具体的报刊杂志目录可以从邮局获取。2.选择好以后,就到邮局取填写订阅单,同时缴纳费用。完了以后,就完成了订阅过程,就下来就是耐心等待了,报社会按照出报时间推出报纸,然后报纸会被送到每个订阅人手里。大致过程如下图所示。从订阅者的角度来看,我们好像就是直接与邮局订阅的报纸,但是其实邮局差不多就是一个中介,邮局就拿着订阅信息交给报社,而报社会定期原创 2021-03-19 19:41:52 · 1180 阅读 · 2 评论 -
深入浅出简单工厂模式
学简单工厂设计模式之前,让我们先来了解一下。首先抛出几个问题,什么是接口?接口有什么作用?接口如何使用?接口是什么?java中的接口类似于一个抽象类,或者叫它为一个特殊的抽象类,跟一般抽象类相比,接口所有的属性都是公有的,而且为常量,所有的方法都是抽象方法。也就是说,接口里面只有方法的定义,没有方法的实现。用来干嘛?通常用接口来定义实现类的外观,也就是定义实现类的行为,用来约束实现类的行为。接口相当于一份契约,根据外部应用需要的功能,约定了实现类应该要实现的功能,但是具体怎么实现并不是接口该关心的事原创 2021-03-17 16:54:48 · 455 阅读 · 5 评论 -
类加载器及类的加载过程详细讲解
进程:做一个简单的解释,你的硬盘上有一个简单的程序,这个程序叫QQ.exe,这个就叫进程,这个进程是一个静态的概念,原创 2021-03-11 13:57:39 · 1043 阅读 · 0 评论 -
java堆OutOfMemoryError异常
除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下文称OOM)异常的可能,这边文章将讨论那还找那个情况下有可能发生内存溢出。 了解JVM的都知道,java是有自动内存管理机制的,在java对象被判定为死亡以后,GC将死亡的对象进行回收。java虚拟机主要是通过引用计数器和可达性分析进行判断对象是否死亡,而主流的java虚拟机都是使用可达性分析来判断对象是否死亡。根据Java虚拟机判断对象是否死亡的算法,也就是说内存泄漏一定要满足两个条件: 1.对象是可达的;原创 2021-03-10 14:59:36 · 249 阅读 · 5 评论 -
java面试题-面向对象编程
面向对象什么是对象对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。类的实例化可生成对象,一个对象的生命周期包括三个阶段:创建、调用和死亡。当某个对象没有被调用时,java虚拟机判定为死亡,即将被垃圾收集器回收。Java的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。当系统内存用尽或调用System.gc()要求垃圾回收时,垃圾回收程与系统同步运行。面向对象的特征三个特征,封装,继承和多态。封原创 2020-11-09 19:11:38 · 277 阅读 · 0 评论 -
Java虚拟机之垃圾回收,标记-清除算法
**1.分代收集理论1)弱分代假说:绝大多数对象都是朝生夕灭的2)强分代假说:熬过越多次垃圾收集过程的对象就越难以消灭这两种假说奠定了许多java虚拟机的垃圾回收器的设计,“Minor GC”“Major GC”“Full GC”**垃圾回收,前面两篇已经讲了怎么判定对象为“垃圾”,第一种就是计数器算法,第二种就是可达性分析算法,这里就不再过多的描述了。...原创 2020-11-04 09:58:58 · 218 阅读 · 0 评论 -
线程安全问题的详细描述
线程安全可能是一个复杂的问题,在没有同步锁的情况下,多个线程执行顺序不可预测的,甚至会产生奇怪的结果,出现脏数据等情况。如下文代码所示:public class UnsafeSequence{ private int value = 0; public int getNext() { value++ }}上述代码如果被多个线程同时调用, 将产生各种奇怪的结果。如下图所示,A表示一个线程,B表示为另外一个线程。当A与B进程并发交替执行的时候,并不加同步锁的时候,value将产生不同的结原创 2020-11-03 21:50:48 · 127 阅读 · 0 评论 -
java虚拟机之对象的探秘
对于java程序员来说,在虚拟机自动内存管理理机制的协助下,不在像C++/C那样需要new创建一个对象,又要delete销毁一个对象的空间,因此不容易出现内存溢出这种情况。C++中的new和delete不容易操作,C++比较强是基于程序员本身比较牛。当然C++学的好,那么java一定没有什么问题。目录1. 对象是否死亡?1.1引用计数算法1.2 可达性分析1. 对象是否死亡?java堆里面几乎放着所有实例对象,垃圾收集器在对对象回收之前首先判断的是,对象是不是已经死亡了。如果...原创 2020-09-01 11:24:44 · 187 阅读 · 0 评论 -
SpringCloud全家桶之服务注册与发现(实战篇,陆续更新中........)
在做分布式微服之前,先看看我的我的项目结构的目录,主要有两个Eureka服务组成的集群,其名字如图片中所示,名字就是cloud-eurka-server7001和cloud-eurka-server7001两个;第二部分为服务提供者,就是图中画红圈部分的coud-provider-payment8002和cloud-payment-8001,也是有两个服务器组成的微服集群,电脑好的通过可以多创建几个微服作为集群;最后就是微服的消费者,也可以创建多个微服作为集群,但是我电脑已经带不动了,所以仅一个,就是图..原创 2020-08-24 23:36:59 · 171 阅读 · 0 评论 -
java虚拟机之运行时常量池、直接内存
1.运行时常量池运行时常量池,是方法区一部分,原创 2020-08-20 10:12:04 · 100 阅读 · 0 评论 -
java虚拟机之Java堆、方法区
由于git官网为原创 2020-08-19 14:50:07 · 169 阅读 · 0 评论 -
java虚拟机1
最近这几年,关于java虚拟机有的面试题确实在提高,尤其是大厂的面试。而有关于Java虚拟机,确实有助于提高java程序员的编程能力,在JVM性能调优更是必不可少的。如阿里巴巴这样的大公司,也出了自己的JVM,就是TAOBAOVM。JVM做大的作用便是实现程序的跨平台运行。下面讲义HotSpot虚拟机为例,介绍一下虚拟机。从今天起JVM系列开始了,自嗨而已,并不高深,不小心看到此篇文章的同学,献丑了。1.java的运行过程,如下图所示,java源代码,即我们平时写代码的时候编写的.java文件的代码..原创 2020-08-12 21:55:53 · 114 阅读 · 0 评论 -
数据结构之插入排序(java实现)
插入排序法思想:插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。插入排序思路图:代码实现:import java.util.Arrays...原创 2019-11-12 18:05:49 · 181 阅读 · 0 评论 -
二维数组和稀疏数组的相互转换
稀疏数组的基本介绍二维数组的很多值都是默认为0,因此记录了很多没有意义的数据,所以需要稀疏数组来记录有效数字,以减少程序的规模。二维数组转稀疏数组的思路:1、遍历 原始的二维数组,得到有效数据的个数sum2、根据sum就可以创建稀疏数组sparseArr int[sum+1][3]3、二维数第一行的数据组的有效数据存入稀疏数组中稀疏数组转原始的二维数组的思路:1.先读取稀疏数组的第一...原创 2019-11-10 21:29:14 · 97 阅读 · 0 评论 -
Spring事务管理源码(上)
此篇文章的主要内容有如下部分:事务是什么?事务与java之间的关系 事务的原则性内容 事务的实现方式1、事务是什么?事务是正确执行-系列的操作(或动作) ,使得数据库从- -种状态转换成另一种状态,且保证操作全部成功,或者全部失败。2、事务的原则是什么?事务必须服从ISO/IEC所制定的ACID原则ACID原则:原子性:即不可分割性,事务要么全执行,要么全部不...原创 2019-11-01 20:31:02 · 110 阅读 · 0 评论 -
使用XML方式开发AOP
下图为项目的目录结构,主要是需要一个切面类、一个目标类和一个配置XML文件。其原理大概为,切面类对目标的进行通知。接下来就是代码展示了:XML配置切面的代码为<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins...原创 2019-10-31 20:41:59 · 110 阅读 · 0 评论 -
基于使用AspectJ实现AOP,注解AOP开发
1.环境配置,简单的说明。Spring AOP和Aspect相关jar包,这里直接上代码了 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> ...原创 2019-10-31 17:08:03 · 134 阅读 · 0 评论 -
org.springframework.beans.BeanInstantiationException: Failed to instantiate求解,bug半天了
这个问题bug了老半天,配置spring bean是出的问题,测试一直报错,在单元测试中去掉@RunWith(SpringJUnit4ClassRunner.class)就报空指针异常。org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.test.cont...原创 2019-10-26 22:03:01 · 3965 阅读 · 3 评论 -
Spring配置文件Bean.xml与注解的区别和细节
账户的业务层实现类曾经XML的配置:<bean id=“accountService” class=“com.itheima.service.impl.AccountServiceImpl” scope="" init-method="" destroy-method=""> <property name="" value="" | ref="">...原创 2019-10-22 21:57:50 · 1149 阅读 · 0 评论 -
把bean的创建交给spring来管理
spring对bean的管理细节1.创建bean的三种方式2.bean对象的作用范围3.bean对象的生命周期-创建Bean的三种方式 --><第一种方式:使用默认构造函数创建。 在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时。 采用的就是默认构造函数创建bean对象,此时如果类中没有默认构造...原创 2019-10-20 21:30:40 · 1277 阅读 · 0 评论