
java面向对象等技术
文章平均质量分 95
谷神通
天子望气,谈笑杀人。
展开
-
java使用poi导出excel的工具类
java使用poi导出excel,使用的包是 compile group: 'org.apache.poi', name: 'poi', version: '3.15'工具类代码:import java.io.OutputStream;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.text.SimpleDateFormat;import java.util.ArrayList原创 2020-08-05 12:13:53 · 2517 阅读 · 1 评论 -
通用的list转tree的java工具类
import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import ...原创 2019-10-25 13:54:54 · 1652 阅读 · 1 评论 -
用httpclient抓取全国火车票信息
import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;原创 2017-01-03 21:08:35 · 997 阅读 · 0 评论 -
java枚举与常量类的区别
public enum Light { RED, GREEN, YELLOW;}我们只能够表示出红灯、绿灯和黄灯,但是具体的值我们没办法表示出来。 别急,既然枚举类型提供了构造函数,我们可以通过构造函数和覆写toString方法来实现首先给Light枚举类型增加构造方法,然后每个枚举类型的值通过构造函数传入对应的参数, 同时覆写toString方法,在该方转载 2016-12-19 11:06:02 · 14250 阅读 · 5 评论 -
关于java代码质量的问题
一、错误码:WMI_WRONG_MAP_ITERATOR 案例一: 案例二: Bug: Method JTAMainFrame.initView(JFrame) makes inefficient use of keySet iterator instead of entrySet iterator Pattern id: WMI_WRONG转载 2017-03-20 18:35:11 · 7210 阅读 · 0 评论 -
java jvm详解
1. 什么是JVM?JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码转载 2017-04-18 14:26:26 · 612 阅读 · 0 评论 -
设计模式六大原则
转自:http://www.uml.org.cn/sjms/201211023.asp设计模式六大原则 作者:zhengzhb ,发布于2012-11-2,来源:优快云 目录:设计模式六大原则(1):单一职责原则设计模式六大原则(2):里氏替换原则设计模式六大原则(3):依赖倒置原则设计模式六大原则(4):接口隔转载 2017-04-14 16:29:26 · 355 阅读 · 0 评论 -
redis安装和java连接redis使用
Redis 安装Window 下安装下载地址:https://github.com/MSOpenTech/redis/releases。Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。如果下载过慢的话,可以下载国内的资源:h转载 2017-05-23 11:53:37 · 1495 阅读 · 0 评论 -
log4j2 使用详解
本人近年都在做Android项目,最近有个纯Java项目紧张,临时介入其中。日志模块,控制端显示不同等级日志同时保存到文件中,要求每天保存一个日志文件,日志目录保留最近30天日志文件。最初没想到用库,自己采用线程池方式写日志,在写日志时先判断是否有30天前的日志删除,然后对比时间判定是否有当天日志文件,之后采用BufferedWriter写日志。写好后,客户进行代码审查,不太相信我写的效率,要求采转载 2017-05-18 16:52:38 · 2478 阅读 · 0 评论 -
btrace使用
前言: 对线上的java服务, 往往采用日志进行问题处理和分析. 倘若日志缺乏相关的信息时, 那又该如何处理? 远程调试会影响服务的正常工作, 修改代码重新部署的方案其实时性和灵活性难以保证(线上服务的流程繁琐, 问题追踪的不确定性), 有没有两全的完美方案(不影响正常服务, 又灵活/无侵入性)呢? 答案是有, 它就是人见人爱, 花见花开的神器BTrace. 那BTrace究竟是这么样转载 2016-12-21 17:25:35 · 644 阅读 · 0 评论 -
ehcache实战
关于缓存的话题,在坛子里已经有很多讨论,简单的来说,如果一个应用中80% 的时间内都在访问20% 的数据,那么,这时候就应该使用缓存了。 测试环境: MySQL 5.0.22, jdk1.6.0_07, ehcache-1.6.0-beta2, mysql-connector-java-3.1.14 测试表:Sql代码 CREATE TAB转载 2016-12-21 16:18:13 · 360 阅读 · 0 评论 -
ehcache详细解析
Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大,最初知道它,是从Hibernate的缓存开始的。网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的问题,请自行google;对于API,官网上介绍已经非常清楚,请参见官网;但是很少见到特性说明和对实现原理的分析,因此在这篇文章里面,我会详细介绍和分析EhCache的特性,加上一些自己的理解和思考转载 2016-12-21 16:15:54 · 1201 阅读 · 0 评论 -
采用静态Map、ConcurrentHashMap处理缓存
考虑到在使用HashMap在并发时会出现不正确行为,根据网上资料自己编写了采用ConcurrentHashMap来完成静态缓存的处理,目的是为了能够用来处理高并发的线程安全类,如有问题请各位大侠指教:[java] view plain copypackage com.zengms.cache; import java.util.转载 2016-12-21 16:04:16 · 3403 阅读 · 0 评论 -
35 个 Java 代码性能优化总结
35 个 Java 代码性能优化总结代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑 的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?作者:来源:|2015-11-05 09:02 收藏 分享前言代码优化,一个很重要的课题。可能有些人觉得没用转载 2016-11-22 18:09:20 · 329 阅读 · 0 评论 -
jvm调优
JVM调优工具Jconsole,jProfile,VisualVMJconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。转载 2016-11-22 17:37:54 · 266 阅读 · 0 评论 -
JVM调优浅谈
1.数据类型 java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:它代表的值就是数值本身,而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。 基本类型包括:byte、short、int、long、char、float、double、boolean、returnAddres转载 2016-11-22 17:32:19 · 287 阅读 · 0 评论 -
Java 多线程 并发编程
一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间转载 2016-12-01 18:33:51 · 401 阅读 · 0 评论 -
Java7/8 中的 HashMap 和 ConcurrentHashMap解析
原文出处: JavaDoop网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤其像 Java8 中的 ConcurrentHashMap,大部分文章都说不清楚。终归是希望能降低大家学习的成本,不希望大家到处找各种不是很靠谱的文章,看完一篇又一篇,可是还是模模糊糊。阅读建议:四节基本上可以进行...转载 2016-12-01 18:28:21 · 2043 阅读 · 0 评论 -
JAVA CAS原理深度分析
看了一堆文章,终于把JAVA CAS的原理深入分析清楚了。感谢GOOGLE强大的搜索,借此挖苦下百度,依靠百度什么都学习不到! 参考文档:http://www.blogjava.net/xylz/archive/2010/07/04/325206.htmlhttp://blog.hesey.net/2011/09/resolve-aba-by-atomicstampedrefe转载 2016-12-01 10:36:16 · 321 阅读 · 0 评论 -
log4j2的配置详情
一、背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方案)以及log4j2配置文件的详解,就需要我们来好好聊一聊了。本文就专门来讲解下log4j2.xml配置文件的各项标签的意义。二、配置全解 1.关于配置文件的名称以及在项目转载 2017-05-18 17:43:52 · 718 阅读 · 0 评论 -
深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点。第二篇博文深入浅出JMS(二)–ActiveMQ简单介绍以及安装,我们介绍了消息中间件ActiveMQ,安装,启动,以及优缺点。第三篇博文深入浅出JMS(三)–ActiveMQ简单的HelloWorl转载 2017-05-19 10:10:21 · 373 阅读 · 0 评论 -
activemq安装与简单消息发送接收实例
activemq安装与简单消息发送接收实例安装环境:Activemq5.11.1, jdk1.7(activemq5.11.1版本需要jdk升级到1.7),虚拟机: 192.168.147.131[root@localhost software]# pwd/export/software[root@localhost software]# tar -zxvf apa转载 2017-05-19 19:07:48 · 493 阅读 · 0 评论 -
自动生成mybatis代码的图形化工具
mybatis-generator-guimybatis-generator-gui是基于mybatis generator开发一款界面工具, 本工具可以使你非常容易及快速生成Mybatis的Java POJO文件及数据库Mapping文件。注意事项0.8.3版本请删除版本之前版本config目录下的sqlite3.db文件,重新mvn install安装核心特性按照界面步骤...转载 2019-05-17 14:51:53 · 715 阅读 · 0 评论 -
JDK重要包和Java学习方法论
JDK重要包和Java学习方法论 以下内容摘自:万能的林萧说:一篇文章教会你,如何做到简历中要求的“要有扎实的Java基础” 第一级别:精读源码 该级别包含的包如下:java.iojava.langjava.util第二级别:深刻理解 该级别包含的包如下:java.lang.reflectjava.netjavax.net.*java.nio.*...转载 2019-02-19 20:18:00 · 361 阅读 · 0 评论 -
一篇笔记整理JVM工作原理
一篇笔记整理JVM工作原理前言: 想提高Java开发,了解jvm是必不可少的。它让开发者了解他们的代码,jvm是如何变异与运行。深入了解jvm:会让你的代码写的高效,逐步成为大神 下面介绍jvm的基本知识>>数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。 基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量...转载 2019-02-18 12:57:05 · 173 阅读 · 0 评论 -
各种乱码问题及原理,很全面
一、编码进程【01编码】——很久很久以前,为了表示二极管的通、分,我们引入的高电平、低电平,之后又引入的1、0编码进行代替 【ASCII编码】——很久以前,也就是上个世纪60年代,美国佬为了把计算机的“0101010”编码与文字进行对应起来,制定了一套ASCII编码方案。人总是自私的,他只对自己的语言进行编码,26个字母、数字、其他符号,只用了7位二进制数搞定,第一位用0表示,预留着。...转载 2018-09-11 17:19:46 · 11005 阅读 · 0 评论 -
爬取百度地图全国省市区地铁线路等数据
从百度地图和高德地图中提炼出了对应的接口,方便iOS直接调用。1.获取全国地铁城市:http://map.baidu.com/?qt=subwayscity&t=1234577882.根据获取的城市code查询地铁线路详情http://map.baidu.com/?qt=bsi&c=citycode&t=1234577883.百度地图行政区及商圈接口分析:参数: qt=su...原创 2018-05-30 14:51:48 · 13102 阅读 · 4 评论 -
java中高级面试题总结
最近要面试几个java开发,copy保存看下留作面试资源题库面试问题:一、Java基础方面: 1、Java面相对象的思想的理解(主要是多态): http://blog.youkuaiyun.com/zhaojw_420/article/details/704776362、集合:ArrayList,LinkedList,HashMap,LinkedHashMap,ConcurrentHashMap,HashTa...转载 2018-03-24 12:51:51 · 1060 阅读 · 0 评论 -
java线程池管理多线程的应用
最近有一个需求,前端点击一个按钮,后端需要多线程执行任务,执行完返回结果到前端。使用线程池实现,每次调用新建线程池对象,使用完销毁线程池对象,这个用的是spring线程池,java自带的线程池效果差不多,代码如下:实现代码: public String testThreadPool() { ThreadPoolTaskExecutor threadPoolTaskExecu原创 2018-01-31 17:54:18 · 1284 阅读 · 0 评论 -
Java代码实现多线程下载和断点续传
多线程下载原理客户端要下载一个文件, 首先请求服务器,服务器将这个文件传送给客户端,客户端保存到本地, 完成了一个下载的过程.多线程下载的思想是客户端开启多个线程同时下载,每个线程只负责下载文件的一部分, 当所有线程下载完成的时候,文件下载完毕. 并不是线程越多下载越快, 与网络环境有很大的关系在同等的网络环境下,多线程下载速度要高于单线程.多线程下载占用资源比单线程多,相当于用资转载 2017-11-22 18:06:54 · 410 阅读 · 0 评论 -
面试感悟:3年工作经验java程序员应有的技能
因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部分内容也是专门面向咱们Java程序员的。简单先说一下,LZ坐标杭州,13届本科毕业,算上年前在阿里巴巴B2B事业部的面试,一共有面试了有6家公司(因为LZ不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少),其中转载 2017-11-17 11:49:16 · 465 阅读 · 0 评论 -
java9 新特性
Java 9 包含了丰富的特性集。虽然Java 9没有新的语言概念,但是有开发者感兴趣的新的API和诊断命令。我们将快速的,着重的浏览其中的几个新特性:模块化系统–Jigsaw 项目模块化是一个很通用的概念。在软件中,模块化可以运用到编写和实现一个程序和计算系统,他们都是作为独立的模块,而不是作为一个单一的和完整的设计转载 2017-10-13 10:28:44 · 790 阅读 · 0 评论 -
spring security
spring security使用分类:如何使用spring security,相信百度过的都知道,总共有四种用法,从简到深为:1、不用数据库,全部数据写在配置文件,这个也是官方文档里面的demo;2、使用数据库,根据spring security默认实现代码设计数据库,也就是说数据库已经固定了,这种方法不灵活,而且那个数据库设计得很简陋,实用性差;3、spring security和Ac转载 2017-08-16 15:59:00 · 340 阅读 · 0 评论 -
使用logback.xml配置来实现日志文件输出
Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4转载 2017-08-09 10:01:25 · 779 阅读 · 0 评论 -
Servlet3-异步请求-DeferredResult
第22章 异步请求Servlet3.0规范新增了对异步请求的支持,spring MVC也在此基础上对异步请求提供了方便。异步请求是在处理比较耗时的业务时先将request返回,然后另起线程处理耗时的业务,处理完后再返回给用户。异步请求可以给我们带来很多方便,最直接的用法就是处理耗时的业务,比如,需要查询数据库、需要调用别的服务器来处理等情况下可以先将请求返回给客户端,然后启用新线程转载 2017-07-31 16:24:48 · 2548 阅读 · 0 评论 -
Java8的CompletableFuture异步调用
Java8提供了一种函数风格的异步和事件驱动编程模型CompletableFuture,该模型不同于以往Java版本,不会造成堵塞Blocking。过去,Java 5并发包主要聚焦于异步任务处理,其模型特点是基于一个生产者线程,不断地创造任务,通过一个堵塞Blocking队列传递给任务的消费者,这个模型在Java 7和Java 8以后使用了另外一种任务执行模型,同时将一个任务的数据分解到子集中,这转载 2017-07-07 09:53:22 · 2667 阅读 · 0 评论 -
【java回调】同步/异步回调机制的原理和使用方法
【java回调】同步/异步回调机制的原理和使用方法回调(callback)在我们做工程过程中经常会使用到,今天想整理一下回调的原理和使用方法。回调的原理可以简单理解为:A发送消息给B,B处理完后告诉A处理结果。再简单点就是A调用B,B调用A。那么是如何实现的呢?一般而言,处理消息的类是唯一的,而发送消息的类却是各种各样的,所以一般的做法是将回调方法做成一个接转载 2017-05-22 20:28:37 · 1881 阅读 · 0 评论 -
java进阶--面试的知识点
面试的知识点注意:1、很多问题是没有标准答案的。2、注意个人发挥和引申。 3、个人去查找答案。-----------------------------------------------------------------主要节点:个人简介(口述)?这个非常重要。体现表达能力。别人不是先看简历,而是先听你表达。把重点信息,串起来,简转载 2016-12-01 09:55:07 · 1890 阅读 · 0 评论 -
一道面试题深入了解java底层
Java code?123456789101112131415161718192021222324252627282930转载 2016-11-02 15:20:45 · 3830 阅读 · 0 评论 -
Java里面LinkedList、ArrayList的效率分析
Java数据结构之LinkedList、ArrayList的效率分析前言: 在我们平常开发中难免会用到List集合来存储数据,一般都会选择ArrayList和LinkedList,以前只是大致知道ArrayList查询效率高LinkedList插入删除效率高,今天来实测一下。先了解一下List List列表类,顺序存储任何对象(顺序不变),可重复。 Lis...原创 2016-04-21 15:58:17 · 756 阅读 · 0 评论