- 博客(153)
- 资源 (5)
- 收藏
- 关注
转载 Java ConcurrentModificationException异常原因和解决方法
对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。 以下是本文目录大纲: 一.ConcurrentModificationException异常出现的原因 二.在单线程环境下的解决办法 三.在多线程环境下的解决方
2016-05-04 19:33:14
632
转载 Java中的String字符串为什么不可变
什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。区分对象和对象的引用对于Java初学者, 对
2016-05-02 20:38:10
5003
1
转载 深度剖析ConcurrentHashMap
概述还记得大学快毕业的时候要准备找工作了,然后就看各种面试相关的书籍,还记得很多面试书中都说到:HashMap是非线程安全的,HashTable是线程安全的。那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什么是线程安全的,内部怎么实现的,通通不了解。今天我们将深入剖析一个比Hash
2016-04-27 10:57:46
467
转载 多线程下HashMap的死循环问题
为何出现死循环?大家都知道,HashMap采用链表解决Hash冲突,具体的HashMap的分析可以参考一下Java集合---HashMap源码剖析 的分析。因为是链表结构,那么就很容易形成闭合的链路,这样在循环的时候只要有线程对这个HashMap进行get操作就会产生死循环。但是,我好奇的是,这种闭合的链路是如何形成的呢。在单线程情况下,只有一个线程对HashMap的数据结构进行操作,是不
2016-04-27 10:14:33
573
转载 Java集合---HashMap源码剖析
一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collec
2016-04-27 09:58:45
370
转载 HashMap和HashSet的区别
HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,Lis
2016-04-08 10:38:08
368
转载 HashMap和Hashtable的区别
HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java
2016-04-08 10:35:52
324
转载 HashMap的工作原理
原文链接:HashMap的工作原理HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。Concur
2016-04-08 10:20:07
404
原创 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
10967
原创 Linux下FTP服务器搭建
在工作中可能会用到许许多多的服务器,服务器之间使用FTP上传下载文件是十分常见的,今天就说一下Linux中关于FTP服务器的搭建。linux中默认的ftp软件是vsftp。首先我们来检查一下我们的linux中是否已经安装了vsftp: rpm -qa |grep vsftpd这时候我们使用以下命令进行安装:yum install vsftpd -y如果这时候的没有输出,表明未安装
2016-03-21 10:24:12
588
原创 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
27463
原创 Mybatis逆向工程
对数据库的每个表建立一个POJO及Mapper文件是十分繁琐的工作。Mybatis考虑到这个问题,为我们提供了一个工具可以直接通过工具根据数据库表来自动生成对应的POJO及Mapper文件。首先我们需要下载一个jar包:mybatis-generator-core-1.3.2.jar然后建立配置文件:<!DOCTYPE generatorConfiguration PUBLI
2015-11-27 15:29:56
458
原创 Mybatis简单增删改查操作基于Annotation
基于Annotation的Mybatis配置比xml更加的便捷:首先修改我们的通用配置文件: 然后我们创建UserMapper接口,省去了对userMapper的配置:package com.smile.entity;import java.util.List;import o
2015-11-25 16:37:04
991
原创 Mybatis简单增删改查操作
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。首先我们需要下载MyBatis的jar包。然后第一步配
2015-11-25 16:31:23
548
原创 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
554
原创 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
3750
原创 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
557
原创 SpringMVC中HandlerMapping的三种配置方式
SpringMVC中的HandlerMapping有三种不同的配置方式:1、根据beanname来配置: 2、根据简单URL 来查找Controller : userController 3、根据控制类的类名访问controller:三种配置方式没有多大区别。
2015-11-25 09:11:25
11171
原创 基于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
498
原创 基于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
446
原创 SpringMVC简介及搭建流程
参考51CTO刘英杰关于SpringMVC的视频教程。SpringMVC框架是一个MVC框架,通过实现MVC很好的将数据、业务、展现进行分离。SpringMVC 的设计围绕DispatcherServlet展开的,由DispatcherServlet负责将请求派发到特定的handler。整个流程如下图:Eclipse与Spring的集成:Help-->Install
2015-11-25 08:29:28
396
转载 Eclipse中Server视图加载项目之后项目名后边有带括号的名字
用习惯了eclipse工具,因为某种原因需要修改项目名称。结果选择项目,按“F2”成功修改后,使用tomcat进行web发布时,选择“Add and Remove”,发现名字还是以前那个项目名称。有时即使是改了名字在添加到Server上的时候在Server视图中看到项目名后边有一个带括号的名字。还是复制之前的项目名。导致项目运行出现问题。 解决方法:打开文件“你的工程目录\.setting
2015-11-24 15:23:55
13666
1
原创 Target runtime Apache Tomcat v8.0 is not defined
有时候从别的电脑上拷贝过来的项目编译之后会报这个错误,这个错误主要是原项目所配置Tomcat与你当前Eclipse不一致。可以修改配置: 项目上右键-->properties-->Targeted runtime将选中的Tomcat点掉。 重新编译就可以了。
2015-11-24 14:20:49
1117
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
516
转载 Tomcat性能调优
一、总结前一天的学习从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是:ü 吞吐量ü Responsetimeü Cpuloadü MemoryUsage我们也在第三天的学习中对Apache做过了一定的优化,使其最优化上述4大核心指标的读数,那么我们的Apache调优了,我们的Tomcat也作些相应的调整,当完成今的课程后,到时你的“
2015-10-28 12:11:31
319
转载 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
473
转载 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
340
原创 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
952
原创 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
838
原创 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
1328
原创 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
317
原创 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
345
原创 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
461
原创 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
2163
原创 Android学习笔记——HelloWorld
今天开始接触下Android的开发。对于Android开发环境的搭建,网上有许多的教程,这里不做赘述。与别的一样,我们先从一个简单的HelloWorld开始。通过Eclipse的集成开发环境,我们创建一个简单的HelloWorld工程,工程目录如下:其中src为项目的所有包及源文件,res文件夹中则包含了项目中的所有资源,比如:程序图标(drawable)、布局文件(layout)、常
2015-08-05 11:23:41
535
转载 CentOS用户管理及分组管理(三)
批量添加用户:新加一个shell脚本进行批量添加:#!/bin/bash## 这支程序主要在帮您建立大量的账号之用,# 更多的使用方法请参考:# http://linux.vbird.org/linux_basic/0410accountmanager.php#manual_amount## 本程序为鸟哥自行开发,在 FC4 上使用没有问题,# 但不保证绝不会发生错误!使用时
2015-07-02 09:19:33
561
原创 CentOS用户管理及分组管理(二)
添加用户:可以看到在/etc/shadow中 密码栏是!!表名新加的用户现在还无法登入。需要加入密码。useradd指令的参数:passwd指令:如果用户还有需要修改的地方可以使用指令usermod:删除用户可以使用userdel:增加组 groupadd:同理有groupmod和groupdel,gpasswd指令。
2015-07-01 09:38:57
1205
原创 CentOS 用户管理及分组管理(一)
centOS中的账号管理是一个比较复杂的流程。这里我们来演示一下怎么添加用户及用户分组和切换。以下内容摘自鸟哥的linux私房菜:• /etc/passwd 这个档案的构造是这样的:每一行都代表一个账号, 有几行就代表有几个账号在你的系统中!不过需要特别留意的是, 里头 很多账号本来就是系统中必须要的,我们可以简称他为系统账号, 例如 bin, daemo
2015-07-01 08:42:22
3305
原创 CentOS——文件的权限与属性
在shell中通过ls -al可以看到所有的目录:具体的档案属性如下图:其中第一列为文档的权限:档案的属性和权限都是可以修改的:本文图片截图自:鸟哥的linux私房菜。
2015-03-17 10:47:51
1237
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人