自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bigbao_1993

软件开发,经验分享

  • 博客(49)
  • 资源 (9)
  • 收藏
  • 关注

原创 Java object转string

public static createString(Object object ){rerutn object!=null?object.toString():"";}

2019-10-23 16:16:30 150115 129

原创 synchronized

下载地址:https://download.csdn.net/download/weixin_40426638/10281430下载安装完成后,需要在安装目录添加一个文件:文件描述如下:这里在下载安装sourcetree到简单,但是安装打开后会提示你Atlassian需要注册,这家软件公司在澳大利亚,所以注册时需要翻墙,才能注册成功,为了快点使用,这里提供一个方法1. 找到目...

2020-03-24 20:18:19 14990 1

原创 ThreadPoolExecutor创建线程池

/** * 当提交一个新任务到线程池时首先线程池判断基本线程池(corePoolSize)是否已满? * 没满,创建一个工作线程来执行任务。 * 满了,则进入下个流程; * 其次线程池判断工作队列(workQueue)是否已满? * 没满,则将新提交的任务存储在工作队列里。 * 满了,则进入下个流程;最后线程池判断整个线程池(max...

2020-02-25 18:37:50 597

原创 Executors创建线程池

在jdk1.8版本加入WorkStealingPool线程后,通过Executors共可创建5种线程池newSingleThreadExecutor是创建一个单任务线程池,串行执行所有任务。它只会用唯一的工作线程来执行任务,任务执行顺序按照先进先出(FIFO),如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。newCachedThreadPool是创建一个缓存线程池,只有非核...

2020-02-25 18:26:41 311

原创 html freemaker itext生成PDF

html+freemaker+itext

2019-11-04 09:51:18 6103

原创 leetcode 刷题 LeetCode题目代码

祝你们好运,希望面试有点用!链接:https://pan.baidu.com/s/18bmh7ZacRnfm9DuYdpDA2A提取码:lytb

2019-06-28 08:53:58 447

原创 String s=new String(“a“)到底创建了几次对象?

1.首先你肯定知道String类是不可变的.当jvm看到"a",便在串池中寻找,找不到 jvm会创建一个对象,这里创建了一个对象,然后new 是在内存上创建string对象,并将其返回给s,又一个对象,所以一共创建了两个对象.2.那么String s=new String("a"+"b");创建了几次对象?当jvm 看到 "a","b"时候 各创建了一次对象,"a"+"b"又创建了一个...

2019-05-30 17:15:38 3201 8

原创 linux常用命令

切换目录切换到上一层目录: cd ..切换到系统根目录: cd /切换到用户主目录: cd ~切换到上一个所在目录: cd -列出文件列出当前文件列表: ls列出所有文件或目录(包含隐藏的文件): ls -a创建文件夹:mkdir在当前目录下创建 java目录 :mkdir java级联创建Java以及test目录 : mkdir -p java/te...

2019-04-18 14:21:52 260

原创 数据结构Java版 第四版 叶和亚

内容目录如下.链接:https://pan.baidu.com/s/1qHjGaRwD-4BgBm6HEagD_g提取码:iom1

2019-04-13 16:18:39 9772 9

原创 LoadBalancerClient 实现负载均衡的简单原理

LoadBalancerClient 翻译过来就是负载均衡客户端:LoadBalancerClient取=寻找服务的简单流程:Ribbon 里面封装了 获取全部服务的接口(getallserverlists的方法), 其中通过filter过滤一部分服务,然后, Ribbon 的IRule对象, 选择一个有效的服务返回给调用方,(其中IRul默认是通过轮训的方式,返回一个服务).sprin...

2019-03-18 23:05:55 15476 2

原创 eureka-server 高可用,相互注册

Eureka的高可用,相互注册,在idea上可以通过注册时候改变端口复现如启动第一个server实例时候,配置端口是8761启动第二个实例,配置端口8762当你启动客户端后,查看页面8761和8762端口发现,都被注册了客户端,当一个server实例停掉之后,另一个实例还是继续存活,提供服务如果是三个server需要两两注册,即启动一个server配置两个端口,client...

2019-03-14 22:19:55 1283

原创 com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known serve

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known servererueka server 启动成功,但是一直在报这个错,这个是什么错呢?我们点进去错误日志中蓝色标记 RetryableEurekaHttpClien,看看他是执行什么操作出现...

2019-03-14 10:28:19 1454

原创 Java 二分查找

二分查找是为了找到元素在一个数组的位置基本写法如下:public int halfSeach_2(int[] arr,int key){ int min,max,mid; min = 0; max = arr.length-1; mid = (max+min)>>1; //等同于(max+min)/2; ...

2019-03-13 14:56:03 265

原创 oracle sql语句执行过程

1.数据库文件Oracle 数据库文件大概可分为3种,分别是:控制文件(control files): 存放数据库本身物理结构信息数据文件(data files): 存放数据库数据的日志文件(log files):  包括重做日志文件和归档日志文件, 记录数据库数据的变化.如下图:2.数据库实例       但是用户和应用程序是无法直接访问数据库文件的数据的, 这时Oracle服务器...

2019-01-05 14:26:31 466

原创 Oracle常用函数及SQL

一:group by可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个汇总表select字句中的列名必须为分组列或列函数.列函数对于group by字句定义的每个组返回一个结果group by一般和聚合函数一使用才有意义,比如count,sum,avg等,使用group by 的两个要素:(1)出现在select后面的字段,要么是聚合函数中的,要么是group by中的...

2019-01-03 10:44:37 521

原创 springcloud微服务实战

书名《springcloud 微服务实战》网盘地址:https://pan.baidu.com/s/1ysMfChD5D_F75filgLouKg希望你们看了电子版,可以买正版纸质,书质量还是不错的!!!-->电子版截图...

2018-10-26 14:59:34 251

原创 线程死锁

虽然同步锁机制解决了线程安全问题,但是也带来一些弊端:     1. 效率会降低,每次都需要判断锁的状态     2. 可能引发死锁(彼此占用所需要的资源),出现的概率非常小,非常特殊.线程之间彼此占用对方所需的资源,就是死锁, 死锁会造成程序阻塞爸爸说:“给我成绩单,就给你零花钱”,儿子说:“给我零花钱,就给你成绩单”,如果两人互不相让...当死锁发生后,要么等待同步锁自动释放,要么...

2018-10-08 21:01:37 212

原创 java面试题收藏贴

Java中的String,StringBuilder,StringBuffer三者的区别https://blog.csdn.net/shirleyacount/article/details/39958371HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别https://www.cnblogs.com/beatIteWeNer...

2018-09-14 16:40:17 186

原创 js===与==的区别

定义变量:var num = 1;var str = '1';var test = 1;test == num //true 相同类型 相同值test === num //true 相同类型 相同值test !== num //false test与num类型相同,其值也相同, 非运算肯定是falsenum == str //true  把str转换为数字,检查其是否相...

2018-09-10 17:12:39 212

原创 springcloud版本号

因为Spring Cloud不同其他独立项目,它拥有很多子项目的大项目。所以它是的版本是 版本名+版本号 ,下面这些都是它的一些版本名:这些Angle,Brixton,Camden等都是伦敦地铁站的名字,他们按照字母顺序发行,就是版本的演进.当一个版本的Spring Cloud项目的发布内容积累到临界点或者一个严重bug解决可用后,就会发布一个“service releases”版本,简称SR...

2018-08-02 11:57:19 3232

原创 oracle-sql语句优化

oracle的SQL优化顺序:1.减少数据访问(减少磁盘访问)-->2.返回更少数据(减少网络交互)-->3.减少交互次数(减少网络交互)-->减少CPU开销-->利用更多资源(增加资源)总结一些sql优化建议:一:操作符的优化1、IN 操作符用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用IN的SQL性能总是比较低...

2018-08-02 10:46:54 509

原创 springmvc的组件

HandlerMapping:根据request找到响应的处理器HandlerAdapter:就是处理handler,就是指挥controller执行的角色.HandlerExceptionResolver:就是springmvc中专门处理异常的角色ViewResolver:视图解析器RequestToViewNameTranslator:ViewResolver是根据视图名查抄v...

2018-07-27 14:09:52 201

原创 springmvc原理之DispatcherServlet

DispatcherServlet是springmvc最核心的类,整个处理过程的顶层都在这里.DispatcherServlet继承自HttpServlet,它也是Http协议的实现.DispatcherServlet里面执行处理的入口方法是doService,不过doService并没有直接处理,而是交给了doDispatch去处理,在处理前,doService做了一部分事情.先判断请求...

2018-07-27 13:53:47 599

原创 分布式锁的实现

分布式锁的实现方式通常有三种,第一种是基于数据库实现分布式锁,第二种是基于缓存实现分布式锁,第三种是基于zookeeper实现分布式锁.第一种:基于数据库实现分布式锁特点:性能较差,容易出现单点故障锁没有失效时间,容易思死锁非阻塞式的不可重入第二种基于缓存实现分布式锁锁没有失效时间,容易死锁非阻塞式的不可重入基于zookeeper实现分布式实现相对简单可靠性高性能较好...

2018-07-15 16:17:43 220

原创 高并发的解决方案

一:应用和静态资源分离什么是静态资源:图片,视频,JS,CSS和一些资源文件等.分离原理大概是:把静态资源存到相应的服务器,当访问静态资源的时候就不需要访问应用服务器了.像商城项目里面常用的图片服务器就是这个原理.二:页面缓存页面缓存是将应用生成的页面缓存起来,这样就不需要每次都生成新页面了,从而可以节省大量CPU资源,如果缓存的页面放在内存中那访问就更快了.如果使用了NGINX服务器,就可以使用...

2018-07-10 15:20:46 167

原创 BS的网络传输的分解过程

BS结构网络传输的分解主要有两种:一种是标准的OSI参考模型,另一种是TCP/IP参考模型,他们的分层方式及对应的关系如图:OSI参考模型一共分七层,每一层都有每一层的工作:物理层:机械,电子,定时接口通信信道上的原始比特流传输数据链路层:物理寻址,同时将原始比特流转变为逻辑传输线路网络层:控制子网的运行,如逻辑编址,分组传输,路由选择传输层:接收上一层的数据,在必要的时候...

2018-07-10 10:29:38 1114

原创 Lucene的使用,Lucene入门

本文主要介绍几个方面,为什么使用Lucene使用场景,解决的问题,Lucene的入门使用,以及Lucene一些语法(增删改查)。一简述Lucene概念:磁盘上的一些邮件,文档等各种文件,通过工具,把其变得有结构性,就是他们的信息扫描,记录位置,记录内容,建成索引。这样你就可以通过这些索引快速找到这些文件位置以及想要的内容。就像查字典一样,字典的拼音表和部首检字表就相当于字典的索引,按着拼音或者偏旁...

2018-05-31 22:52:36 4821 1

原创 分布式session问题

再说分布式session问题前,先说清什么是分布式:分布式不是集群,虽然有很多共同点,三个人一块做饭,这是集群,一个人洗菜,一个人炒菜,一个人煮饭,这就是分布式.分布式的特点就是:多节点,不共享内存,通过网络消息合作.无论程序是水平拆分还是垂直拆分,都是有可能引起session问题.如图你的登陆,浏览商品,下单是三个服务.怎么保证用户是同一个用户呢?不能让他浏览商品时候,突然提醒他登陆,你们一定遇...

2018-05-19 00:04:28 373

原创 An error occurred with the Html rendering component

MarkdownPad 2 使用时候出现如下字样,(如图)不能编辑.....An error occurred with the Html rendering component原因:MarkdownPad 2 在win10下 出现HTML 渲染错误(This view has crashed) 的问题.解决办法:安装一个SDK的工具包,名叫:awesomium_v1.6.6_sdk_win下载地...

2018-05-16 14:54:48 7626 20

原创 mysql的锁机制之表锁

MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定和页级锁定.表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般本文主要介绍表锁的类型,机制,创建,解锁,优化思路等内...

2018-05-15 14:00:11 261

原创 MarkdownPad2 安装和破解

安装:下载地址去官网:http://markdownpad.com/ 我的百度云也有:https://pan.baidu.com/s/1_S-9ENtaj0bceUCTwFbXqw文档-安装包-卸载包破解过程:Email address :[email protected]破解码:GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMN...

2018-05-13 00:32:37 980 1

原创 java视频教程,Java面试资料

Java编程轻松入门视频库地址:http://yun.itheima.com/course/269.html网盘地址:https://pan.baidu.com/s/1c4bFDJi资料链接:https://pan.baidu.com/s/1o9yLBsu 密码:wwd0 2018年Java最新面试宝典链接:https://pan.baidu.com/s/1daNAJ8 密码:oi86Spring...

2018-05-11 16:30:40 782

原创 mysql锁机制之行锁

我的云盘地址:(公开无加密,下载完压缩包就能用了)https://pan.baidu.com/s/1i6X3l7v界面样式,对表的描述,表的查找比较方便

2018-05-11 16:21:44 660

原创 mysql存储过程,存储函数

一:存储过程存储程序包括存储函数和存储过程.存储过程有它独特的优势,存储过程大大地减少了业务系统与数据库的交互,一定程度降低了业务系统与数据库的耦合.还有执行效率高,编写方便,功能强大等等,但一定要注意其应用场景。一般使用与业务逻辑简单稳定的场景,不适用业务逻辑复杂经常变换的场景.如果表换个结构,要改很多存储过程,各有利弊吧.存储过程基本语法:CREATE PROCEDURE pro_n...

2018-05-11 10:17:32 412

原创 mysql索引类型,索引创建,索引使用注意事项

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以提高数据库中特定数据的查询速度。所有mysql列的类型都可以使用索引,例如:数据库中有两万条记录,现在要执行这样一个查询:select * from table t1 where num=20000。如果没有索引,将会遍历整个表,知道num=20000,这一行数据被找到。如果在num列上创建索引,mysql不需要任何扫描,直接在索引里...

2018-05-08 18:07:54 1439

原创 mysql5.5存储引擎

mysql提供了多个不同的存储引擎。包括处理事务安全表的引擎和处理非事务安全表的引擎。在mysql中,不需要整个过程只使用一种引擎,可以针对具体的要求,每个表使用不同的引擎,mysql5.5支持的引擎有,innodb,myisam,memory,merge,csv等等。可以使用SHOW ENGINES \G; 命令查看当前mysql支持的引擎:注意图中,support的列表示某种引擎的能否使用,...

2018-05-07 23:22:26 1141

原创 sql语言分类

SQL语言包括以下四个部分。1.数据定义语言(DDL),DROP,CREATE,ALTER等语句。2.数据操作语言(DML),INSERT,UPDATE,DELETE语句。3.数据查询语言(DQL),SELECT语句。4.数据控制语言(DCL),GRANT,COMMIT,ROLLBACK,REVOKE等语句。...

2018-05-07 22:12:42 142

原创 GC回收机制,GC算法。GC垃圾回收

对于java对象,什么是垃圾状态呢?就是不再被任何对象所引用.他就是垃圾.在java中,GC的主要对象是堆空间和永久区。而我们更多讨论的是堆空间这部分。 堆的内存分配图jdk8之前有永久代 jdk8之后被取消了,不再有永久代GC的工作目的很明确:新生成的对象,都放在Eden中;当Eden充满时(小孩太多 了),GC将开始工作,首先停止应用程序...

2018-05-04 21:26:23 295

原创 乐观锁与悲观锁

悲观锁和乐观锁是数据库用来保证数据并发安全防止更新丢失的两种方法,是一种思想:乐观锁乐观锁是一种思想,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据 ,一种实现是,表中有一个版本字段,第一次读的时候,获取到这个字段。处理完业务逻辑开始更新的时候,需要再次查看该字段的值是否和第一次的一样。如果一样更新,反之拒绝。之所以叫乐观,因为这个模...

2018-04-26 17:46:00 173

转载 eclipse中的web项目导入IDEA,并配置tomcat

第一步:准备工具我用的是  IntelliJ IDEA 2016.3(64)  这个版本的,在eclipse中找到我之前写SpringMVC+MybatisDemo的项目导入。第二步:打开IntelliJ IDEA ,进入到欢迎页面,点击Import Project第三步:选择你要导入的Java Web项目,点击OK。第四步:进入此页面后选择第二个,下面的选择eclipse即可,点击next。第五...

2018-03-14 09:58:00 250

plsql破解版

plsql破解版,永久使用注册码,plsql注册码,plsql破解教程

2018-02-27

视频网站源码小程序

模仿芒果TV,视频小程序源码。界面,代码。。。。。。

2018-01-30

商城小程序

商城小程序,源码,页面。基本功能都已经实现,入手简单

2018-01-30

今日头条小程序

新闻小程序,今日头条,一个新闻服务的小程序。。。。。

2018-01-30

小程序页面生成工具

小程序页面生成工具,freemaker完成。。。。简单页面生成

2018-01-29

别踩白块小程序源码

小程序源码,游戏别踩白块,小程序游戏,微信游戏 小程序源码,游戏别踩白块,小程序游戏,微信游戏 小程序源码,游戏别踩白块,小程序游戏,微信游戏

2018-01-29

从Docker到Kubernetes之技术实战

从Docker到Kubernetes之技术实战,从Docker到Kubernetes案例,详细笔记。可以让初学者充分认识从Docker到Kubernetes魅力

2018-01-09

poi导出excel所用jar包,可添加至maven仓库,也可以自己配置,适合各种浏览器

通常业务需求都是客户端一个导出按钮,发送请求到服务端,服务端写一个接口导出报表到客户端,客户可以自行下载。无论Struts或者springMVC均可。 @RequestMapping("Export") @ResponseBody public String getAll(HttpServletRequest request,HttpServletResponse response) throws IOException{ //集合为需要导出数据,数据查询得到,这里测试就不写了。 List<User> list=new ArrayList<User>(); // 生成Excel文件 HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); HSSFSheet sheet = hssfWorkbook.createSheet("测试数据"); // 表头 HSSFRow headRow = sheet.createRow(0); headRow.createCell(0).setCellValue("姓名"); headRow.createCell(1).setCellValue("手机号码"); headRow.createCell(2).setCellValue("年龄"); // 表格数据 for (User user : list) { HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum() + 1); dataRow.createCell(0).setCellValue(user.getName()); dataRow.createCell(1).setCellValue(user.getPhone()); dataRow.createCell(2).setCellValue(user.getAge()); } // 下载导出(一个流两个头) // 设置头信息 response.setContentType( "application/vnd.ms-excel"); // MIME .jpg .xls .mp3 .avi .txt .exe String filename = "驾驶员数据.xls"; //如果为Struts框架,获得request和response可用ServletActionContext String agent = request .getHeader("user-agent"); filename = FileUtils.encodeDownloadFilename(filename, agent); response.setHeader("Content-Disposition", "attachment;filename=" + filename); ServletOutputStream outputStream = response .getOutputStream(); //输出 hssfWorkbook.write(outputStream); // 关闭 hssfWorkbook.close(); //System.out.println("导出成功"); return "success"; }

2018-01-03

空空如也

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

TA关注的人

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