![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 68
菜鸟程序汪
一步一个脚印
展开
-
深入浅出JMS(一)--JMS基本概念
摘要:The Java Message Service (JMS) API is a messaging standard that allows application components based on the Java Platform Enterprise Edition (Java EE) to create, send, receive, and read messages. It enables distributed communication that is loosely coupl转载 2016-11-23 17:03:45 · 453 阅读 · 0 评论 -
jsp页面格式化数字或时间
Tags fmt:requestEncoding fmt:setLocale fmt:timeZone fmt:setTimeZone fmt:bundle fmt:setBundle fmt:message fmt:param fmt:formatNumber fmt:parseNumber fmt:formatDate fmt:parseDa转载 2017-03-02 08:38:54 · 452 阅读 · 0 评论 -
Java基础学习过程
JVM 1. 内存模型( 内存分为几部分? 堆溢出、栈溢出原因及实例?线上如何排查?) 2. 类加载机制 3. 垃圾回收 Java基础 什么是接口?什么是抽象类?区别是什么? 什么是序列化? 网络通信过程及实践 什么是线程?java线程池运行过程及实践(Executors)转载 2017-04-07 13:08:45 · 723 阅读 · 0 评论 -
关于单例模式的DoubleCheckLock同步的思考
在javaeye上看到很多朋友都提出单例模式的一些变种实现,比如加入了即时加载和DoubleCheckLock机制,来提高并发性能。但事实上这些机制真的必要吗? 目前公认影响单例性能的要素有两个:一是实例构造时间开销,一是获取单例实例的同步阻塞开销。 我的理解是,并发相对与同步阻塞的优势,在于当两条线程中的一条在执行时间开销较大的操作,而另一条线程无须执行该操作,则并发执行保证了开转载 2017-04-08 13:05:28 · 1232 阅读 · 0 评论 -
hashMap的原理 深入理解
首先再次强调hashcode (==)和equals的真正含义(我记得以前有人会说,equals是判断对象内容,hashcode是判断是否相等之类):equals:是否同一个对象实例。注意,是“实例”。比如String s = new String(“test”); s.equals(s), 这就是同一个对象实例的比较;等号(==):对比对象实例的内存地址(也即对象实例的ID),转载 2017-06-27 22:15:23 · 516 阅读 · 0 评论 -
单点登录原理与简单实现
一、单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求...转载 2018-02-27 13:55:53 · 151 阅读 · 0 评论 -
Eclipse 安装反编译插件jadclipse
Eclipse 安装反编译插件jadclipse工具:jadClipse version:3.3.0的jar包Eclipse Java EE IDE for Web Developers. Version: Indigo Service Release 1jad.exe可执行文件步骤:1、先下载jadClipse的jar包 链接:sourceforge.net/projects/jadcli...原创 2018-02-27 14:29:06 · 279 阅读 · 0 评论 -
10个实用的但偏执的Java编程技术
10个最有用但偏执的Java编程技术1.将String字符串放在最前面为了防止偶发性的NullPointerException 异常,我们通常将String放置在equals()函数的左边来实现字符串比较,如下代码:// Badif (variable.equals("literal")) { ... }// Goodif ("literal".equals(variable)) { ......转载 2018-02-27 17:17:23 · 204 阅读 · 0 评论 -
简述分布式RPC框架
RPC定义:远程过程调用,是实现分布式计算的基础。实现方式:1.基于TCP协议的RPC;2.基于HTTP协议的RPC;处理过程:一个简单的RPC过程包括一个服务消费者和服务提供者,服务消费者需要使用服务提供者的提供的服务,就需要传给服务提供方相关的信息,这些信息包括服务名称(实际上是一个接口),方法名称,方法的参数类型,参数个数等参数列表信息以及对应的参数,服务提供者根据这些信息返回处理结果给服务...原创 2018-03-19 14:42:53 · 2798 阅读 · 0 评论 -
Zookeeper服务注册与发现
Zookeeper作为服务注册与发现的解决方案,它有如下优点:1. 它提供的简单API2. 已有互联网公司(例如:Pinterest,Airbnb)使用它来进行服务注册与发现3. 支持多语言的客户端4. 通过Watcher机制实现Push模型,服务注册信息的变更能够及时通知服务消费方缺点是:1. 引入新的Zookeeper组件,带来新的复杂性和运维问题2. 需自己通过它提供的API来实现服务注册与...原创 2018-03-19 15:33:15 · 7636 阅读 · 0 评论 -
轻量级分布式 RPC 框架
RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC,它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC。会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化。众所周知,TCP 是传输层协议,...转载 2018-03-23 08:55:47 · 248 阅读 · 0 评论 -
ZooKeeper分布式锁的流程
分布式锁定义:分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。工作流程:1、在zookeeper指定节点(locks)下创建临时顺序节点node_n2、获取locks下所有子节点children3、对子节点按节点自增序号从小到大排序4、判断本节点是不是第一个子节点,若是,则获取锁;若不是,则监听比该节点小的那个节点的删除事件5、若监听事件生效...原创 2018-03-19 16:02:49 · 471 阅读 · 0 评论 -
Spring事务的一些特性
事务的四大特征1.原子性:一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做要么全不做2.一致性:数据不会因为事务的执行而遭到破坏3.隔离性:一个事物的执行,不受其他事务的干扰,即并发执行的事物之间互不干扰4.持久性:一个事物一旦提交,它对数据库的改变就是永久的五个隔离级别1.default:默认的事务隔离级别,跟具体的数据有关,mysql默认的事务隔离级别是repeatable_re...原创 2018-03-28 13:36:15 · 1153 阅读 · 0 评论 -
简述HashMap
HashMap就是一张hash表,键和值都没有排序。HashMap是非线程安全的,只用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。HashMap 实现了Serializable接口,因此它支持序列化。HashMap 容量设为不小于指定容量的2的幂次方,且最大值不能超过2的30次方。HashMap的存储结构紫色部分即代表哈希表本身(其实是一个...原创 2018-03-28 22:19:44 · 1751 阅读 · 1 评论 -
json技术比较
一 、各个JSON技术的简介和优劣1.json-libjson-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.转载 2017-01-08 14:21:03 · 717 阅读 · 0 评论 -
Tomcat配置DruidDataSource JNDI数据源例子
一、拷贝数据库驱动到:%TOMCAT%\lib下,这里是(ojdbc6.jar)。二、拷贝Druid jar包到:%TOMCAT%\lib下,这里是(druid-1.0.23.jar)以上jar包传送门:http://download.csdn.net/detail/nk_tf/9731868二、以连接Oracle数据库为例,在%TOMCAT%\conf\conte原创 2017-01-08 14:01:39 · 2213 阅读 · 0 评论 -
JavaBean,List,Map转成json格式
java list 、map、javaBean快速转换json的通用方法转载 2016-11-23 17:34:39 · 358 阅读 · 0 评论 -
List内置分页sublist
//================将数据分页============== //查询后的数据集合,该对象同样用户截取后的数据集合 Listobj= newArrayList(); //数据总数 int totalCount = 155; //总的页数 int pageCount = 0; //每页显示的总数 int end原创 2016-11-23 18:07:22 · 652 阅读 · 0 评论 -
webservice常用注解总结
Annotation作用说明@GET查询请求相当于数据库的查询数据操作@POST插入请求相当于数据库的插入数据操作@PUT更新请求相当于数据库的更新数据操作@DELETE删除请求相当于数据的删除数据操作@Pathuri路径定义资源的访问路径,client通过这个路径访问资源。比如:@转载 2016-11-24 09:18:56 · 489 阅读 · 0 评论 -
StringUtils 常用方法
org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法:1. 检查字符串是否为空:static boolean isBlank(CharSequence str) 判断字符串是否为空或null;static boolean isNotBlank(CharSequence str) 判转载 2016-11-24 09:54:42 · 1676 阅读 · 0 评论 -
Spring集成Quartz定时任务框架介绍和Cron表达式详解
在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等。我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但时调度控制非常不方便,并且我们需要大量的代码。使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍。一、增加所依转载 2016-11-24 17:17:40 · 541 阅读 · 0 评论 -
FindBugs错误描述和解决方法
FindBugs常见错误描述和解决方法(一)[DLS_DEAD_LOCAL_STORE]描述: Dead store to 未使用的局部变量解决方法:局部变量定义后未使用;实例化对象后又重新对该对象赋值(二) [ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD] 描述:Write to static field 通过实例方法更新转载 2016-11-24 17:21:22 · 858 阅读 · 0 评论 -
一次完整的HTTP请求所经历的7个步骤
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1. 建立TCP连接在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根转载 2016-11-24 17:27:39 · 7897 阅读 · 0 评论 -
SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
述继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能。现在你无须让 Controller 继承任何接口,无需在 XML 配置文件中定义请求和 Controller 的映射关系,仅仅使用注解就可以让一个 POJO 具有 Controller 的绝大部分功能 —— Spring MVC 框架的易用性得到了进一转载 2016-11-24 17:34:26 · 856 阅读 · 0 评论 -
深入分析 iBATIS 框架之系统架构与映射原理
iBATIS 通过 SQL Map 将 Java 对象映射成 SQL 语句和将结果集再转化成 Java 对象,与其他 ORM 框架相比,既解决了 Java 对象与输入参数和结果集的映射,又能够让用户方便的手写使用 SQL 语句。本文主要介绍了 iBATIS 框架的体系结构和运行流程,以及 iBATIS 如何完成 SQL 语句的解析与 Java 对象与数据字段映射关系的建立,最后用一个实例说明了转载 2016-11-24 17:36:50 · 3238 阅读 · 0 评论 -
Intellij IDEA 快捷键整理
文:http://www.cnblogs.com/tonycody/p/3257601.html【常规】Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾转载 2016-11-24 17:43:50 · 282 阅读 · 0 评论 -
java中Map,List与Set的区别
Set,List,Map的区别java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存转载 2016-11-24 17:56:28 · 320 阅读 · 0 评论 -
Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别
Spring事务配置的五种方式前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制转载 2016-11-24 17:59:26 · 327 阅读 · 0 评论 -
hibernate二级缓存攻略
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级转载 2016-11-24 18:24:56 · 231 阅读 · 0 评论 -
接口和抽象类有什么区别
接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继承一...转载 2016-11-24 18:30:24 · 355 阅读 · 0 评论 -
使用Ant发布web应用到tomcat
使用Ant发布web应用到tomcat 今天在公司用ant写了个部署web应用的脚本,闲来无事,就稍微总结一下,以供以后参照使用,也希望作为一个demo, 能对大家有启迪的作用,如果真的如此,我也就很是欣慰了。 好了,言归正传,下面就开始记流水账吧。一.Ant简介 Ant是一种基于java的build工具,有些类似于unix系统中的ma转载 2016-12-30 14:51:39 · 2795 阅读 · 0 评论 -
单例模式漫画版
转载:https://blog.csdn.net/bjweimengshu/article/details/78716839 ————— 第二天 ————— 单例模式第一版: public class Singleton {priva...转载 2018-08-15 15:10:23 · 440 阅读 · 0 评论