java
文章平均质量分 73
wudiazu
这个作者很懒,什么都没留下…
展开
-
常用加密算法的Java实现
常用加密算法的Java实现——单向加密算法MD5和SHA日期:2014/6/1文:阿蜜果1、Java的安全体系架构1.1 Java的安全体系架构介绍Java中为安全框架提供类和接口。JDK安全 API 是 Java编程语言的核心 API,位于java.security包(及其子包),以及sun.securityAPI包(及其子包转载 2016-03-17 11:36:05 · 636 阅读 · 0 评论 -
SpringMVC源码剖析(三)- DispatcherServlet的初始化流程
在我们第一次学Servlet编程,学Java Web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转到我们定义好的jsp页面。Servlet类编写完之后在web.xml里注册这个Servlet类。除此之外,没有其他了。我们启动web服务器,在浏览器中输入地址,就可以看到浏览器上输出我们写好的转载 2017-10-15 16:39:02 · 208 阅读 · 0 评论 -
SpringMVC源码剖析(四)- DispatcherServlet请求转发的实现
SpringMVC完成初始化流程之后,就进入Servlet标准生命周期的第二个阶段,即“service”阶段。在“service”阶段中,每一次Http请求到来,容器都会启动一个请求线程,通过service()方法,委派到doGet()或者doPost()这些方法,完成Http请求的处理。在初始化流程中,SpringMVC巧妙的运用依赖注入读取参数,并最终建立一个与容器上下文相关联的spr转载 2017-10-15 16:40:24 · 721 阅读 · 0 评论 -
Spring MVC配置详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了。不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理。 一、Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0)转载 2017-10-15 16:43:15 · 1185 阅读 · 0 评论 -
自定义标签(TagSupport )
定义最简单的标签 自定义标签采用Default Adapter模式(缺省适配模式) Java代码 1 //最简单的标签 2 public class LangHuaTag extends TagSupport { 3 private long startTime; 4 private long endTime转载 2017-11-28 14:55:16 · 685 阅读 · 0 评论 -
Java NIO浅析
NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。那么NIO的本质是什么样的呢?它是怎样与事件模型结合来解放线程、提高系统吞吐的呢?本文会从传统的阻塞I/O和线程池模型面临的问题讲起,然后对比几种常见I/O模型,一步步分析...转载 2018-03-15 21:18:37 · 671 阅读 · 0 评论 -
java内存、垃圾回收查看与分析
Java 内存查看与分析 首先使用 jps -l 查找当前所有的 Java 进程。jstat 命令jstat -gc pid 1000 或者 jstat -gc pid 1000 > out.txt: 每隔1000号码打印一次或导出 GC 的状态。S0C S0U:Survivor 0区的大小及使用情况S1C S1U:Survivor 1区的大小及使用情况EC EU:Eden 区的大小及使...转载 2018-03-23 21:24:34 · 6132 阅读 · 1 评论 -
谈谈Java内存管理
对于一个Java程序员来说,大多数情况下的确是无需对内存的分配、释放做太多考虑,对Jvm也无需有多么深的理解的。但是在写程序的过程中却也往往因为这样而造成了一些不容易察觉到的内存问题,并且在内存问题出现的时候,也不能很快的定位并解决。因此,了解并掌握Java的内存管理是一个合格的Java程序员必需的技能,也只有这样才能写出更好的程序,更好地优化程序的性能。一. 背景知识根据网络可以找到的资料以及笔...转载 2018-03-24 14:23:53 · 148 阅读 · 0 评论 -
Java面试题全集(上)
2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的CSDN博客。在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补...转载 2018-03-24 14:31:16 · 442 阅读 · 0 评论 -
volatile关键字的线程安全问题总结
简介volatile关键字保证了在多线程环境下,被修饰的变量在别修改后会马上同步到主存,这样该线程对这个变量的修改就是对所有其他线程可见的,其他线程能够马上读到这个修改后值. Thread的本地内存每个Thread都拥有自己的线程存储空间Thread何时同步本地存储空间的数据到主存是不确定的例子借用Google JEREMY MANSON 的解释,上图表示两个线程并发执行,而且代码顺序上为Thre...转载 2018-03-30 11:34:49 · 1870 阅读 · 0 评论 -
多线程死锁的产生以及如何避免死锁
一、死锁的定义多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。下面我们通过一些实例来说明死锁现象。先看生活中的一个实例,2个人一起吃饭但是只有一双筷子,2人轮流吃(同时拥有2只筷子才能吃)。某一个时候,一个拿了左筷子,一人拿了右筷子,2个人都同...转载 2018-03-30 12:32:58 · 169 阅读 · 0 评论 -
Java面试题全集(中)
这部分主要是与Java Web和Web Service相关的面试题。96、阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet。补充:Sun Microsystems公司...转载 2018-03-26 11:11:46 · 181 阅读 · 0 评论 -
Java面试题全集(下)
这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章《Java面试题集(86-115)》。此外,这篇文章还对企业应用架构、大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助。12...转载 2018-03-26 11:16:13 · 141 阅读 · 0 评论 -
从一道面试题彻底搞懂hashCode与equals的作用与区别及应当注意的细节
最近去面试了几家公司,被问到hashCode的作用,虽然回答出来了,但是自己还是对hashCode和equals的作用一知半解的,所以决定把它们研究一下。以前写程序一直没有注意hashCode的作用,一般都是覆盖了equals,缺没有覆盖hashCode,现在发现这是埋下了很多潜在的Bug!今天就来说一说hashCode和equals的作用。 先来试想一个场景,如果你想查找一个集合中...转载 2018-03-26 18:24:30 · 220 阅读 · 0 评论 -
Java并发之AQS详解
一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。 以下是本文的目录大纲:概述框架...转载 2018-04-03 13:13:52 · 170 阅读 · 0 评论 -
SpringMVC源码剖析(二)- DispatcherServlet的前世今生
上一篇文章《SpringMVC源码剖析(一)- 从抽象和接口说起》中,我介绍了一次典型的SpringMVC请求处理过程中,相继粉墨登场的各种核心类和接口。我刻意忽略了源码中的处理细节,只列出最简单的类甚至是接口类,目的就是让大家先从最高层次的抽象意义上来审视SpringMVC这个框架;我也刻意将SpringMVC和Struts2做对比,目的是让大家看到,SpringMVC究竟吸取了Sturts转载 2017-10-15 16:37:31 · 181 阅读 · 0 评论 -
SpringMVC源码剖析(一)- 从抽象和接口说起
SpringMVC作为Struts2之后异军突起的一个表现层框架,正越来越流行,相信javaee的开发者们就算没使用过SpringMVC,也应该对其略有耳闻。我试图通过对SpringMVC的设计思想和源码实现的剖析,从抽象意义上的设计层面和实现意义上的代码层面两个方面,逐一揭开SpringMVC神秘的面纱,本文的代码,都是基于spring的 3.1.3RELEASE版本。任何一个框架,转载 2017-10-15 16:35:29 · 173 阅读 · 0 评论 -
log4j配置详解
来自: http://www.blogjava.net/zJun/archive/2006/06/28/55511.htmlLog4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下:转载 2016-03-18 10:18:07 · 195 阅读 · 0 评论 -
SSM框架——使用MyBatis Generator自动创建代码
原文地址:http://blog.csdn.net/zhshulin/article/details/23912615 这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样转载 2016-03-18 19:25:38 · 281 阅读 · 0 评论 -
Mybatis3.x与Spring4.x整合
本文转载地址:孤傲苍狼的博客http://www.cnblogs.com/xdp-gacl/p/4271627.html一、搭建开发环境1.1、使用Maven创建Web项目 执行如下命令:mvn archetype:create -DgroupId=me.gacl -DartifactId=spring4-mybatis3 -DarchetypeArtifactId=mave转载 2016-03-23 16:10:49 · 199 阅读 · 0 评论 -
JAVA读取文件方法大全
1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String fileNam转载 2016-09-06 09:49:43 · 191 阅读 · 0 评论 -
How to Enable Plain Text Password on Windows for Connecting to Samba Server
Plain text password is necessary for Windows Machine to access services through Samba Like File Share or PrinterBy default Samba uses unencrypted passwords. You can’t connect to Samba servers from转载 2016-09-06 17:26:17 · 389 阅读 · 0 评论 -
java中replace和replaceAll的区别
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")转载 2016-09-08 16:15:52 · 338 阅读 · 0 评论 -
认识 java JVM虚拟机选项 Xms Xmx PermSize MaxPermSize 区别
点击window---->preferences---->配置的tomcat---->JDK,在Optional Java VM arguments:中输入-Xmx512M -Xms256M -XX:MaxPermSize=256m,如下图所示: Eclipse崩溃,错误提示:MyEclipse has detected that less than 5% of the 6转载 2016-10-22 17:31:48 · 342 阅读 · 0 评论 -
Java中Socket上的Read操作阻塞问题
从Socket上读取对端发过来的数据一般有两种方法:1)按照字节流读取[java] view plain copyBufferedInputStream in = new BufferedInputStream(socket.getInputStream()); int r = -1; List l = new LinkedL转载 2016-12-26 15:36:13 · 2237 阅读 · 0 评论 -
java使用JNI调用C++代码(vs2010生成dll文件)
http://setting.iteye.com/blog/304594 http://blog.csdn.NET/crayonyi/article/details/7413017首先是Java代码:1:新建一个TestJNI类[java] view plain copy public class TestJNI { static转载 2017-01-05 11:45:11 · 358 阅读 · 0 评论 -
Java遍历List的时候删除item
在Java中有时候我们会需要对List里面的符合某种业务的数据进行删除,但是如果不了解里面的机制就容易掉入“陷阱”导致遗漏或者程序异常。本文以代码例子的方式进行说明该问题。1、采用索引下标遍历的方式我们看这段示例代码:1public class ListRemoveTest {2转载 2017-01-18 10:29:29 · 3652 阅读 · 0 评论 -
Java实现定时任务的三种方法
在应用里经常都有用到在后台跑定时任务的需求。举个例子,比如需要在服务后台跑一个定时任务来进行非实时计算,清除临时数据、文件等。在本文里,我会给大家介绍3种不同的实现方法:普通thread实现TimerTask实现ScheduledExecutorService实现普通thread这是最常见的,创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任转载 2016-09-24 12:55:17 · 201 阅读 · 0 评论 -
java读取计算机CPU、内存等信息(Sigar使用)
Sigar是Hyperic-hq产品的基础包,是Hyperic HQ主要的数据收集组件。它用来从许多平台收集系统和处理信息. 这些平台包括:Linux, Windows, Solaris, AIX, HP-UX, FreeBSD and Mac OSX.Sigar有C,C#,Java和Perl API,java版的API为sigar.jar sigar.jar的底层是用C语言编写的,它通过本原创 2017-06-28 10:42:25 · 7584 阅读 · 0 评论 -
JavaWeb中读取文件资源的路径问题
在做javaweb开发的时候,我们可能会需要从本地硬盘上读取某一个文件资源,或者修改某一个文件,这个时候就需要先找到这个文件,然后用FileInputStrem等文件字节。字符流来将这个文件读取到内存中,再对其进行修改等的操作。那么在找这个文件的过程中就涉及到一个路径的问题--->怎么正确的找到这个文件呢?有两种可行的方法:一、绝对硬盘路径;二、相对路径。。来来来,我们掰扯一下这两种方法的转载 2017-08-16 17:11:44 · 249 阅读 · 0 评论 -
前端开发细节-2
一、JAVA 中URL链接中文参数乱码的处理方法:1、如果使用tomcat作为服务器,那么修改tomcat配置文件conf/server.xml中,在 中加入 URIEncoding="utf-8"的编码集2、前台需要对中文参数进行编码,调用js方法encodeURI(url),将url编码,然后请求。后台接受时,需处理String str =new String(转载 2017-09-11 11:00:50 · 250 阅读 · 0 评论 -
十大经典排序算法
十大经典排序算法最强总结(含JAVA代码实现)最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每个桶进行排序直接使用了Collection.sort()函数,这样虽然能达到效果,但对于算法研究来讲是不可以的。所以我根据这几天看的文章,整理了一个较为完整的排序算法总结,本文中的所有算法均有JAVA实现,...转载 2018-03-28 16:38:39 · 229 阅读 · 0 评论