自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CSDN19970806的博客

有梦想的鲨鱼

  • 博客(122)
  • 收藏
  • 关注

原创 java实现二叉查找树 底层原理

废话不多说,直接上代码public class Node<V> { /** * 该结点的key */ private Integer key; /** * 该结点的value */ private V value; /** * 左结点 */ private Node<V> left; /** * 右结点 */ private .

2020-08-05 14:05:12 319

原创 java分红包算法

分配红包算法首先保证三个条件: 1. 随机产生 min元 - max元 精确到分的数值 2. 判断是否满足 min元*剩余人数<= 余下的红包金额 <= max元*剩余人数 3. 不满足的此次数值作废,按第1、2步重新计算;满足的话,此次拆红包成功,等待下次拆包,下次逻辑同1、2 只要保证这三个条件,相信你生成的金额就是有效的。亲身自测,重复执行10W条...

2019-08-26 18:42:33 887

原创 Redis通过lua脚本模拟一个商品秒杀

1.使用场景 公司2周年准备上一个秒杀,针对商品A,价值1W,准备在上午10点整,进行一次秒杀,一共20个库存。预测当日会有100W用户进行抢购2.遇到的问题 高并发、库存不能超卖、不能查询数据库 否则数据库抵挡不住压力3.实现方案 1.使用 redis 保存四件商品的库存数量测试:0>set seckillGoods:1001 20"OK" 2.利用lua脚本进行减库存,首先编写好lua脚本 网上有很多...

2021-05-19 13:44:44 907 4

原创 有关二叉树的 三种遍历方式

一、遍历方式1.分为三种:前序、中序、后序,其中序遍历最为重要。为啥叫这个名字?是根据根节点的顺序命名的。比如上图正常的一个满节点,A:根节点、B:左节点、C:右节点, 前序顺序是ABC(根节点排最先,然后同级先左后右); 中序顺序是BAC(先左后根最后右); 后序顺序是BCA(先左后右最后根)。比如上图二叉树遍历结果前序遍历:ABCDEFGHK中序遍历:BDCAEGHKF后序遍历:DCBHKGFEA分析中序遍历如下图,中序比较重要(java...

2020-08-05 13:51:17 297

原创 面试官问到布隆过滤器,还好我阅读过这篇博客

1.什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。2.实现原理HashMap 的问题讲述布隆过滤器的原理之前,我们先思考一下,通常你判断某个元素是否存在用的是什么?应该蛮多人回答 HashMap 吧,确实

2020-07-24 15:46:01 454 2

转载 TransactionTemplate和@Transactional注解的区别

事物管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的一致性。spring支持编程式事务管理和声明式事务管理两种方式。编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。声明式事务...

2020-04-22 10:40:35 4481

转载 新生代、老年代、为什么要有Survivor区?看这一篇就够了

JVM内存模型一、为什么会有年轻代  我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象...

2019-09-27 15:58:13 2216 5

原创 微信发送预支付请求

前几天抽时间学习了下微信支付,今天就给大家分享下微信支付 下单的API 。下单接口:URL地址:https://api.mch.weixin.qq.com/pay/unifiedorder微信官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_11.请求参数: 字段名 变量名 是...

2019-09-10 17:40:38 1684 1

原创 mysql 查询数据库、表相关信息

/*查询所有的表的信息*/select table_name 表明, engine, table_comment 描述, create_time 创建时间 from information_schema.tables where table_schema = (select database()) ;/*查询某个表的信息*/select table_name ta...

2019-03-23 18:05:26 413

原创 序列化和反序列化

1.序列化其实就是可以将我们的对象以二进制流的形式序列化到磁盘里,反过来,再以反序列化的方式装换成我们的对象。serialVersionUID:系列化版本UID简单来说:java是根据两个类的serialVersionUID是否相同来判断是否能进行系列化的,在进行序列化时,JVM会将传过来的serialVersionUID与本地相应实体类的serialVersionUID是否相同一致,如果...

2019-03-23 10:56:14 209

原创 easypoi生成带下拉框的excel

package com.test;      import java.io.FileOutputStream;      import org.apache.poi2.hssf.usermodel.DVConstraint;   import org.apache.poi2.hssf.usermodel.HSSFCell;   import org.apache.poi2.hssf.u...

2019-01-21 15:38:47 6140 1

原创 linux系统下的jdk、tomcat、mysql安装包

百度网盘:可直接复制链接进行下载,永久有效。链接:https://pan.baidu.com/s/1WqZHzZrqVywpoVoZBe6ZXA密码:nbwh

2019-01-18 00:29:35 366 1

原创 验证邮箱是否合法(JAVA)

验证邮箱是否合法/** * 验证邮箱是否合法 * @param string * @return */ public static boolean isEmail(String string) { if (string == null){ return false; } S...

2018-11-16 11:43:01 1618

原创 Could not find  artifact org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde

笔者将自己编写的UDF函数集成到Hive编译过程中遇到了如下几个问题,如果你在编译过程中也遇到了类似的问题,可以参考下面的解决方法。Hive 通过Maven来编译,命令如下&lt;span style="color:#000000"&gt;&lt;code&gt;$ mvn clean package -Phadoop&lt;span style="color:#4f4f4f"&gt;-...

2018-08-23 18:44:51 14931 8

原创 如何通过可视化工具连接redis?

1.下载可视化工具(Redis desktop Manager)  下面是我百度网盘里的,可以进去直接下载链接:https://pan.baidu.com/s/17IwQtXTH-BCvlvkmPGYaIg  密码:fmtp 下载好安装好之后大概就是这样子,只不过我这里已经连接过数据库了。现在进入到我们的linux系统上的redis中的bin目录下中,找到我们的redis-co...

2018-08-13 16:11:03 12220

原创 Redis在linux系统上的安装

1.上传redis压缩包     可以去这里直接下载压缩包链接:https://pan.baidu.com/s/1hoJjzUMACfxDjaq8HhE8CA 密码:moct首先将我们下载的压缩包上传到linux系统上。可以通过linux自带的软件去上传,如果这样的话需要先下载一个上传下载的软件,输入命令sudo yum install -y lrzsz。这个时候就会开始下载。等下载结...

2018-08-13 15:33:35 772

原创 redis五大基本数据类型使用

redis五大基本数据类型包括,string hash.set,list,Sorted set先看一张图:我自己分装了一个工具类,所以可以直接获取jedis你们也可以通过Jedis jedis = new Jedis(host,port);host是你的主机名,用ip也行port是端口号,6379增:set(key,value)@Testpublic void ...

2018-08-12 22:14:20 377

原创 在idea下去连接redis

1.首先我们如果是maven项目的话,需要先将redis的包导入进来,所以,在pom文件中先加上以下代码&lt;dependency&gt;    &lt;groupId&gt;redis.clients&lt;/groupId&gt;    &lt;artifactId&gt;jedis&lt;/artifactId&gt;    &lt;version&gt;2.8.0&lt;/versi...

2018-08-12 22:07:00 13746 11

原创 什么是redis?

Redis安装与部署Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 ...

2018-08-12 21:52:52 349

原创 安装Hadoop之前基础操作

1.首先创建一个虚拟机2.添加一个新用户useradd huadian          设置密码:passwd huadain3.修改主机名  vi  /etc/sysconfig/network4.修改网络配置(ip、网关、子网掩码)5.修改映射文件,vi /etc/host6.关闭防火墙(service iptables stop),并设置开机不启动(chkconfi...

2018-08-07 11:11:06 769

原创 Hadoop四大组件介绍

1.学习Hadoop之前需要的基础,javaSE(基础),EE(SSM),Linux基础,因为90%的框架都是用java写的,Hadoop、hive、HBase、下面是Hadoop的有关介绍。2.学习大数据里面最核心的就是Hadoop,我们知道什么是大数据。就是一个非常庞大的数据,计算机无法直接取读取以及分析处理,这个时候就要用到我们学到的大数据。     Hadoop的四大组件:...

2018-08-07 10:54:12 18806

原创 在linux系统下,安装mysql和jdk

安装mysql:                        (1)前提:防火墙关闭(service iptables stop)                     开机不启动防火墙(chkconfig iptables off)            (2)关闭selinux:                vi/etc/selinux/config             ...

2018-08-06 09:11:54 855

原创 Linux的环境配置

1.  先修改主机名(在没有给其他用户增加权限的前提下,只有root用户才能修改这些信息)首先可先在命令窗口输入hostname查看当前主机名,页面上显示是localhost修改主机名有两种方式:    ①临时修改  hostname = 你的主机名  这样下次开机主机名就又变回来了,不推荐用    ②永久修改      输入命令vi  /etc/sysconfig/net...

2018-08-02 13:20:05 255

原创 虚拟机的安装

1.将VMmare安装好之后,此时先安装虚拟机,然后选中你的文件创建用户,这里不能创建root用户,因为已经存在root管理员用户后面都是简单式安装,可自行安装。...

2018-08-02 12:45:25 171

原创 Maven的简单搭建

Maven是用来干嘛的?Maven是用来项目的构建和依赖的管理。maven的常用命令?mvn -version 查看当前Maven的版本号mvn clean 清理上一次build项目生成的文件。mvn compile 重新编译项目中的源代码.mvn tomcat:run 运行Tomcatmvn package 将项目进行打包 使用idea搭建一个maven工程...

2018-07-23 09:04:47 280

原创 jdk和jre的区别

jdk:JDK是java的开发工具包,里面包含了一个jre,而且在bin/server中还包含有一个虚拟机,所以说,他提供了一系列的编译、运行等工具。如:javac,jre是java的运行环境,既然能运行,他里面肯定包含JVM,也就是我们说的java虚拟机,而它核心的部分就是java虚拟机和核心类库。我们的java程序,首先会被编译成,class结尾的字节码文件,然后java虚拟机去执行字...

2018-07-20 12:47:34 165

原创 如何直接编辑datagrid

大家先看一下效果图吧。当点击取消编辑时,可退出编辑。下面开始给大家讲解,第一个如何添加:首先,当我们点击的时候,,toolbar:[{ //这里的toolbar是写在columns前后的。不是写在它里面的 text:'增加', iconCls:'icon-add', handle...

2018-07-18 11:27:12 862 2

原创 Mybatis的应用

Mybatis的入门级应用:1.准备数据库和数据库表2.准备实体类3.导包一共12个jar包书写配置文件:第一步:创建一个文件,导入约束&lt;?xml version="1.0" encoding="UTF-8" ?&gt;&lt;!DOCTYPE configuration        PUBLIC "-//mybatis.org//DTD Config ...

2018-07-18 09:45:49 263 1

原创 在datagrid上方添加按钮

首先看一下效果图看看是不是大家想要的效果上方的添加、删除、修改等按钮都是为了业务需求加上去的。那么给大家介绍一下如何去使用这些组件。其实这些按钮都属于toolbar里面的。这些toolbar记得要写在你的columns后面,toolbar也是datagrid中的属性,官方上面并没有介绍,只不过它确定是存在的,这个不用惊奇。{ title:"编辑", field:'id...

2018-07-18 09:45:32 2187 1

原创 MyBatis介绍

什么是MyBatis?Mybatis是一个dao层的持久层框架,它也是一个orm框架,它支持定制化sql语句、存储过程、高级映射。Mybatis几乎避免了jdbc需要手动设置参数以及自己去处理结果集。Mybatis可以使用简单的xml或者通过注解的方式来映射原生信息。将pojo类与数据库表产生对应关系。 ...

2018-07-18 09:45:20 213 1

原创 ==和equals的区别

记得刚出来找工作,很容易在面试或笔试中遇到问equals和==的区别,我很容易答出它们的区别是前者比较两个对象的值,后者比较两个对象的地址是否相等,很长时间我对此深信不疑,但是当你真正研究源码的时候,你会发现这个答案其实是不对的。 我们知道equals是Object的方法,那我们先看看在Object这个类中是如何定义的: public boolean equals(Object obj...

2018-07-18 09:45:10 147

原创 在datagrid中如何添加按钮及toolbar的应用

其实,我们有时候在使用datagrid的时候,更多的时候我们是希望在数据后面有一个按钮,更利于我们操作,就想这样。其实做到这样不难,今天进给大家介绍一个如何在datagrid上添加按钮,以及注意事项。首先我们知道,这个按钮也是在columns中的,就像这样, { title: "出生日期", field: 'bornDate', width: 100,}...

2018-07-18 09:17:14 3113

原创 datagrid的简单应用:

datagrid是数据表格的意思,可以将我们后台返回来的数据进行一一放入表格中相应的地方。这里的有分页功能,等下一期出datagrid的分页查询。 首先,如果要应用datagrid 的话,有两种方式,一种是写在HTML中,另外一种是写在js中的,可以根据自己的需求,如果业务比较多的情况下,建议使用js的方式去写,name具体看一下如何使用吧。首先,记得将easyui的包放到你的...

2018-07-17 22:59:11 568

原创 easyUI中的Combo Tree应用:

先看效果图吧:在实际开发中,大家可能会遇到类似的项目结构,如果自己去写的话,可能会很慢,而且浪费时间,所以,大家有时间还是去多学学如何使用easyUI吧,此时就要应用easyUI的combo Tree下面是实际的代码:我这是将代码放到了west(西)面:&lt;div class="easyui-panel" style="padding:5px;width: 160px"&gt;...

2018-07-17 22:47:37 249

原创 Download 使用超链接,明明是文件,却只能预览,无法下载解决方案。

链接中加入download属性可以使用户将文件下载下来而不是直接用浏览器打开,截止到目前为止对HTML5提供支持的浏览器已经对这个属性支持得比较好了,下面我们就来详细看一下HTML5中的强制下载属性download使用实例解析: 相信大家在写前台的过程中,一定遇到过这样的问题,自己写了a标签,链接的地址是本地的一个图片。就像这样&lt;a href=http://localhost:...

2018-07-17 14:28:11 7171 1

原创 SpringMvc文件上传

&lt;%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%&gt;&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd&

2018-07-13 17:24:41 125 1

原创 ArrayList和Vector的区别

Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。 2) 当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。 ...

2018-07-12 22:44:48 162

原创 自动装箱与拆箱

 装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。  好处:Java使用自动装箱和拆箱机制,节省了常用数值的内存开销和创建对象的开销,提高了效率,由编译器来完成,编译器会在编译期根据语法决定是否进行装箱和拆箱动作。 ...

2018-07-12 22:44:29 216 1

原创 堆和栈的区别?

栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。  堆内存:用于存储数组和对象,通过new建立的实体都存放在堆内存中。每一个实体都有内存地址值。 实体中的变量都有默认初始化值,这主要是根据对像的类型来定。当为引用数据型的时候,初始值为null。实体不在被使用的时候,栈中的数据会被自动释放,会在不确定的时间内被垃圾回收器回收 主要的区别由以下几点:    1、管理方式不同;    2、空...

2018-07-12 22:44:12 141 1

原创 面向对象设计七大原则

1. 单一职责原则(Single ResponsibilityPrinciple)每一个类应该专注于做一件事情。2. 里氏替换原则(Liskov SubstitutionPrinciple)超类存在的地方,子类是可以替换的。3. 依赖倒置原则(Dependence InversionPrinciple)实现尽量依赖抽象,不依赖具体实现。4. 接口隔离原则(Interface Segregation...

2018-07-12 22:43:37 217 1

空空如也

空空如也

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

TA关注的人

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