上一页 1 2 3 4 5 6 7 ··· 11 下一页
摘要: 使用POI或JXLS导出大数据量(百万级)Excel报表常常面临两个问题: 1. 服务器内存溢出; 2. 一次从数据库查询出这么大数据,查询缓慢。 当然也可以分页查询出数据,分别生成多个Excel打包下载,但这种生成还是很缓慢。 大数据量导入请参考:Java实现大批量数据导入导出(100W以上) - 阅读全文
posted @ 2019-04-13 11:02 BarryW 阅读(26602) 评论(12) 推荐(1) 编辑
摘要: 最近业务方有一个需求,需要一次导入超过100万数据到系统数据库。可能大家首先会想,这么大的数据,干嘛通过程序去实现导入,为什么不直接通过SQL导入到数据库。 大数据量报表导出请参考:Java实现大批量数据导入导出(100W以上) -(二)导出 一、为什么一定要在代码实现 说说为什么不能通过SQL直接 阅读全文
posted @ 2019-04-13 10:52 BarryW 阅读(54129) 评论(66) 推荐(13) 编辑
摘要: 自 2 月 7 日开始,Java/JDK 12 就进入了 RC 阶段。按照发布周期,美国当地时间 3 月 19 日,也就是北京时间 20 号 Java 12 正式发布了! 1、Shenandoah:低暂停时间的 GC(实验性功能) 新增了一个名为 Shenandoah 的 GC 算法,通过与正在运行 阅读全文
posted @ 2019-04-01 17:26 BarryW 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 在阿里巴巴Java开发手册中,有这样一条规定: 但是手册中并没有给出具体原因,本文就来深入分析一下该规定背后的思考。 一、foreach循环 foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素。 Java语言从JDK 1.5.0开始 阅读全文
posted @ 2019-03-04 11:39 BarryW 阅读(6610) 评论(0) 推荐(1) 编辑
摘要: 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现,服务调用的分布式事务问题变的非常突出。分布式事务已经成为微服务落地最大的阻碍,也 阅读全文
posted @ 2019-02-26 09:19 BarryW 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 1 XA协议 首先我们来简要看下分布式事务处理的XA规范可知XA规范中分布式事务有AP,RM,TM组成: 其中应用程序(Application Program ,简称AP):AP定义事务边界(定义事务开始和结束)并访问事务边界内的资源。 资源管理器(Resource Manager,简称RM):Rm 阅读全文
posted @ 2019-02-26 09:01 BarryW 阅读(1101) 评论(0) 推荐(0) 编辑
摘要: 线程与锁:线程与锁模型有很多众所周知的不足,但仍是其他模型的技术基础,也是很多并发软件开发的首选。 函数式编程:函数式编程日渐重要的原因之一,是其对并发编程和并行编程提供了良好的支持。函数式编程消除了可变状态,所以从根本上是线程安全的,而且易于并行执行。 Clojure之道——分离标识与状态:编程语 阅读全文
posted @ 2019-02-20 15:35 BarryW 阅读(5064) 评论(0) 推荐(0) 编辑
摘要: 英文原文链接,译文链接,原文作者:Arun Manivannan ,译者:有孚 写过多线程的人都不会否认,多线程应用的维护是件多么困难和痛苦的事。我说的是维护,这是因为开始的时候还很简单,一旦你看到性能得到提升就会欢呼雀跃。然而,当你发现很难从子任务的错误中恢复或者有些僵尸BUG很难复现再或者你的分 阅读全文
posted @ 2019-02-02 09:36 BarryW 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 统一建模语言UML(Unified Modeling Language)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在 阅读全文
posted @ 2019-01-22 16:55 BarryW 阅读(2234) 评论(0) 推荐(0) 编辑
摘要: 转自:https://www.jianshu.com/p/ce30c31111ca 背景 随着互联网时代数据规模的爆发式增长,传统的单机系统在性能和可用性上已经无法胜任,分布式应用和服务化应用开始走进大家的视野,但是分布式的部署也会带来另外的问题,日志分散在各个应用服务节点中,出现问题不方便及时排查 阅读全文
posted @ 2019-01-18 16:43 BarryW 阅读(1803) 评论(0) 推荐(0) 编辑
摘要: Scala语言定义: --来自Scala官网:https://www.scala-lang.org/ 简单翻译一下:Scala 是一个将面向对象与函数式编程简明的结合在一起的高级语言。Scala的静态类型有效的避免了在复杂应用中的Bugs。并且他运行在Java虚拟机上,并且它拥有强大的三方库供调用, 阅读全文
posted @ 2019-01-18 13:41 BarryW 阅读(1275) 评论(0) 推荐(0) 编辑
摘要: 通过对Java注解(一):介绍,思想及优点学习了解,相信大家对Java注解有一定程度的了解,本篇文章将实战项目中的应用来加深对Java注解的了解。 本实例实现根据指定字段的JavaBean,生成对应列的报表。使用Java注解就是方便实现JavaBean与Excel或CSV列已一一映射。直观展现数据, 阅读全文
posted @ 2019-01-17 22:05 BarryW 阅读(315) 评论(0) 推荐(0) 编辑
摘要: “注解优先于命令模式”-出自《Effective Java》 Java 注解,从名字上看是注释,解释。但功能却不仅仅是注释那么简单。注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以 阅读全文
posted @ 2019-01-17 22:03 BarryW 阅读(963) 评论(0) 推荐(0) 编辑
摘要: 1.Actor模型 在使用Java进行并发编程时需要特别的关注锁和内存原子性等一系列线程问题,而Actor模型内部的状态由它自己维护即它内部数据只能由它自己修改(通过消息传递来进行状态修改),所以使用Actors模型进行并发编程可以很好地避免这些问题,Actor由状态(state)、行为(Behav 阅读全文
posted @ 2019-01-17 20:12 BarryW 阅读(1897) 评论(0) 推荐(0) 编辑
摘要: 传统企业业务链如何转型升级到新零售,这是目前企业普遍关心的重要问题之一。企业需要对所在行业前景和自身资源整合能力进行客观和准确的评估和专业的判断,真正筛选出企业核心的竞争力,以选择和谋划适合企业发展的升级转型道路。文章从财务角度视角,介绍了企业“新零售”转型的背景,分析了财务转型对促进企业“新零售”实现的适应性,并全面论述了财务工作如何为企业新零售业务的转型提供技术支持的基本思路和方法。 阅读全文
posted @ 2019-01-16 10:31 BarryW 阅读(2588) 评论(0) 推荐(0) 编辑
摘要: 虽然微服务现在如火如荼,但对其实践其实仍处于初级阶段。即使互联网巨头的实践也大多是试验层面,鲜有核心业务系统微服务化的案例。GTS是目前业界第一款,也是唯一的一款通用的解决微服务分布式事务问题的中间件,而且可以保证数据的强一致性。本文将对GTS做出深入解读。 微服务倡导将复杂的单体应用拆分为若干个功 阅读全文
posted @ 2019-01-11 20:48 BarryW 阅读(1869) 评论(0) 推荐(0) 编辑
摘要: 本地事务ACID大家应该都知道了,统一提交,失败回滚,严格保证了同一事务内数据的一致性!而分布式事务不能实现这种ACID,它只能实现CAP原则里的某两个,CAP也是分布式事务的一个广泛被应用的原型,CAP(Consistency, Availability, Partition Tolerance) 阅读全文
posted @ 2019-01-11 20:43 BarryW 阅读(890) 评论(0) 推荐(0) 编辑
摘要: 以下是对三个框架在设计或者说是编码特点中选取的几个我比较关注的点的对比图: 首先我们对几个关键的概念进行一些解析,方便大家更好的理解上面表中的概念: NIO、AIO 的区别? 在这里我们来看一下两者最明显的区别,NIO 是由 JDK 来处理异步事件的,就是说由 JDK 来探测系统缓冲区及Socket 阅读全文
posted @ 2019-01-11 14:45 BarryW 阅读(2563) 评论(0) 推荐(0) 编辑
摘要: 本章主要内容有: 1.线程进程的区别 2.线程的生命周期 3.Java内存模型 原子性,可见性及有序性 4.线程池及Java实现 1. 线程进程的区别 3. 线程的生命周期 4. Java线程几种创建方式 5. Java内存模型(JMM) 1) JMM中的8个原子操作 2) Happen-befor 阅读全文
posted @ 2019-01-11 14:10 BarryW 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 什么是分布式? 互联网应用的特点是:高并发,海量数据。互联网应用的用户数是没有上限的(取决于其开放特性),这也是和传统应用的本质区别。高并发指系统单位时间内收到的请求数量(取决于使用的用户数),没有上限。海量数据包括:海量数据的存储和海量数据的处理。这两个工程难题都可以使用分布式系统来解决。 简单理 阅读全文
posted @ 2019-01-11 08:51 BarryW 阅读(777) 评论(0) 推荐(0) 编辑
摘要: 1. JDK命令行工具 - jstack jps -l 查询当前运行线程 jstack -[operation] pid 其中operation: -F:当 jstack pid没有响应时,使用-F强制dump线程信息 -m:打印java线程栈和本地线程栈 -l:长期监听 2.JDK1.7以后的命令 阅读全文
posted @ 2018-12-27 13:25 BarryW 阅读(1011) 评论(0) 推荐(0) 编辑
摘要: 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证高效并发,也要保证操作的正确。 一些可能的实现 刚才提到过,实现秒杀的关键点是控制线程对资源 阅读全文
posted @ 2018-12-26 08:49 BarryW 阅读(1817) 评论(0) 推荐(0) 编辑
摘要: 先上代码: 如果不执行,先分析,95%以上的人认为是没有打印结果的; 那就执行一遍代码,相信99.99%的人看到的结果和你分析的结果是一致的。 但当你将循环次数增大到10万,100万,1000万,就可能出现打印结果(当然,CPU较差的出现的几率要小很多)。 那问题出在哪? 我们分析一般会出现的(x, 阅读全文
posted @ 2018-12-21 09:35 BarryW 阅读(1310) 评论(0) 推荐(1) 编辑
摘要: 很多人对Thread.join的作用以及实现了解得很少,毕竟这个api我们很少使用。这篇文章仍然会结合使用及原理进行深度分析 内容导航 Thread.join的作用 Thread.join的实现原理 什么时候会使用Thread.join Thread.join的作用 Thread.join的实现原理 阅读全文
posted @ 2018-12-21 09:18 BarryW 阅读(849) 评论(0) 推荐(0) 编辑
摘要: 文章简介 ThreadLocal应该都比较熟悉,这篇文章会基于ThreadLocal的应用以及实现原理做一个全面的分析 内容导航 什么是ThreadLocal ThreadLocal的使用 分析ThreadLocal的实现原理 ThreadLocal的应用场景及问题 什么是ThreadLocal T 阅读全文
posted @ 2018-12-19 08:51 BarryW 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 导读:随着数据量的快速增长,越来越多的企业迎来业务数据化时代,数据成为了最重要的生产资料和业务升级依据。本文由阿里AnalyticDB团队出品,近万字长文,首次深度解读阿里在海量数据实时分析领域的多项核心技术。 数字经济时代已经来临,希望能和业界同行共同探索,加速行业数字化升级,服务更多中小企业和消 阅读全文
posted @ 2018-12-19 08:45 BarryW 阅读(7793) 评论(0) 推荐(1) 编辑
摘要: 导读:复盘是项目结束后必不可少的阶段,好的复盘会议能够有效地促进团队成长。今天,阿里项目管理专家鹿迦以自身的经验,为大家分享如何做好一个项目的复盘。这篇文章分成两个部分,第一部分简单阐述对这种回顾会议的理解,认识会议的真正价值;第二部分是分享个人操作的团队回顾会议流程。 在阿里天猫新零售的天地会项目 阅读全文
posted @ 2018-12-19 08:39 BarryW 阅读(3860) 评论(0) 推荐(0) 编辑
摘要: Happens-before规则 阅读全文
posted @ 2018-12-18 21:07 BarryW 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 内容导航 volatile的作用 什么是可见性 volatile源码分析 volatile的作用 什么是可见性 volatile源码分析 一、volatile的作用 在多线程中,volatile和synchronized都起到非常重要的作用,synchronized是通过加锁来实现线程的安全性。而v 阅读全文
posted @ 2018-12-18 08:51 BarryW 阅读(5607) 评论(1) 推荐(3) 编辑
摘要: 一般通过Quartz实现定时任务很简单。如果实现分布式定时任务需要结合分布式框架选择master节点触发也可以实现。但我们有个实际需求是,页面可动态配置定时任务触发周期(比如,假如下班前如果把先决条件完成了,正常可以18:00触发完成批量任务,假如完不成,需要将任务设置到很晚,等到先决条件完成再触发)。这个时候需要满足1,2,3都要满足。这样实现起来就有一定难度了。 阅读全文
posted @ 2018-12-01 16:33 BarryW 阅读(4894) 评论(0) 推荐(0) 编辑
摘要: 1 Java引用介绍 Java从1.2版本开始引入了4种引用,这4种引用的级别由高到低依次为: 强引用 > 软引用 > 弱引用 > 虚引用 ⑴强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出O 阅读全文
posted @ 2018-11-28 17:04 BarryW 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 如果你还在为灵活的生成各种复杂报表犯愁,在为常用报表工具消耗大量内存担心。我推荐一个很好用的开源的Java报表生成工具。 本工具封装了强大的POI。但与POI不同的是,它可以用很简洁的代码生成复查的,各种功能的报表。 官网地址:http://jxls.sourceforge.net/index.ht 阅读全文
posted @ 2018-11-23 21:59 BarryW 阅读(2364) 评论(0) 推荐(0) 编辑
摘要: 我们系统中经常有耗费时间长的任务,但客户端往往需要马上得到回应。这时我们就可以如下步骤实现: 1、客户端发起请求执行任务(选定条件,下载报表); 2、首先将任务ID及开始时间,起始状态记录到数据库表中; 3、另起一个后台线程去执行这个耗时任务(比如生成报表); 4、线程执行成功或失败状态记录到数据库 阅读全文
posted @ 2018-11-23 21:42 BarryW 阅读(1341) 评论(0) 推荐(0) 编辑
摘要: 对 IntelliJ IDEA 内存采用不同的设置方案,会对 IDE 的速度和响应能力产生不同的影响。 Don’t be a Scrooge and give your IDE some more memory 不要做守财奴,给IDE多留点内存吧。 昨天,大家就是否自定义 IntelliJ IDEA 阅读全文
posted @ 2018-11-23 20:48 BarryW 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 我们公司性质是新零售,公司也有专门的框架组。这群大牛自己开发了一整套分布式微服务框架。我们也在使用这套框架,有很多心得体会。 该框架既Dapeng也!开源github地址:https://github.com/dapeng-soa Dapeng-soa 是一个轻量级、高性能的微服务框架,构建在Net 阅读全文
posted @ 2018-11-23 20:24 BarryW 阅读(1171) 评论(0) 推荐(0) 编辑
摘要: 在处理数据库连接或者输入输出流等场景时,我们经常需要写一些非常繁琐又枯燥乏味的代码来关闭数据库连接或输入输出流。 例如数据库操作: def update(sql: String)(conn: Connection): Int = { var statement: Statement = null t 阅读全文
posted @ 2018-11-22 17:26 BarryW 阅读(2096) 评论(0) 推荐(0) 编辑
摘要: 很多时候应用服务启动或关闭会做一些预加载(比如缓存,定时任务启动等)或收尾处理工作(比如程序失败记录等) 1. 首先看下Spring框架服务启动加载操作实现,直接上代码 2. 退出服务及几种退出方法 如下图: 对于强制关闭的几种情况,系统关机,操作系统会通知JVM进程关闭并等待,一旦等待超时,系统会 阅读全文
posted @ 2018-11-22 13:33 BarryW 阅读(4903) 评论(0) 推荐(0) 编辑
摘要: Try-with-resources Try-with-resources是Java7中一个新的异常处理机制,它能够很容易地关闭在try-catch语句块中使用的资源。 利用Try-Catch-Finally管理资源(旧的代码风格) 在Java7以前,程序中使用的资源需要被明确地关闭,这个体验有点繁 阅读全文
posted @ 2018-11-21 08:55 BarryW 阅读(16208) 评论(0) 推荐(1) 编辑
摘要: 最近实现一个工具,Main函数会有很多参数,而且参数类型不同,为了统一解析,网上找到三方工具类Args4j,轻松搞定。 代码实例如下: 定义解析类: 是不是就看起来很直观了! 阅读全文
posted @ 2018-11-18 00:03 BarryW 阅读(4942) 评论(0) 推荐(0) 编辑
摘要: 最近有个任务:根据查询SQL直接导出报表 实现关键是,怎么根据sql查询的数据动态生成对象列表,想到Cglib动态代理实现 废话少说,上代码: 定义动态生成Java Bean类: 阅读全文
posted @ 2018-11-17 23:58 BarryW 阅读(1830) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 11 下一页