自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 贫血模型与充血模型的个人理解

刚接触到这两个概念的时候作者也是懵逼的,这什么玩意儿,说的这么抽象,直到接触ddd才逐渐对这个两个概念有了一些理解基于目前的理解来说,简单解释一下贫血模型与充血模型贫血模型仅有一些属性与get、set方法,大致可以理解为这是个不完整的对象,仅具有对象的属性,并不具有一些动作举个例子来说,在传统MVC框架中的DO类,仅能支持存储一些数据,并不具有一些能力(不完整可能这就是贫血吧)充血模型相对于贫血模型,充血模型不仅具有属性,还具有能力与动作同样举个栗子????,在ddd设计

2020-12-08 10:49:43 769

转载 java 泛型和object比较

引言我们使用object和泛型做形参,都是为了让这个方法能接收更多类型的对象,让程序变得更健壮,代码复用率更高。当我们回看自己写的代码时会发现,好像使用泛型的地方使用object也可以,使用object的地方使用泛型同样能实现,那么,本文就说一下,泛型和object的却别正题先上举例来说明一下object和泛型的使用场景吧,有这样一个需求:写一个数字排序的算法,我们知道java中的数字类型有Double、Float、Byte、Short、Integer 以及 Long。方法一:每..

2020-07-30 10:42:08 729

原创 关于实现业务的一些个人小想法

作为一名程序员,我个人认为写代码只是我们的手段、工具,支撑好业务,组装成一个好的产品,才是我们的工作,那么为了达到这个目的,我们需要学会如何支撑好产品,作者目前也没有入行太长时间,作为一个新手小白对与目前的想法做一个总结,希望各位前辈能够批评指正同时,如果作者每次有新的想法,新的学习,还会更新这篇博客写代码的过程作者将其拆分成以下几步1、理解业务2、分离出各项功能3、抽象出各种领域能力4、设计数据库5、设计分层,明确每一层要做什么事,层层解耦6、从mapper层自下而上实现业

2020-07-29 10:31:44 631 1

原创 双非院校大三菜鸡的春招小总结(一篇迟到两个月的面经 --b)

好叭,春招就这么轰轰烈烈的结束了,先来汇报一下结果吧 薪人薪事 一面挂(第一次面试答得好水) 金山云 简历被挂 搜狐 简历被挂 作业帮 简历被挂 亚信集团 offer 京东 简历被挂 蘑菇街 简历被挂 紫光云 简历被挂 字节跳动 简历被挂 快手 简历被挂 腾讯 笔试完没消息了。。。 360 笔试完没消息加一。。。 美团 笔试完没消息加二。。。

2020-07-26 16:22:23 1253

原创 个人详解hashmap、concurrenthashmap

本文详述Java语言中的hashmap、concurrenthashmap与treehashmap,使用其他语言的朋友可做参考hashmap首先我们先来看一下hashmap原码开头的部分public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Clonea...

2020-04-13 10:31:15 340 2

原创 JVM学习之垃圾回收机制

垃圾回收算法JVM之中垃圾回收算法分为四种标记清除算法 标记整理算法 复制算法 分代收集算法接下来我们详细学习一下标记清除算法标记清除算法就是分为“标记”和“清除”两个阶段。标记出所有需要回收的对象,标记结束后统一回收。这个套路很简单,也存在不足,后续的算法都是根据这个基础来加以改进的。其实它就是把已死亡的对象标记为空闲内存,然后记录在一个空闲列表中,当我们需要new一...

2020-03-31 08:41:27 338

转载 JAVA锁的优化和膨胀过程

转自:https://www.cnblogs.com/twoheads/p/10148598.html首先说一下锁的优化策略。1,自旋锁自选锁其实就是在拿锁时发现已经有线程拿了锁,自己如果去拿会阻塞自己,这个时候会选择进行一次忙循环尝试。也就是不停循环看是否能等到上个线程自己释放锁。这个问题是基于一个现实考量的:很多拿了锁的线程会很快释放锁。因为一般敏感的操作不会很多。当然这个是一个不...

2020-03-26 07:59:55 418

原创 排序算法之快排

原理大家可以参考:https://blog.csdn.net/pengzonglu7292/article/details/84938910图解讲的很清楚下面是我的实现public class QuickSort { public static void quickSort(int[] arr){ sort(arr,0,arr.length-1); }...

2020-03-24 12:23:51 169

原创 JVM学习之内存区域

今天我们来研究一下JVM的内存管理Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK. 1.8 和之前的版本略有不同,下面会介绍到。先偷两张图来形象的介绍一下JVM里面的内存管理JDK 1.8 之前:​JDK 1.8 :​线程私有的: 程序计数器 虚拟机栈 本地方法栈 线程共享的:...

2020-03-19 08:33:23 208

原创 排序算法之计数排序

原理可以参考这篇博客:https://www.cnblogs.com/xiaochuan94/p/11198610.html是作者筛选过的讲的较为清晰的一篇下面是我的实现public static void countSort(int[] arr){ //找到最大值与最小值 int max=arr[0]; int min=arr[...

2020-03-18 03:42:37 194

原创 排序算法之堆排序

原理可以看这里:https://www.jianshu.com/p/0d383d294a80这位朋友讲的相当透彻下面是我的实现,可以参考public class HeapSort { /** * 交换值 * @param arr * @param a(第一个数在数组中位置) * @param b(第二个数在数组中位置) * @...

2020-03-14 07:33:07 131

原创 JVM学习之双亲委派模型

类加载器 BootstrapClassLoader(启动类加载器) :最顶层的加载类,由C++实现,负责加载 JAVA_HOME/jre/lib/rt.jar目录下的jar包和类或者或被 -Xbootclasspath参数指定的路径中的所有类,用于提供JVM所需要的类。 ExtensionClassLoader(扩展类加载器) :java语言编写,派生自java.lang.Clas...

2020-03-13 08:40:16 181

原创 redis学习(四)主从结构与哨兵机制

什么是主从结构如图,一个主服务器可以有多个从服务器,从服务器下面还可以有从服务器,这是redis的级联结构。主服务器在数据发生变化时,将数据同步给从服务器,保持数据的弱一致性。为什么redis要搭建主从结构从作者个人的理解来看1、降低主服务器压力,由于从服务器与主服务器数据定期同步,所以我们在进行读数据操作的时候,就可以访问从服务器,只有在写操作的时候才需要访问主服务器,...

2020-03-12 08:47:26 319

原创 Python下载库超时Connection to files.pythonhosted.org timed out问题解决(换源)

一年没用Python,这突然有节课老师让用Python,用就用吧,一来就是一个下马威,pip版本太低不支持,更新还更新不了!!!就是超时,官网也进不去,抓狂中!!!按照提示命令更新,更新超时哇呀呀呀,我们还是冷静下来分析以下问题吧,错误信息提示连接python库超时,官网也进不去可能是因为国家对外网的屏蔽,所以我们无法访问到境外的python服务器,所以连接超时既然猜...

2020-03-10 11:10:47 15214 5

原创 redis学习(三)缓存雪崩与缓存穿透

缓存雪崩缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。可能的情况有以下两种:1、全部数据设置的缓存时间同时到期,导致所有请求全部打在关系型数据库上,造成请求雪崩,很有可能把数据库压崩导致服务宕机2、redis服务因为某些原因宕机,导致所有请求全部打在关系型数据库上解决方案:事前:尽量保证整个 redis 集群的高可用性,设...

2020-03-10 01:50:04 113

原创 redis学习(二)过期与淘汰机制

redis 设置过期时间redis可以为缓存数据的key设置expire time也就是过期时间,当数据过期之后,通过过期策略来将数据清理。通过数据库判断数据是否过期无疑是比通过程序判断要好的多。redis的过期策略有两种分别是定期删除和懒惰删除定期删除:redis默认是每隔 100ms 就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除。 这里不是遍历所有的key,数据...

2020-03-10 01:31:23 137

原创 redis学习(一)redis入门

什么是redis 本质上来讲,redis就是一款数据库,用于存储我们程序中的数据,它属于nosql数据库的一种(即运行在内存中的数据库),在我们常见的关系型数据库(如MySQL)使用中,一旦出现上千并发量的情况,由于磁盘读写速度的限制,无法在极短时间内完成大量读写,数据库非常容易瘫痪,导致服务宕机。为了解决这个问题,非关系型数据库应运而生,nosql数据库直接运行在内存中,可以支持每秒十几万...

2020-03-10 00:46:43 162

原创 操作系统学习之VMware虚拟机双系统安装(windows7+opensuse其他搭配可做参考)

进行这个实验之前我们需要做一些前期准备1、下载并安装VMware2、下载windows和opensuse的镜像前期准备的具体步骤作者在此省略,网上有挺多的教程实验开始1、创建一个虚拟机配置可以选择推荐也可以选择自定义2、安装第一个系统镜像(强烈推荐先windows,原因详见总结)选择win7镜像后点击下一步,选择你想要装的版本,我选择win7专业版,是...

2020-03-09 00:13:24 850

原创 从零搭建Dubbo+spring boot分布式框架

随着流量的增大,常规的垂直框架已经逐渐无法应付,分布式框架应运而生,Dubbo是其中极有代表性的一个,今天我们来尝试手动搭建一个dubbo框架Dubbo从官网拿一张图来说明dubbo的架构,provider提供服务,在启动的时候向注册中心(中介)说明自己提供什么服务,consumer消费服务,启动的时候,向注册中心询问自己想要的服务。搭建我的搭建思路是有common为serv...

2020-03-06 08:32:03 1586

原创 常用Git命令

总结一下常用的Git命令,希望能帮助到大家git clone 远程仓库地址 :克隆至本地git clone 远程仓库地址 -b 分支名 :克隆分支到本地git add :添加文件到暂存区git commit -m "" :添加备注git status :查看状态git pull :从远程仓库更新代码git push : 为远程仓库更新代码g...

2020-03-06 00:05:53 208

原创 java项目连接oracle数据库全过程(包括navicat连接Oracle)

今天我们来一起探讨一下Java项目连接Oracle数据库的全过程首先为了能够看到数据库的数据,我们需要使用一个可视化插件,作者强烈推荐navicat premium这款软件,它可以连接多种主流数据库,相当好用首先建立oracle与navicat的连接,oracle的端口默认为1521,如果没有修改的话,就不用管 ,将自己设置的用户名密码填入完成之后测试连接,因为我的Oracl...

2020-01-11 11:28:53 3054 1

原创 数据库取出text类型数据与解决error:Mybatis No enum constant org.apache.ibatis.type.JdbcType.TEXT

近日作者在从数据库中拿取text类型的数据时遇到了这个errorMybatis No enum constant org.apache.ibatis.type.JdbcType.TEXT当时我按照一贯的操作,将jdbcType设置为和数据库保持一致的text类型,结果抛出了上述error,说在jdbcType这个枚举类里面没有text那我们就看一下jdbcType的原码好了pub...

2019-12-17 21:29:14 3927

转载 github新建本地仓库并将代码提交到远程仓库

github新建本地仓库并将代码提交到远程仓库假设有一个工程需要提交到github相关仓库中,以前自己将工程代码提交到远程仓库都是这么干的,如下:1、在github上新建好仓库,假设仓库名为:gitRepo。2、使用命令git clone [email protected]:yourgithubID/gitRepo.git 克隆到本地相应的位置。3、然后将要上传的工程代码拷贝到本地的git...

2019-11-29 16:30:21 439

转载 @RequestParam,@PathParam,@PathVariable等注解区别

版权声明:本文为CSDN博主「一年e度的夏天」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/u011410529/article/details/66974974@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@...

2019-11-28 20:08:48 331

原创 深入理解for循环内部执行顺序(案例+详解)

作者在近日使用for循环的过程中遇到了一个疑问,给大家分享出来,依旧尽量通过白话解释,希望能为大家提供一点点帮助int a = 0,b = 0;for (a = 0; a < 1; a++){ System.out.println(a);}for (b = 0; b < 1; ++b){ System.out.println(b);}两个循环,一个使用...

2019-11-27 18:07:36 6653 1

原创 详解i++与++i的区别

这个问题是每个程序猿都会遇到过的问题,也很简单,不过作者近日学习过程中突然发现自己好像对于这个东西掌握的并没有十分的透彻,于是今天整理一下,一如既往,尽可能用最通俗易懂文字讲解ok,闲话少叙,咱们进入正题共同点都是变量自增,执行成功后变量的值都会+1int a = 0,b = 0;++a;b++;System.out.println("a:" + a + ",b:" + b...

2019-11-27 17:49:38 596

原创 sql——left join/right join/inner join/full outer join 最清晰解释

多表连接join子句有三种分类,inner join(默认,查询满足条件的选中列),left join(查询满足条件的左表的列和选中列),right join(查询满足条件的右表的列和选中列),full outer join(查询全部)语言有些难以理解,下面作者会通过画图给大家具体解释他们之间的差别假设红色代表左表,蓝色代表右表,中间重叠部分代表我们需要关联两表查询的列...

2019-10-30 18:20:40 257

原创 SQL——常用语句(持续更新)

关于sql语句操作数据库,其实说白了就是对数据库进行增删改查操作,无论怎么写,都逃不出增删改查select(选择)语句基本结构:select *(列名,如果选择多列中间用","间隔,*代表全部)from table(表名)。添加控制:1、where 列名=(>、<、>=、<=都可) 值 (也可以使用between控制在两值之间)归类:order...

2019-10-30 17:57:56 116 1

转载 初学者的疑惑,到底什么是javaBean?

版权声明:本文为CSDN博主「山岚_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/zhouvip666/article/details/83867401-------------------------------------------------------------------------...

2019-10-23 11:24:32 272

原创 力扣leetcode第997题Java解法——击败100%

发篇博客纪念作者第一道击败100%的算法(并不是每次都能运行这么快,可能跟用例有关)题目如下在一个小镇里,按从 1 到 N 标记了N 个人。传言称,这些人中有一个是小镇上的秘密法官。如果小镇的法官真的存在,那么:小镇的法官不相信任何人。每个人(除了小镇法官外)都信任小镇的法官。只有一个人同时满足属性 1 和属性 2 。给定数组trust,该数组由信任对 trust...

2019-09-25 17:40:16 347

原创 JS——变量提升与函数提升

今天我们来学习一下JS特殊的变量提升属性与函数提升属性变量提升先举一个例子吧,我在定义变量a之前调用它,控制台没有报错,但是弹框显示undefined。<script type="text/javascript"> alert(a); var a=1;</script>以上情况出现的原因是JS的变量提升机制,将变量定义提升到了所在块最开始的地方...

2019-09-20 17:14:10 145

原创 Java——详解Integer128陷阱

今天我们来一起探讨一下Java的128陷阱首先我们通过代码对128陷阱进行一个认知public static void main(String[] args){ Integer a = 127 ; Integer b = 127 ; Integer c = 128 ; Integer d = 128 ; Integer e = 1000 ; Int...

2019-08-19 07:43:43 1344 5

原创 Java——与数据库交互

今天我们来了解一下通过Java与数据库进行交互下面是作者写的一个简单的交互方法,sql变量是sql语句,strs变量是我们想要拿取的数据的key值,简单举例如下: String sql = "select *from user"; String[] strs = {"id","userName","sex","status"}; public...

2019-08-11 04:15:26 2053

原创 Can not issue data manipulation statements with executeQuery().解决方案

这两天作者在进行数据库交互的时候,遇到了这个error,显示错误的是这一句代码 statement.executeQuery(sql);作者百思不得其解,祭出大杀器,内事不决问百度,看了两篇博客,两个大佬提出了不同的解决方案,但大致相同executeQurery()改成excuteUpdate() executeQurery()改成execute()那显然问题出在execu...

2019-08-05 08:31:38 23397 5

原创 Java——使用链表出现空指针异常 Exception in thread "main" java.lang.NullPointerException

作者在刚学习链表的时候,有一次碰到空指针异常,怎么都想不通,想到大家可能碰见同样的问题,就将作者学习的一些过程分享出来,希望对大家能够有一丢丢帮助 while(result!=null){ result.val=l1.val+l2.val; l1=l1.next; l2=l2.next; result=result.next; }按照链表的结构,我们想要...

2019-08-05 00:19:49 4986 1

原创 Java——通过ajax与servlet进行简单的前后交互

今天我们一起来学习一下通过ajax和servlet实现一个简单的登录验证的前后交互首先我们通过ajax将前端页面得到的数据传到我们的servlet中,也ajax将servlet中传回的返回值进行处理<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Inser...

2019-08-04 23:42:35 1925 1

原创 HTML5——CSS3新增伪类选择器(常用)

结构性伪类选择器:first-child 第一个子节点、:last-child 最后1个子节点、:nth-child(n) 第n个子节点、:nth-last-child(n) 倒数第n个子节点、:only-child 唯一的子节点:nth-child(n)、:nth-last-child(n)还有一些特殊用法,通过括号内的东西来限制选择:1、odd/event:第奇数个...

2019-08-03 10:19:40 878

原创 通过JS修改CSS样式

通过JS修改CSS样式有两种方法:修改某一属性的值 修改某一元素的class名,使其被别的样式修饰修改某一属性的值<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title&g...

2019-08-03 08:25:19 25964 2

原创 css选择器简介及优先级

本文作者依旧用大白话来解释css样式单文件后缀名: .css作用:控制网页内容的外观(形象点表述相当于为建好的毛胚房装修)使用:css常见四种基本用法链接外部样式文件(建议使用) 导入外部样式文件(不推荐使用) 使用内部样式文件 使用行内样式文件链接外部样式写法下面就是代表链接到与网页同一目录下的一个css文件夹中名叫 b的css文件<link ...

2019-08-03 08:09:39 145

原创 Java常用方法(持续更新)

String类:split 跟据()内的元素切割字符串用法:a.split("s");(a是字符串类型变量)parseInt 将字符串强行转化int用法:int x =Integer.parseInt("9");同样还有parseFloat将字符串强制转化为浮点型用法:float a = Floateger.parseFloat("9");len...

2019-08-01 09:19:54 118

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除