java后台-java优化
文章平均质量分 77
小米加大炮
天生我材必有用,千金散尽还复来!
展开
-
java(优化28) 优化if-else写法
优化方案 1:提前 return,去除不必要的 else如果 if-else 代码块包含 return 语句,可以考虑通过提前 return,把多余 else 干掉,使代码更加优雅。优化前:if(condition){ //doSomething }else{ return ; } 优化后:if(!condition){ ...转载 2020-03-11 18:33:55 · 5256 阅读 · 2 评论 -
java(优化27) 使用Stream API优化代码
前言:Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读一、流如何简化代码如果有一个需求,需要对数据库查询到的菜肴进行一个处理:筛选出卡路里小于400的菜肴 对筛选出的菜肴进行一个排序 获取排序后菜肴的名字开始上代码:菜肴类:Dish.javapublic class D...转载 2019-12-31 15:39:45 · 309 阅读 · 0 评论 -
java(优化17) 15天玩转redis之第九篇
本系列已经过半了,这一篇我们来看看redis好玩的发布订阅模式,其实在很多的MQ产品中都存在这样的一个模式,我们常听到的一个例子就是邮件订阅的场景,什么意思呢,也就是说100个人订阅了你的博客,如果博主发表了文章,那么100个人就会同时收到通知邮件,除了这个场景还能找到其他场景么,当然有啦,你想想,如果你要在内存里面做一个读写分离的程序,为了维持数据的完整性,你是不是需要保证在写入转载 2016-08-15 16:11:41 · 366 阅读 · 0 评论 -
java(优化18) 15天玩转redis之第十篇
我们知道redis是带有持久化这个能力了,那到底持久化成到哪里,持久化成啥样呢???这篇我们一起来寻求答案。一:快照模式 或许在用Redis之初的时候,就听说过redis有两种持久化模式,第一种是SNAPSHOTTING模式,还是一种是AOF模式,而且在实战场景下用的最多的莫过于SNAPSHOTTING模式,这个不需要反驳吧,而且你可能还知道,使用SNAPSHOTTI转载 2016-08-15 16:31:32 · 313 阅读 · 0 评论 -
java(优化19) 15天玩转redis之第十一篇
这里我们来继续分析一下RDB文件存储结构,首先大家都知道RDB文件是在redis的“快照”的模式下才会产生,那么如果我们理解了RDB文件的结构,是不是让我们对“快照”模式能做到一个心中有数呢???一:RDB结构剖析 首先呢,我们要对RDB文件有一个概念性的认识,比如下面画的图一样:从图中,我们大概看到了RDB文件的一个简要的存储模式,但为了更好的方便对转载 2016-08-16 13:53:27 · 376 阅读 · 0 评论 -
java(优化16) 15天玩转redis之第八篇
我们都知道redis追求的是简单,快速,高效,在这种情况下也就拒绝了支持window平台,学sqlserver的时候,我们知道事务还算是个比较复杂的东西,所以这吊毛要是照搬到redis中去,理所当然redis就不是那么简单纯碎的东西了,但是呢,事务是我们写程序无法逃避的场景,所以redis作者折衷的写了个简化版的事务机制,下面我来扯一下它的蛋蛋。 一: 事务转载 2016-08-08 17:56:08 · 696 阅读 · 0 评论 -
java(优化20) httpClient简介
一、HttpClient是什么HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 Ht转载 2016-09-19 10:26:34 · 512 阅读 · 0 评论 -
java(优化21) httpClient使用详解
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会转载 2016-09-19 11:36:55 · 1679 阅读 · 0 评论 -
java(优化22) org.apache.commons.httpclient.util.DateUtil取值问题
1.最近项目中用到了 org.apache.commons.httpclient.util.DateUtil工具类,发现其有一个坑,得格外小心.示例代码如下:public static void main(String[] args) { System.out.println("当前时间1="+DateUtil.formatDate(new Date(), "yyyyMMddHHmmss原创 2016-10-11 17:13:29 · 1199 阅读 · 0 评论 -
java(优化24) Redis主要的五种数据类型使用
服务搭建好以后可以使用.net版本redis操作类库ServiceStack.Redis来操作redis,本文会用到以下三个dll。初始化RedisClient对象var client = new RedisClient("120.26.197.185", 6379);一、主要类型简介1.String String是最常用的一种数据类型,普通的转载 2017-03-09 16:14:59 · 2961 阅读 · 0 评论 -
java(优化23) jstack和线程dump分析
一:jstackjstack命令的语法格式: jstack 。可以用jps查看java进程id。这里要注意的是:1. 不同的 JAVA虚机的线程 DUMP的创建方法和文件格式是不一样的,不同的 JVM版本, dump信息也有差别。本文中,只以 SUN的 hotspot JVM 5.0_06 为例。2. 在实际运行中,往往一次 dump的信息,还不足以确认问题。建议产生三次 dump转载 2017-03-07 15:15:35 · 386 阅读 · 0 评论 -
java(优化25) Redis缓存加索引处理数据库百万级并发的方案
前言:在实际应用中这种做法设计需要各位读者自己设计,本文只提供一种思想。准备工作:安装后本地数redis服务器,使用mysql数据库,事先插入1000万条数据,可以参考我之前的文章插入数据,这里不再细说。我大概的做法是这样的,编码使用多线程访问我的数据库,在访问数据库前先访问redis缓存没有的话在去查询数据库,需要注意的是redis最大连接数最好设置为300,不然会出现很多报错。转载 2017-06-16 16:02:26 · 3086 阅读 · 1 评论 -
java(优化26) Lambda表达式(一)
1.Lambda表达式的由来案例:班导想了解一下各个同学的相关情况:1、来自苏州的有哪些同学上面的伪代码,是不是很简单,写一个方法,直接过滤出苏州地区的学生。问:班导又想知道来自北京的有哪些同学,那代码执行优化一下,可以动态传地区参数。2、地区参数化这样是不是就解决了,所有地区的查询问题,把地区作为一个参数。问:问题好像得到了解决,突然班导又要知道同学们的...转载 2019-08-15 14:48:13 · 246 阅读 · 0 评论 -
java(优化14) 15天玩转redis之第七篇
上个星期同事做一个业务模块,需要将一个80M的数据存入到redis缓存中,想法总是好的,真操作的时候遇到了HSet超时,我们使用的是C#的StackExchange.Redis驱动: 由于封装代码啥的都是网上下载的,第一反应就是把上面的“connectTimeout”设为5000 * 60 =3min,但是丝毫没有用处,也就是3min没有起到作转载 2016-06-23 14:36:07 · 628 阅读 · 0 评论 -
java(优化15) 报错"java.lang.ClassNotFoundException: net.sf.ezmorph.Morpher"解决方案
一、 测试类public static void main(String[] args) { String str="{\"value\":\"我是测试value值\"}"; //String -->json net.sf.json.JSONObject json=net.sf.json.JSONObject.fromObject(str); System.out.print原创 2016-07-28 11:43:15 · 16741 阅读 · 2 评论 -
java(优化二) 编号规则生成器(二)
一 需求:编写一个接口,有两个方法:一个返回当前年月+0001到9999的数值,如:2015040001,2015040002....;另一个方法返回年月日+0001到9999的数值,如:201504220001,201504220002....二 操作步骤:原创 2015-04-22 14:44:15 · 2065 阅读 · 0 评论 -
java(优化三) 编号规则生成器(三)
一 需求:编写一个接口,生成唯一的一个数值;二 操作步骤:2.1 建表DROP TABLE IF EXISTS `sys_idrule`;CREATE TABLE `sys_idrule` ( `RULE_ID` varchar(32) NOT NULL, `RULE_EXP` varchar(32) NOT NULL, `RULE_TYPE` varchar原创 2015-04-24 10:56:51 · 1369 阅读 · 1 评论 -
java(优化四) 自动生成pdf文件并保存到本地
一 测试:FileGenerator pdfGenServ = (FileGenerator) getBean("pdfGenServ");Result result = pdfGenServ.genFile(PDF_KEY, pdfModelVo);原创 2015-04-24 14:36:30 · 11991 阅读 · 4 评论 -
java(优化五) java操作redis之jedis篇
1、download jedis的源码:jedis采用的是git托管的,这边使用的是2.1.0版本:https://github.com/xetorthio/jedis/releases/tag/jedis-2.1.0;2、解压打开可以看到,jedis采用的是maven构建工程的,所以我们的开发工具最好能支持maven工程。3、eclipse导入jedis工程,在Package原创 2016-01-30 14:46:00 · 780 阅读 · 0 评论 -
java(优化六) java操作redis之基础篇
一、server端安装 1、下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6下载windows平台文件:解压后,选择当前64位win7系统对应的版本 2、安装 1)解压后将里面所有文件拷贝至redis安装转载 2016-01-30 15:17:42 · 438 阅读 · 0 评论 -
java(优化12) 15天玩转redis之第六篇
第六篇 有序集合类型一: 有序集合(SortedSet) 可能有些初次接触SortedSet集合的人可能会说,这个集合的使用场景都有哪些??? 我可以明确的告诉你:“范围查找“的天敌就是”有序集合“,任何大数据量下,查找一个范围的时间复杂度永远都是 O[(LogN)+M], 其中M:返回的元素个数。 为了从易到难,我们还是转载 2016-03-16 17:58:09 · 453 阅读 · 0 评论 -
java(优化七) 15天玩转redis之第一篇
第一篇 开始入手一:Redis是什么? 这个我想怎么总结呢,突然发现再好的解释也没有redis官网解释的好,它的解释已经达到超宇宙的级别了。。。不信你可以看看。人家也说了,redis是个内存存储的数据结构服务器,这个听起来有多么牛逼啊。。。。一说到数据结构,第一反映就会想到C#中那些dictionary,hashset,list,SortDicti转载 2016-03-14 16:35:15 · 454 阅读 · 0 评论 -
java(优化八) 15天玩转redis之第二篇
第二篇 基础的字符串类型我们都知道redis是采用C语言开发,那么在C语言中表示string都是采用char[]数组的,然后你可能会想,那还不简单,当我执行如下命令,肯定是直接塞给char[]数组的。如果你真的这么想的话,会有几个问题就要过来砍你了,先我们来找一个redis手册:http://doc.redisfans.com/第一:如果转载 2016-03-14 16:53:03 · 406 阅读 · 0 评论 -
java(优化九) 15天玩转redis之第三篇
第三篇 无敌的列表类型据说60%的人使用redis看重的是redis中的list类型,那这个list有什么用呢???不用我说大家都明白,做队列使用呗,为什么用它呢,很简单呗,因为有了它我就不需要专门的MQ产品啦,比如说RabbitMQ,ActiveMQ等等。。。对吧。 一:实战 先我们还是看一下List列表给我们提供的方法。转载 2016-03-14 17:07:10 · 392 阅读 · 0 评论 -
java(优化10) 15天玩转redis之第四篇
第四篇 哈希对象类型redis中的hash也是我们使用中的高频数据结构,它的构造基本上和编程语言中的HashTable,Dictionary大同小异,如果大家往后有什么逻辑需要用Dictionary存放的话,可以根据场景优先考虑下redis哦,起码可以装装逼嘛,现在我默认你已经有装逼的冲动了,打开redis手册,看看有哪些我们用得到的装逼方法。 一:常用转载 2016-03-14 17:28:21 · 443 阅读 · 0 评论 -
java(优化11) 15天玩转redis之第五篇
第五篇 集合对象类型这篇我们来看看Redis五大类型中的第四大类型:“集合类型”,集合类型还是蛮有意思的,第一个是因为它算是只使用key的Dictionary简易版,这样说来的话,它就比Dictionary节省很多内存消耗,第二个是因为它和C#中的HashSet是一个等同类型,废话不多说,先看redis手册,如下:上面就是redis中的set转载 2016-03-14 17:45:45 · 544 阅读 · 0 评论 -
java(优化13) java高并发量网站解决方案
一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的ht转载 2016-04-23 17:01:30 · 701 阅读 · 0 评论 -
java(优化一) 编号规则生成器(一)
一 需求:编写一个接口,要求自动生成000001-999999的一个值。传入参数:user_id、project_code 返回结果:000001-999999中不重复的数值。二 操作步骤: 2.1 建表(数据库mysql)DROP TABLE IF EXISTS `pj_contract_code`;CREATE TABLE `pj_contract_code` (原创 2015-04-22 14:19:55 · 6898 阅读 · 0 评论