自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CopyOnWriteArrayList 与 Collections.synchronizedList

疑问点:前者有两个get(int index)重载方法,怎么判断什么时候用哪个?源码对比:CopyOnWriteArrayList 在写时会加锁,同时操作时会拷贝一个新的数组以存放新的字段 public void add(int index, E element) { final ReentrantLock lock = l.lock; lock.lock(); try { ..

2021-09-10 16:44:06 374

原创 JSON与Map互转

json转Map 用fastJSON最便捷 private static Map<String,Object> toMap(String jsonStr) { com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(jsonStr); HashMap<Strin...

2020-01-08 17:29:27 434

原创 Web spi service 三层的关系和Ereuka 注册中心的关系

web 层是控制器层,主要的作用的是做交互spi 准确来说不算一层,它是Web跟Service 通信的协议的约定,是service 接口的定义和规定。即对service 的名字,入参,出参,异常处理等的定义和规定。service 层是业务处理层,主要作用的是对数据的操作,接口的具体实现。web 层和service 层之间的通信具体是借助spi,即已经定义好的约定进行通信。...

2019-07-26 22:30:39 562 1

原创 系统迁移到固态硬盘--高贵的ASUS版

背景:这几天用着公司的笔记本,明明配置还没我自己的电脑好,但是响应速度却比我的好太多,刚开始还以为只是因为公司的笔记本比较新,其实并不然,一切都是多亏公司笔记本的固态。我的情况是这样的,由于我的系统盘比固态大,所以之前安装好固态后就懒得继续搞,这次被刺激之后下定决心,办它!不就是系统迁移嘛。(以下的操作都只针对系统比固态大的情况,如果是固态很大,自动略过步骤1,2)步骤1:给c盘瘦身:...

2019-07-21 20:06:00 1247

原创 通过OSS上传图片到阿里云服务器

准备工作:注入oss 依赖包 <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.5.0...

2019-07-20 15:16:06 867

原创 Spring整合mybatis并使用driud数据库连接池,MySQL报错

第一类错误:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any pa...

2019-02-16 17:23:25 648

转载 深入理解Spring的两大特征(IOC和AOP)

众所周知,Spring的核心特性就是IOC和AOP,IOC(Inversion of Control),即“控制反转”;AOP(Aspect-OrientedProgramming),即“面向切面编程”。参考书《Spring In Action》,下面分享一下我对这两大特性的个人理解。IOC:IOC,另外一种说法叫DI(Dependency Injection),即依赖注入。它并不是一种技术实...

2018-11-16 11:30:46 148

原创 LeetCode第二题

题目:You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and ret...

2018-11-16 11:29:22 209

原创 LeetCode第一题

第一题Two Sum解法一:穷举 public int[] twoSum(int[] nums, int target) { int [] result = new int[2]; for(int i = 0; i&lt;nums.length;i++){ for(int j = i + 1; j&lt;nu...

2018-11-10 13:13:07 114

转载 关键字:高并发,避免超卖,主从库,缓存......

先来就库存超卖的问题作描述:一般电子商务网站都会遇到如团购、秒杀、特价之类的活动,而这样的活动有一个共同的特点就是访问量激增、上千甚至上万人抢购一个商品。然而,作为活动商品,库存肯定是很有限的,如何控制库存不让出现超买,以防止造成不必要的损失是众多电子商务网站程序员头疼的问题,这同时也是最基本的问题。从技术方面剖析,很多人肯定会想到事务,但是事务是控制库存超卖的必要条件,但不是充分必要条件。...

2018-09-18 02:48:57 159

原创 正则表达式的基础认识

 **次数符号**```* 0或多次+ 1或多次?0或1次{n} 恰n次{n,m} 从n到m次```**其他符号**符号    等价形式```\d        [0-9]\D      [^0-9]  \w         [a-zA-Z_0-9]\W         [^a-zA-Z_0-9]\s         [\t\n\r\f]\S         [...

2018-09-08 22:14:21 116

转载 深入理解JVM(一)——基本原理(扫盲篇)

前言  JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点。运行流程  我们都知道java一直宣传的口号是:一次编译,到处运行。那么它如何实现的呢?我们看下图:  java程序经过一次编译之后,将java代码编译为字节码也就是class文件,然后在不同的操作系统上依靠不同的j...

2018-07-04 21:14:55 206

转载 dbcp,c3po等几种常见数据库连接池的使用比较

感觉在介绍之前有必要阐述一下连接池的几个概念,有助于后边一些文字的理解。最原始的数据库使用就是打开一个连接并进行使用,使用过后一定要关闭连接释放资源。由于频繁的打开和关闭连接对jvm包括数据库都有一定的资源负荷,尤其应用压力较大时资源占用比较多容易产生性能问题。由此使用连接池的作用就显现出来,他的原理其实不复杂:先打开一定数量的数据库连接,当使用的时候分配给调用者,调用完毕后返回给连接池,注意返回...

2018-07-01 13:50:01 541

转载 JDBC连接Oracle数据库实例

本文给出一个通过JDBC连接Oracle数据库的实例,希望对JDBC初学者有所帮助。我没有像很多例子那样一个函数就把整个JDBC的操作全部完成,这样的代码在企业项目开发中一般是不能通过审核的,我现在工作的公司就对代码规范有严格要求。比如,“一个函数,只做一件事”。这意味着你不能把一大堆功能代码放在一个函数里,需要拆分。另外,一个函数的代码行数也有严格要求,一般不能超过80行。所以,那些一个函数几百...

2018-07-01 13:48:10 589

转载 Statement 和 PreparedStatement之间的关系和区别

Statement 和 PreparedStatement之间的关系和区别.    关系:PreparedStatement继承自Statement,都是接口    区别:PreparedStatement可以使用占位符,是预编译的,批处理比Statement效率高    详解:1、PreparedStatement:表示预编译的 SQL 语句的对象。   接口:public interface ...

2018-07-01 13:46:55 286

转载 使用jdbc调用存储过程的理解

 本篇讲述如何使用JDBC来调用MySQL数据库中的存储过程。建议在学习如何使用JDBC调用存储过程前,请先了解如何在数据库中使用存储过程。  存储过程是指在数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后以后再调用任意次都不需要重新编译了。说白了就是一堆SQL语句的合并,中间加了点逻辑控制,俗称为数据库中的函数。在一些金融等大型企业中,基本都是由内部人员编写好存...

2018-07-01 10:26:47 725

转载 常见的HTTP状态码(HTTP Status Code)

比较常见的HTTP状态码吧!2开头 (请求成功)表示成功处理了请求的状态代码。200   (成功)  服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 201   (已创建)  请求成功并且服务器创建了新的资源。 202   (已接受)  服务器已接受请求,但尚未处理。 203   (非授权信息)  服务器已成功处理了请求,但返回的信息可能来自另一来源。 204   (无内容)  服...

2018-06-20 21:58:53 38576

原创 在Java中 使用 Redis

安装开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。 Java的安装配置可以参考我们的  Java开发环境配置 接下来让我们安装 Java redis 驱动:首先你需要下载驱动包,下载 jedis.jar,确保下载最新驱动包。在你的classpath中包含该驱动包。连接到 redis 服务impo...

2018-04-30 11:28:04 141

转载 JVM的内存区域划分(面试问题:了解java内存模型吗?能详细说说吗)+GC(垃圾回收相关)

由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:                                         如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字...

2018-04-29 20:24:22 813

转载 spring Bean的作用域

Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持如下5种作用域:singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例request:...

2018-04-29 15:06:23 114

转载 B-树,B+树和数据存储的关系(持续更新)

为什么使用B+树?因为:1.文件很大,不可能全部存储在内存中,故要存储到磁盘上2.索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数(为什么使用B-/+Tree,还跟磁盘存取原理有关。)3.局部性原理与磁盘预读,预读的长度一般为页(page)的整倍数,(在许多操作系统中,页得大小通常为4k)4.数据库系统巧妙利用了磁盘预读原理,将一个节点的大小设为等于一个页,这样每个节点只需要一次I/O就可以...

2018-04-27 19:25:44 1229

转载 了解认识Junit,简单实例

JUnit是一个开源的java单元测试框架。1) 提供的API可以让你写出测试结果明确的可重用单元测试用例2) 提供了三种方式来显示你的测试结果,而且还可以扩展3) 提供了单元测试用例成批运行的功能4) 超轻量级而且使用简单,没有商业性的欺骗和无用的向导5)  整个框架设计良好,易扩展对不同性质的被测对象,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧。以下仅以Clas...

2018-04-26 18:16:30 415

转载 Mysql 中select for update 的几种情况

悲观锁是对数据被的修改持悲观态度(认为数据在被修改的时候一定会存在并发问题),因此在整个数据处理过程中将数据锁定。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在应用层中实现了加锁机制,也无法保证外部系统不会修改数据)。使用场景举例  商品goods表中有一个字段status,status为1代表商品未被下单,status为2代表商品已...

2018-04-25 10:02:07 18960 3

转载 SELECT... for update,排他锁机制的简单理解

会话1中:创建一个表SQL&gt; create table t0416a (id number,val number);  Table created.插入一行记录并提交SQL&gt; insert into t0416a values (1,10);1 row created.SQL&gt; commit;Commit complete.查看表中的记录,这时VAL列的值为10.SQL&gt; ...

2018-04-25 09:50:53 1851

转载 MyEclipse部署web项目到Tomcat出现An internal error occurred during: "Launching on Tomcat 7.x"的问题,或者是出现空指针的现象

如果出现了上述的错误按照如下的3个步骤解决:1、首先关闭MyEclipse工作空间。2、然后删除工作空间下的文件。“MyEclipse10\workspace.metadata.plugins\org.eclipse.core.runtime.settings、com.genuitec.eclipse.ast.deploy.core.prefs”因为在这个文件中存储了一些部署项目的信息。删了这个部...

2018-04-23 13:25:17 1378

空空如也

空空如也

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

TA关注的人

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