自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ps_zhanglei的专栏

发表工作心得及生活心得的地方

  • 博客(153)
  • 资源 (5)
  • 收藏
  • 关注

转载 Java ConcurrentModificationException异常原因和解决方法

对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。  以下是本文目录大纲:  一.ConcurrentModificationException异常出现的原因  二.在单线程环境下的解决办法  三.在多线程环境下的解决方

2016-05-04 19:33:14 518

转载 Java中的String字符串为什么不可变

什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。区分对象和对象的引用对于Java初学者, 对

2016-05-02 20:38:10 4921 1

转载 深度剖析ConcurrentHashMap

概述还记得大学快毕业的时候要准备找工作了,然后就看各种面试相关的书籍,还记得很多面试书中都说到:HashMap是非线程安全的,HashTable是线程安全的。那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什么是线程安全的,内部怎么实现的,通通不了解。今天我们将深入剖析一个比Hash

2016-04-27 10:57:46 403

转载 多线程下HashMap的死循环问题

为何出现死循环?大家都知道,HashMap采用链表解决Hash冲突,具体的HashMap的分析可以参考一下Java集合---HashMap源码剖析 的分析。因为是链表结构,那么就很容易形成闭合的链路,这样在循环的时候只要有线程对这个HashMap进行get操作就会产生死循环。但是,我好奇的是,这种闭合的链路是如何形成的呢。在单线程情况下,只有一个线程对HashMap的数据结构进行操作,是不

2016-04-27 10:14:33 515

转载 Java集合---HashMap源码剖析

一、HashMap概述  HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。  值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collec

2016-04-27 09:58:45 341

转载 HashMap和HashSet的区别

HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,Lis

2016-04-08 10:38:08 321

转载 HashMap和Hashtable的区别

HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java

2016-04-08 10:35:52 278

转载 HashMap的工作原理

原文链接:HashMap的工作原理HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。Concur

2016-04-08 10:20:07 368

原创 Linux中关于FTP服务器的加密配置(SSL)

有时我们使用FTP进行连接是,需要对信息进行加密,即使用ssl或者tsl进行连接。这时我们需要用到openssl。安装配置好ssl之后,我们要安装openssl。wget http://www.openssl.org/source/openssl-1.0.2g.tar.gztar -xvzf openssl-1.0.1f.tar.gzcd openssl-1.0.1f./configm

2016-03-21 15:34:19 10778

原创 Linux下FTP服务器搭建

在工作中可能会用到许许多多的服务器,服务器之间使用FTP上传下载文件是十分常见的,今天就说一下Linux中关于FTP服务器的搭建。linux中默认的ftp软件是vsftp。首先我们来检查一下我们的linux中是否已经安装了vsftp:  rpm -qa |grep vsftpd这时候我们使用以下命令进行安装:yum install vsftpd -y如果这时候的没有输出,表明未安装

2016-03-21 10:24:12 530

原创 CentOS使用wget命令报错Temporary failure in name resolution解决方法

在CentOS中安装Redis时使用wget下载一个文件出现了如下问题:wget http://download.redis.io/releases/redis-3.0.7.tar.gzfailed: Temporary failure in name resolution从字面上理解意思是,在解析这个URL的时候发生了失败;首先我从另外一个windows的IE里访问了那个UR

2016-03-07 17:20:04 27306

原创 Mybatis逆向工程

对数据库的每个表建立一个POJO及Mapper文件是十分繁琐的工作。Mybatis考虑到这个问题,为我们提供了一个工具可以直接通过工具根据数据库表来自动生成对应的POJO及Mapper文件。首先我们需要下载一个jar包:mybatis-generator-core-1.3.2.jar然后建立配置文件:<!DOCTYPE generatorConfiguration PUBLI

2015-11-27 15:29:56 407

原创 Mybatis简单增删改查操作基于Annotation

基于Annotation的Mybatis配置比xml更加的便捷:首先修改我们的通用配置文件: 然后我们创建UserMapper接口,省去了对userMapper的配置:package com.smile.entity;import java.util.List;import o

2015-11-25 16:37:04 940

原创 Mybatis简单增删改查操作

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。首先我们需要下载MyBatis的jar包。然后第一步配

2015-11-25 16:31:23 490

原创 SpringMVC的AJAX返回

SpringMVC非常适合跟页面的异步交互。控制器代码:package com.smile.controller;import java.io.PrintWriter;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org

2015-11-25 09:31:52 504

原创 SpringMVC返回页面数据

SpringMVC返回页面数据的方式有多种:1、HttpServletRequest request 直接使用    request.setAttribute("user", str)。2、 使用ModelAndView。3、 使用Model model。4、 使用Map。控制器代码如下:package com.smile.controller;import java.

2015-11-25 09:28:29 3693

原创 SpringMVC参数传递

SpringMVC的参数传递方式有三种:1、 通过设置HttpServletRequest request 来获取数据2、直接设置参数add(@RequestParam(value="number")String userNumber,Integer passWord)3、通过对象:表单的name属性的值必须和类的属性名称一致控制器代码如下:package com.smile.

2015-11-25 09:20:44 492

原创 SpringMVC中HandlerMapping的三种配置方式

SpringMVC中的HandlerMapping有三种不同的配置方式:1、根据beanname来配置: 2、根据简单URL 来查找Controller : userController 3、根据控制类的类名访问controller:三种配置方式没有多大区别。

2015-11-25 09:11:25 11002 1

原创 基于SpringMVC Annotation配置的HelloWorld

上一篇我们的配置是基于XML配置的HelloWorld。Spring提供了一种更加便捷的配置方式,基于Annotation注解的配置方式,web.xml保持不变,还是与之前一样,需要修改的是springmvc-servlet.xml:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://ww

2015-11-25 09:03:36 442

原创 基于SpringMVC的HelloWorld实现

还是从HelloWorld开始:根据前一篇的流程首先我们将jar包拷贝到lib目录下。下载地址:Spring4.0.3 jar包然后我们来配置web.xml: 51CTO_Springmvc01 index.jsp springmvc org.springframework.web.servlet.DispatcherServlet

2015-11-25 08:53:15 415

原创 SpringMVC简介及搭建流程

参考51CTO刘英杰关于SpringMVC的视频教程。SpringMVC框架是一个MVC框架,通过实现MVC很好的将数据、业务、展现进行分离。SpringMVC 的设计围绕DispatcherServlet展开的,由DispatcherServlet负责将请求派发到特定的handler。整个流程如下图:Eclipse与Spring的集成:Help-->Install

2015-11-25 08:29:28 370

转载 Eclipse中Server视图加载项目之后项目名后边有带括号的名字

用习惯了eclipse工具,因为某种原因需要修改项目名称。结果选择项目,按“F2”成功修改后,使用tomcat进行web发布时,选择“Add and Remove”,发现名字还是以前那个项目名称。有时即使是改了名字在添加到Server上的时候在Server视图中看到项目名后边有一个带括号的名字。还是复制之前的项目名。导致项目运行出现问题。 解决方法:打开文件“你的工程目录\.setting

2015-11-24 15:23:55 13591 3

原创 Target runtime Apache Tomcat v8.0 is not defined

有时候从别的电脑上拷贝过来的项目编译之后会报这个错误,这个错误主要是原项目所配置Tomcat与你当前Eclipse不一致。可以修改配置:     项目上右键-->properties-->Targeted runtime将选中的Tomcat点掉。     重新编译就可以了。

2015-11-24 14:20:49 1032 1

转载 java compiler level does not match the version of the installed java project facet

java compiler level does not match the version of the installed java project facet错误的解决明明源码一模一样,为什么项目复制到另一台机器上,就会报“java compiler level does not match the version of the installed java project face

2015-11-24 13:42:47 482

转载 Tomcat性能调优

一、总结前一天的学习从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是:ü   吞吐量ü   Responsetimeü   Cpuloadü   MemoryUsage我们也在第三天的学习中对Apache做过了一定的优化,使其最优化上述4大核心指标的读数,那么我们的Apache调优了,我们的Tomcat也作些相应的调整,当完成今的课程后,到时你的“

2015-10-28 12:11:31 266

转载 apacha tomcat https应用

一、总结前一天的学习在前一天的学习中我们知道、了解并掌握了Web Server结合App Server是怎么样的一种架构,并且亲手通过Apache的Http Server与Tomcat6进行了整合的实验。这样的架构的好处在于:ü   减轻App Server端的压力,用Web Server来分压,即Web Server只负责处理静态HTML内容,而App Server专职负责处理Jav

2015-10-28 12:10:31 429

转载 Apacha整合Tomcat

一、先从J2EE工程的通用架构说起这是一个通用的Web即B/S工程的架构,它由:ü   Web Serverü   App Serverü   DB Server三大部分组成,其中:²  Web Server置于企业防火墙外,这个防火墙,大家可以认为是一个CISCO路由器,然后在CISCO路由器上开放了两个端口为:80和443。80端口:用于正常的htt

2015-10-28 12:08:37 307

原创 Android学习笔记——EditText、RadioGroup、CheckBox和Spinner的使用。

1、EditText:主界面:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_p

2015-08-07 14:33:12 916

原创 Android学习笔记——KeyEvnet、ListView以及如何增加收到消息提醒。

1、KeyEvnet可以在主界面中监听键盘事件,来判断点击了什么键。关于配置文件的设置省略。package com.keyevent;import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.view.MotionEvent;import and

2015-08-07 14:25:13 783

原创 Android学习笔记——UI设计工具

Android的UI是应用程序的显示,可能是用户最挑剔的地方。一个应用程序想收到用户的喜爱,必须有好的UI。ADT提供了UI的预览功能我们可以再main.xml上右键,一次选择"Open With"->"Legacy Android Layout Editer"菜单命令,进入到UI设计界面,如下图:左侧为组件选择框。DroidDraw是一款功能比较强大的Android的UI设计工具

2015-08-06 09:24:47 1261

原创 Android学习笔记——声明

本博客中所有的例子来源于机械工业出版社出版的杨丰盛著的Android应用开发解密一书。侵权立删。

2015-08-05 14:35:35 220

原创 Android学习笔记——Android生命周期

Android中的Activity的创建及消亡有其自己的生命周期。Activity01:package com.android;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.vi

2015-08-05 14:28:08 295

原创 Android学习笔记——播放音乐

界面展示需要两个按钮,一个按钮为开始播放,一个为停止播放:main.xml:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" a

2015-08-05 14:16:44 320

原创 Android学习笔记——读取通讯录信息

main.xml仅仅是一个文本域用来展示读取来的通讯录信息:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:ori

2015-08-05 14:10:42 435

原创 Android学习笔记——两个Activity之间的切换

因为是两个Activity所以需要定义两个布局文件,需要点击按钮来进行两个界面之间的切换,所以在main.xm:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_

2015-08-05 14:06:18 2111

原创 Android学习笔记——HelloWorld

今天开始接触下Android的开发。对于Android开发环境的搭建,网上有许多的教程,这里不做赘述。与别的一样,我们先从一个简单的HelloWorld开始。通过Eclipse的集成开发环境,我们创建一个简单的HelloWorld工程,工程目录如下:其中src为项目的所有包及源文件,res文件夹中则包含了项目中的所有资源,比如:程序图标(drawable)、布局文件(layout)、常

2015-08-05 11:23:41 507

转载 CentOS用户管理及分组管理(三)

批量添加用户:新加一个shell脚本进行批量添加:#!/bin/bash## 这支程序主要在帮您建立大量的账号之用,# 更多的使用方法请参考:# http://linux.vbird.org/linux_basic/0410accountmanager.php#manual_amount## 本程序为鸟哥自行开发,在 FC4 上使用没有问题,# 但不保证绝不会发生错误!使用时

2015-07-02 09:19:33 528

原创 CentOS用户管理及分组管理(二)

添加用户:可以看到在/etc/shadow中  密码栏是!!表名新加的用户现在还无法登入。需要加入密码。useradd指令的参数:passwd指令:如果用户还有需要修改的地方可以使用指令usermod:删除用户可以使用userdel:增加组 groupadd:同理有groupmod和groupdel,gpasswd指令。

2015-07-01 09:38:57 1170

原创 CentOS 用户管理及分组管理(一)

centOS中的账号管理是一个比较复杂的流程。这里我们来演示一下怎么添加用户及用户分组和切换。以下内容摘自鸟哥的linux私房菜:• /etc/passwd      这个档案的构造是这样的:每一行都代表一个账号, 有几行就代表有几个账号在你的系统中!不过需要特别留意的是, 里头     很多账号本来就是系统中必须要的,我们可以简称他为系统账号, 例如 bin, daemo

2015-07-01 08:42:22 3256

原创 CentOS——文件的权限与属性

在shell中通过ls -al可以看到所有的目录:具体的档案属性如下图:其中第一列为文档的权限:档案的属性和权限都是可以修改的:本文图片截图自:鸟哥的linux私房菜。

2015-03-17 10:47:51 1204

Mybatis3.3.0

Mybatis涉及的jar包及源码。还有通用插件MyBatis Generator 1.3.2。

2015-11-25

Spring4.0.3jar包及文档

Spring4.0.3的jar包及文档。从官网上下载的。需要的同学可以下载。

2015-11-25

HTML5官方文档(W3C)

W3C的HTML5官网文档。比较全。适合初学者进行学习。

2014-10-15

W3C官方文档

W3C的官方文档。基本包括网上所有的W3C教程。

2014-10-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除