![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 83
darkdragonking
这个作者很懒,什么都没留下…
展开
-
Maven常用插件介绍及如何打一个瘦jar包
maven打包插件原创 2022-07-16 09:15:30 · 1715 阅读 · 0 评论 -
Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨
原文地址点击此处Part I没啥好说的,直接开始Part II吧。 Part II谈到了对象的克隆,就不得不说为什么要对对象进行克隆。Java中所有的对象都是保存在堆中,而堆是供全局共享的。也就是说,如果同一个Java程序的不同方法,只要能拿到某个对象的引用,引用者就可以随意的修改对象的内部数据(前提是这个对象的内部数据通过get/set方法曝露出来)。有的时候转载 2017-03-14 14:52:58 · 401 阅读 · 0 评论 -
五分钟理解Java的反射API
原文地址点击此处反射APIjava是一种具有反射功能的语言。允许开发人员在运行时检查类型、方法、字段、注解等,并在程序运行时决定是否使用。 为此,Java的反射API提供类,类,字段,构造函数,方法,注释和其他。 使用它们可以与编译时未知的类型进行交互,例如创建未知类的实例并对它们调用方法。这个快速提示旨在让您深度了解什么是反射,它在Java中的使用,以及它可以用于什么。转载 2017-03-21 10:36:24 · 536 阅读 · 0 评论 -
Java 中 Comparable 和 Comparator 比较
原文地址点击此处Comparable 简介Comparable 是排序接口。若一个类实现了Comparable接口,就意味着“该类支持排序”。 即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进转载 2017-03-02 17:18:59 · 254 阅读 · 0 评论 -
关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
原文链接点击此处一、前言最近在工作上用到了一个静态方法,跟同事交流的时候,被一个问题给问倒了,只怪基础不扎实...问题大致是这样的,“在多线程环境下,静态方法中的局部变量会不会被其它线程给污染掉?”;我当时的想法:方法中的局部变量在运行的时候,是存在JAVA栈中的,方法运行结束,局部变量也就都弹光了,理论上单线程的话是不会有问题的,我之所以不知道,是因为不清楚在转载 2017-01-12 17:34:45 · 602 阅读 · 0 评论 -
搭建Nginx+Java环境
原文地址点击此处一、简介:Tomcat在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱。虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态页面要比通过Tomcat处理在性能方面好很多。二、下载安装:下载nginxhttp://nginx.org/en/download.html下载解压后放到F转载 2016-11-16 15:11:43 · 382 阅读 · 0 评论 -
java的页面重定向问题
一、URL重写是什么?URL重写,其实就是把带一大堆参数的url,变成一个看上去很规矩的url。例如:将/test.jsp?id=100111重写 ,重写后可以用/test/100111.html表示二、优缺点1:有利于搜索引擎的抓取,因为现在大部分的搜索引擎对动态页面的抓取还比较弱,它们更喜欢抓取一些静态的页面。而我们现在的页面大部分的数据都是动态的显示的。这就需要我原创 2016-07-11 15:14:20 · 3015 阅读 · 0 评论 -
Eclipse 插件安装方法
原文链接点击此处Eclipse插件的安装方法大体有以下三种:[9]第一种:直接复制法假设Eclipse的安装目录在C:\eclipse,解压下载的eclipse 插件或者安装eclipse 插件到指定目录AA(如:c:\AA)文件夹,打开AA 文件夹,在AA文件夹里分别包含两个文件夹features和plugins ,然后把两个文件夹里的文件分别复制到C:\ecli转载 2016-05-19 18:53:20 · 344 阅读 · 0 评论 -
java对redis的基本操作
原文地址点击此处一、server端安装 1、下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载windows平台文件: 解压后,选择当前64位win7系统对应的版本: 2、安装 1)解压后将里面所有文转载 2016-01-06 15:36:44 · 310 阅读 · 0 评论 -
一次失败的hadoop集成eclipse的测试
1、真可谓步步该灾处处有难啊。。。 2、代码如下package com.xx.hadoop.test.wordcount;import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org.apache.hado原创 2017-05-17 15:47:30 · 2078 阅读 · 1 评论 -
单点登录原理与简单实现
原文地址点击此处一、单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资转载 2017-05-19 10:03:15 · 440 阅读 · 0 评论 -
AVL树 之 Java的实现
原文地址点击此处AVL树的介绍AVL树是根据它的发明者G.M. Adelson-Velsky和E.M. Landis命名的。 它是最先发明的自平衡二叉查找树,也被称为高度平衡树。相比于”二叉查找树”,它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。AVL树是高度平衡的而二叉树。它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。 上面的两张图片,左边的是AVL树,它的任何节点的...转载 2018-05-10 13:51:52 · 256 阅读 · 0 评论 -
生产者/消费者模式的理解及实现
原文是一個思想性和邏輯性很強的文章,對我有很大啟發。先说dark对本文的理解吧。其实重点就是,在生产者与消费者线程/进程之间,引入了缓冲区的概念。这个缓冲区能解除生产者端与消费者端(后面统称为“两端”)之间的强耦合。也解除了两端间的阻塞。但是由于多了一个中间环节,那么就会在两端增加一定的额外开支。比如封包拆包等工作。这一设计模式既可以用于线程级的通信,也可用于进程级的通信前...转载 2019-04-11 13:33:47 · 1594 阅读 · 0 评论 -
Java中InputStream装饰器模式的大家族
还是老规矩,转载的先说一下自己的感想。其实通篇主要表达的思想就是:加了包装类(BufferedInputStream)之后,程序是先把硬盘中的文件读取到内存的缓冲区。然后再由程序从内存中读取。否则不加这一层缓冲的话,程序会分块的从存储介质中分批读取文件,那样速度就慢了很多。原文链接点击此处因为和输入流与之对应的还有输出流(即OutputStream),在此只针对输入流InputS...转载 2019-03-13 16:08:36 · 140 阅读 · 0 评论 -
Java的三種代理模式
原文地址點擊此處1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接...转载 2018-12-06 14:44:15 · 134 阅读 · 0 评论 -
Java中violate关键字详解
一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需...转载 2019-06-28 09:29:42 · 998 阅读 · 1 评论 -
java的static关键字理解,以及静态非静态锁的区别
觉得说的啰嗦的,可以直接看“三、结论”那段一、static关键字的理解 被static修饰的变量或者方法,可以被当前工程的任意类在任意地方使用。 这是因为,它们被放入到了JVM堆中的永久代里面 因此,带static关键字的内容不会被回收,不会被重复分配内存,直至服务下次被重启。。。二、静态与非静态锁的区别 这里...原创 2018-09-03 14:18:09 · 755 阅读 · 0 评论 -
java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁
原文地址點擊此處 理解锁的基础知识如果想要透彻的理解java锁的来龙去脉,需要先了解以下基础知识。基础知识之一:锁的类型锁从宏观上分类,分为悲观锁与乐观锁。乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操...转载 2018-09-03 10:47:05 · 176 阅读 · 0 评论 -
java经典算法40题
【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....public class exp2{ public static void main(String args[]){ int i=0; for(i=转载 2015-05-18 18:09:25 · 582 阅读 · 0 评论 -
swfupload的参数配置及属性说明
原文路径点击此处(一)、配置参数对象中的常用属性及说明 属性类型默认值描述upload_urlString 处理上传文件的服务器端页面的url地址,可以是绝对地址,也可以是相对地址,当为相对地址时相对的是当前代码所在的文档地址preserve_re转载 2015-03-13 14:27:47 · 1095 阅读 · 0 评论 -
Java Map遍历方式的选择
1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多。理由是:entrySet方法一次拿到所有key和value的集合;而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率。那么实际情况如何呢? 为了解遍历性能的真实差距,包括在遍历key+value、遍历key转载 2015-02-04 20:54:47 · 485 阅读 · 0 评论 -
深入JVM锁机制1-synchronized
目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。 数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令转载 2015-02-02 13:57:16 · 413 阅读 · 0 评论 -
深入JVM锁机制2-Lock
前文(深入JVM锁机制-synchronized)分析了JVM中的synchronized实现,本文继续分析JVM中的另一种锁Lock的实现。与synchronized不同的是,Lock完全用Java写成,在java这个层面是无关JVM实现的。在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实转载 2015-02-02 14:00:51 · 476 阅读 · 0 评论 -
Java中HashMap遍历的两种方式
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val =转载 2015-02-02 21:04:53 · 373 阅读 · 0 评论 -
java实现深克隆(如HashMap等)
克隆就是复制一个对象的复本.但一个对象中可能有基本数据类型,如:int,long,float 等,也同时含有非基本数据类型如(数组,集合等)被克隆得到的对象基本类型的值修改了,原对象的值不会改变.这种适合shadow clone(浅克隆).但如果你要改变一个非基本类型的值时,原对象的值却改变了,.比如一个数组,内存中只copy他的地址,而这个地址指向的值并没有copy,当clon转载 2015-01-30 19:59:29 · 6189 阅读 · 3 评论 -
Java HashMap的工作原理
我们来看个非常简单的例子。有一个”国家”(Country)类,我们将要用Country对象作为key,它的首都的名字(String类型)作为value。下面的例子有助于我们理解key-value对在HashMap中是如何存储的。1. Country.javapackage org.arpit.javapostsforlearning;public class Country {转载 2015-01-31 14:50:15 · 459 阅读 · 0 评论 -
Java操作json的通用类
package com.baiyyy.polabs.util.json; import java.text.ParseException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.转载 2015-01-29 11:19:36 · 518 阅读 · 0 评论 -
java的Request中乱码问题解决
在提交JSP时对于乱码问题,首先我们要搞清楚为什么会出现乱码?看JSP的头文件:在这个头文件中,还有一个与编码的相关的属性:pageEncoding-----------------------------------------------------------------------------------------首先,说说JSP/Servlet中的几个编码的作用。原创 2015-01-29 11:46:08 · 2774 阅读 · 0 评论 -
Java中的集合大汇总大对比大起底
darkdragonking的360图书馆的一个文章,可以参考下 http://www.360doc.com/content/11/0221/15/1108510_94838589.shtmlJAVA的容器---List,Map,Set Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stac转载 2015-01-21 17:17:46 · 526 阅读 · 0 评论 -
Web 通信 之 长连接、长轮询(long polling)
基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。一、什么是长连接、长轮询?用通俗易懂的话来说,就是客户端不停的向服务器发送请求以获取最新的数据信息。这里的“不停”其实是有停止的,只是我们人眼无法分辨是否停止,它只是一种快速的停下然后又立即开始连接而已。二、长连接、长轮询的应用场转载 2015-01-24 13:31:40 · 740 阅读 · 0 评论 -
concurrentHashMap 到底采取了什么措施使得它比synchronized(HashMap)好
免锁容器背后的通用策略:1使用Lock机制 而不是synchronized2 对容器的修改可以与读取操作同时发生,只要读取者只能看到完成修改的结果即可。(volatile)3 修改是在容器数据结构的某一部分的一个单独副本上执行的,这样就能避免锁住整个容器 Java Memory Model中,Memory分为两类,main memory和working memory转载 2015-01-26 14:45:13 · 454 阅读 · 0 评论 -
dark找来的直接就能用的例子--关于swfupload的样例
原文地址请点此处 最好之处在于,这个代码的超链接,我就是用这个鼓捣出来滴,随后我会加上这个代码下载链接的SWFUpload官方的例子都是PHP的,在这里提供一个Java版的最简单的使用例子,使用JSP页面完成所有操作。效果图如下 实现上传,分为三步: 1、JavaScript设置SWFUpload部分(与官方例子类似):var upload;转载 2015-03-13 14:13:21 · 385 阅读 · 0 评论 -
dark寻觅到的一个牛人的分类总结贴--关于swfupload与java整合的内容
原文链接点击此处一、了解SWFUpload http://hanxin0311.iteye.com/blog/1915611二、详细介绍SWFUpload http://hanxin0311.iteye.com/blog/1915615三、struts2+swfUpload简单例子 http://hanxin0311.iteye.com/blog/转载 2015-03-13 15:36:04 · 572 阅读 · 0 评论 -
在JSP里使用CKEditor和CKFinder
原文链接点击此处最近在做一个新闻发布平台,放弃了很早的FCKEditor,使用CKEditor和CKFinder,尽管免费的CKFinder是Demo版本,但是功能完整,而且用户都是比较集中精神发新闻的人,不会在意这个。按照官网的document一步一步配置,虽然并不难,但是有些东西特别分散,还是全英文的,所以我就整理了一下安装过程和配置,以及需要注意的一些问题。希望对大家有所帮助。转载 2015-03-10 18:01:45 · 462 阅读 · 0 评论 -
java排序的方法
原文链接请点击此处dark做了些修改,先说结论:感觉Comparator更像一个工具,它是在集合外部实现的排序,使用这个工具可以对你想要的东西进行排序。而且个人感觉可以扩展到使用java的反射机制来动态确定一些东西。比如我们已经使用这个comparator做好了一个比较的工具类,可以通过方法来接受对哪个类的哪个字段来排序,很方便。Comparable不够灵活,它是在集合内部定义的方法实转载 2015-03-10 10:43:53 · 432 阅读 · 0 评论 -
dark认为比较好比较全的java反射详解示例
原文链接点击此处本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。下面开始正文。【案例1】通过一个对象获得完整的包名和类名package Reflect; /** * 通过一个对象获得完整的包名和类名 * */class Demo{ //o转载 2015-03-10 10:34:15 · 488 阅读 · 0 评论 -
Memcached Java Client API详解
Memcached Java Client API详解针对Memcached官方网站Java Client API详解及优化1.5.0" src="http://b2b-doc.alibaba-inc.com/images/icons/linkext7.gif" alt="" align="absMiddle" border="0" height="7" width="7" style="转载 2015-02-28 18:11:58 · 303 阅读 · 0 评论 -
Jsp Servlet常用 Listener的分类
Servlet 监听器用于监听一些重要事件的发生,监听器对象在事情发生前、发生后可以做一些必要的处理。目前 Servlet2.4 和 JSP2.0 常用的有7个监听器接口,分为3类: 1. Servlet上下文进行监听(Application级): 用于监听 ServletContext 对象的创建和删除以及属性的添加、删除和修改等操作,该监听器需要用到如下两个接口类: (转载 2015-01-24 11:14:35 · 707 阅读 · 0 评论 -
JAVA MemCache 史无前例的详细讲解!看完包精通MEMCACHE!
Memcach什么是MemcacheMemcache集群环境下缓存解决方案Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。 Memcache是danga的一个项目,最早是LiveJ转载 2015-02-28 10:48:01 · 748 阅读 · 0 评论 -
java中synchronized用法
synchronized的一个简单例子public class TextThread { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 TxtThread tt = new TxtThread(); new Th转载 2015-01-26 20:58:27 · 404 阅读 · 0 评论