Java
文章平均质量分 85
iteye_4921
这个作者很懒,什么都没留下…
展开
-
Java Synchorinzed注意事项
Thread中的join方法的作用就是使线程从异步执行变成同步执行。 1. 在使用synchronized块时应注意,synchronized块只能使用对象作为它的参数。如果是简单类型的变量(如int、char、boolean等),不能使用synchronized来同步。2、要想解决“脏数据”的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下:...2015-05-27 16:59:39 · 514 阅读 · 0 评论 -
JVM监控方法 - JvmMonitor
在日常项目运作中,有时我们需要将JVM的信息以我们期望的方式输出到日志中,然后对日志对日志进行实时监控。1.JVM监控日志#jvm-monitor-digest.log#说明:记录了jvm中的一些堆内存和线程信息以及堆外内存,例2014-07-10 00:00:06,599 INFO JVM INFO - (1325.5,5390)(7.4,135,6...2017-01-05 23:18:16 · 1520 阅读 · 0 评论 -
(二)Java 中文乱码学习 与Spring @ResponseBody中的乱码 - Spring @ResponseBody中的乱码...
第二篇、Spring @ResponseBody中的乱码 一、在开始本篇之前,可以参照上一篇关于Java中的乱码的基本知识:http://josh-persistence.iteye.com/blog/2084971 二、如果在Spring的@Responsbody返回的内容中,发现乱码,需要从以下几方面来解决。 1. 确保在web.xml中配置Sp...2014-06-25 17:29:49 · 122 阅读 · 0 评论 -
(一)Java 中文乱码学习 与Spring @ResponseBody中的乱码 - 深入浅出Java中的中文乱码...
第一篇: 深入浅出Java中的中文乱码一、为什么会有中文乱码:其实很简单,一句话就能说明问题: 字符在保存时的编码格式如果和要显示(解码)时的编码格式不一样的话,就会出现乱码问题。 二、需要了解的事实: 1. Java中的任何String都是以UNICODE格式存在的。 很多人因为在GBK环境中使用Strin...2014-06-25 16:23:34 · 159 阅读 · 0 评论 -
Java Synchronized详解
java synchronized详解Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一...2014-01-24 17:20:04 · 82 阅读 · 0 评论 -
浅析Java中的集合包(ArrayList,LinkedList,Vector, Stack,HashSet,TreeSet,HashMap,TreeMap)
集合包是Java中最常用的包,它最常用的有Collection和Map两个接口的实现类,Collection用于存放多个单对象,Map用于存放Key-Value形式的键值对。 Collection中常用的又分为两种类型的接口:List和Set,两者最明显的差别为List支持放入重复的对象,而Set不支持。List接口常用的实现类有:ArrayList,Link...2013-11-16 16:10:43 · 201 阅读 · 0 评论 -
Tomcat中的线程池(APR和ThreadPool)
一、容器简化了程序员自身的多线程编程。 各种Web容器,如Tomcat,Resion,Jetty等都有自己的线程池(可在配置文件中配置),所以在客户端进行请求调用的时候,程序员不用针对Client的每一次请求,都新建一个线程。而容器会自动分配线程池中的线程,提高访问速度。 二、Tomcat线程池实现:1、使用APR的Pool技术,使用了JNI。Tomcat从5....2013-11-10 20:53:18 · 441 阅读 · 0 评论 -
从JVM的常见异常来看Tomcat中内存的设置
一、Tomcat和JDK的关系: 1. Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java 虚拟机。 2. JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。所以想...2013-11-10 17:22:51 · 239 阅读 · 0 评论 -
Java虚拟机学习 - 垃圾收集器
HotSpot JVM收集器 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。Serial(串行GC)收集器Serial收集器是一个新生代收集器,单线程执行,使用复制算法。它在进行垃圾 收集时,必须暂停其他所有的工作线程(用户线程)。是Jvm client模...2013-10-06 20:24:00 · 104 阅读 · 0 评论 -
Value '0000-00-00' can not be represented as java.sql.Date
java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp问题描述,在java应用程序中,数据表中有记录的time字段(属性为timestamp)其值为:“0000-00-00 00:00:00”程序使用select 语句从中取数据时出现以下异常:jav...2014-07-30 19:35:46 · 193 阅读 · 0 评论 -
Redis缓存Object,List对象 - Java 对象和List的序列化和反序列化
一、到目前为止(jedis-2.2.0.jar),在Jedis中其实并没有提供这样的API对对象,或者是List对象的直接缓存,即并没有如下类似的APIjedis.set(String key, Object value)jedis.set(String key, List<M> values) 而更多的API是类似于jedis.set(String key, St...2014-07-31 17:00:08 · 1397 阅读 · 0 评论 -
Java实现字符串反转的8种或9种方法
注:对于第7种使用异或的方式来实现字符串的反转,如果不太看得明白的,可以参照另一篇博客:http://josh-persistence.iteye.com/blog/2205768 /** * */package com.wsheng.aggregator.algorithm.string;import java.util.Stack;/** * ...2015-04-24 14:20:32 · 607 阅读 · 0 评论 -
Java 使用异或交换两个整数或者字符串的用法及原理
Java交换两个数或字符串可以用temp来交换,如果不使用temp,有下面两种交换方法:1.对于数来说,可以用如下方式来进行交换,原理就是用a来作为临时变量存储。a = a + b; b = a - b; // 此时的a的值是a+b,所以此时的b = a - b = a+b-b = aa = a - b; // 此时a的值是a+b, b的值是a,所以此时的a= a - b = a+...2015-04-24 14:14:28 · 436 阅读 · 0 评论 -
Java Comparable 和Comparator接口的使用及区别
一、Comparable简介1、Comparable 是排序接口。 2、若一个类实现了Comparable接口,就意味着“该类支持排序”。 即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序。 ...2015-04-17 17:01:36 · 102 阅读 · 0 评论 -
Jquery - Ajax Call的中文乱码问题
在Java中,有时会碰到奇怪的中文乱码问题,无论是在web.xml中设置相关的utf-8/gbk2312 filter,还是在js中或者在java中进行编码的encode和decode都会出现中文乱码问题。如下代码所示:function loadParentOrg() { var url = "getOrgsByLevel.patrol?level=中文"; ...2014-12-16 21:55:21 · 182 阅读 · 0 评论 -
Google Gson - 将给定的Json转换为Map中嵌套Map的数据结构
一、Json如下 { "lbmember_hash": { "10.2.180.74:1300": { "protocol": "ANY", "opsState": "up", "ip": "10.2.180.74",2014-12-13 15:33:26 · 1566 阅读 · 0 评论 -
Java获取泛型参数的类型的方法 - 实例讲解
在Java中,我们常常需要获取泛型参数的类型,比如将使用了泛型的Java代码进行序列化和反序列化的时候。 一、在开始试图去获取泛型参数的类型前,可以试着去执行如下的类,看看执行的结果:/** * */package com.wsheng.aggregator.generic;import java.lang.reflect.Paramet...2014-12-11 18:09:11 · 349 阅读 · 0 评论 -
JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)...
前提概要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每一种工具都有其自身的特点,用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测。接下来的两个专题分别会讲VisualVM的具体应用。 现实企业级Jav...2014-11-29 18:46:10 · 2072 阅读 · 0 评论 -
不重新打包部署 - 修改项目配置文件并快速应用到Tomcat中(即修改Tomcat war包中某个jar包中的配置文件)...
问题描述:如果我们有一个Web project: A, 如果该web project A中会引用我们的另一个jar project: B。即在A.war中会有一个B.jar。B.jar中有一些系统相关的配置文件,如数据库的配置。 如果我们需要马上修改该应用的数据库配置,常规的做法在IDE中是去修改B中的内容,然后重新build好后将A.war上传到我们的服务器上并重启Tomcat。...2014-09-12 21:18:26 · 2338 阅读 · 0 评论 -
java泛型(Class<T>,Class<?>)
一、概述 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转...2015-08-16 00:09:29 · 897 阅读 · 0 评论 -
Class和ClassLoader的getResourceAsStream的区别
一、共同点:两个都可以用于从 classpath 里面进行资源读取。 二、不同点:资源的定义不同1、Class用于相对于一个Object取资源。2、ClassLoader相对于classpath取资源,用的是绝对路径。3、路径的不同: 3.1:在使用Class.getResourceAsStream 时, 资源路径有两种方式,一种以 / 开头,则这样的路...2015-08-11 09:01:58 · 181 阅读 · 0 评论 -
JVM性能调优监控工具专题二:VisualVM基本篇之远程监控,监控Tomcat
一、概述上一个专题专门举例说明了使用VisualVM来对JVM的内存,CPU和线程进行监控,如果有兴趣,可以查看:http://josh-persistence.iteye.com/blog/2233445, 这一专题继续说明VirsualVM怎样进行远程监控,怎样监控Tomcat。从前面的博客中可以知道,VisualVM在启动后,可以看到窗口左侧的”应用程序“栏中有”本地“,...原创 2015-08-08 17:08:15 · 600 阅读 · 0 评论 -
jAXB学习 (一)入门
JAXB全称Java Architecture for XML Binding,是一个用于在XML和Java对象之间进行映射的规范。使用JAXB,可以自动的将一个XML文档映射成对应的Java对象,也可以将对 象保存成XML格式。有很多其他的处理XML结构和对象之间映射的技术,这里只讨论JAXB。 一、安装 首先我们需要去下一份JAXB的实现,可以去SUN(现在的oracle)...原创 2013-07-20 10:58:27 · 122 阅读 · 0 评论 -
Linux 卸载JDK并安装新版本JDK (rpm,tar)
一、查看Jdk的安装路径: whereis java which java (java执行路径) echo $JAVA_HOMEecho $PATH 备注:如果是windows中,可以使用:set java_home:查看JDK安装路径 java -version:查看JDK版本 二、卸载旧版本的JDK: 如果是卸载openjdk:直接使用apt-g...2013-07-17 17:37:18 · 295 阅读 · 0 评论 -
Stop Watch - java获取方法的具体执行时间
大家都知道java中,如果想查看一个方法执行具体的时间,最简单的方法就是在方法执行前后使用long System.currentTimeMillis()获取当前的时间,再用时间相减。其实这样获取的时间是相对不精确的。例如在下面的程序中: long startTime = System.currentTimeMillis();method();long endTime = Syste...2013-07-03 08:48:18 · 401 阅读 · 0 评论 -
Java 读取Properties文件
前提:在一个webproject中,在source目录下有一个配置文件settings.property,有一个Class叫Test. 1. 直接在Test.java中的main()方法中读取settings.properties文件,可以有如下3种方法: Properties properties = new Properties(); 1) pr...2013-06-20 14:19:54 · 79 阅读 · 0 评论 -
Java获取路径
在JSP、Servlet、Java中获取详细路径的的常见方法。假设现在有一个项目,项目名为java_path,有一个jsp文件test.jsp. 一、在JSP中获取文件的路径: 1) 得到包含工程名的当前页面的全路径:request.getRequestURI() 结果:/java_path/test.jsp 2) ...2013-06-20 11:01:27 · 111 阅读 · 0 评论 -
Java如何获取VMware中Vcenter/ServerInstance下的各种硬件信息
用Java来获取VMware ESX Server的信息可以通过一个第三方jar包进行方便的操作: Vijava – Vmware infrastructure(vSphere) java API 关于ESX Server的介绍,可以参照我的另一篇博客:http://josh-persistence.iteye.com/admin/blogs/1887722 下面看看一些相关...2013-06-17 00:16:45 · 2190 阅读 · 1 评论 -
Java变量之间传值 - 值传递还是引用传递的讨论
Java变量之间传值时可分为值传递和引用传递, 那么它们有何区别? 1. 简单类型是按值传递的 Java 方法的参数是简单类型的时候,是按值传递的 (pass by value),需要注意的是,对于基本类型的包装类型,因为JVM的自动拆箱操作,包装类型变成基本类型后也会按基本类型来进行操作,那么也是按值进行传递。这一点我们可以通过一个简单的例子来说明: public ...2013-06-16 17:24:05 · 108 阅读 · 0 评论 -
Java - 变量及其生命周期,初始值,访问方式
一、java类的成员变量有两种: (静态变量,实例变量)1.被static关键字修饰的变量,叫类变量或者静态变量。 1.1: 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存, 1.2: 静态变量位于方法区,被类的所有实例共享。 1.3: 静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。 ...2013-06-14 17:54:26 · 190 阅读 · 0 评论 -
jAXB学习 (二)类型绑定
上面一节简单介绍了怎么入门JAXB,这节介绍怎么自定义绑定类型。 JAXB会有一些默认的类型匹配,以下是一张匹配表: XML Schema Type Java Data Type xsd:stringjava.lang.Stringxsd:integerjava.math....原创 2013-07-20 11:04:07 · 154 阅读 · 0 评论 -
JAXB学习 (三)验证
一个完整个对象-模型映射,一定少不了对验证的支持。 jaxb当然也支持验证,分为两个部分:marshall和unmarshall。 一、unmarshall端 unmarshall是从xml到java对象的过程,因此验证的是这个xml文件是不是有效的,要在unmarshall端使用验证非常简单: Unmarshaller unmarshal...原创 2013-07-20 11:08:55 · 381 阅读 · 0 评论 -
JVM性能调优监控工具专题二:VisualVM基本篇之监控JVM内存,CPU,线程
前言: 上一个专题中讲述了JVM中自带的各种性能测试的小工具:包括jps,jstatck,jmap,jhat,jsats,hprofhttp://josh-persistence.iteye.com/blog/2161848,根据项目应用中的具体情况,如果想要查看Java进程中线程堆栈的信息,可以选择jstack,如果要查看堆内存,可以使用jmap导出并使用jhat来进行...2015-08-06 23:05:00 · 504 阅读 · 0 评论 -
Java时区处理之夏令时,冬令时 - 美国的6个时区
在开始之前,如果要了解Java中的时区操作的基本概念和事例,可以参见另一篇博客:Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat 一、夏令时概述:Daylight Saving Time:DST 夏令时,又称“日光节约时制”或“夏时制”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称...2015-07-26 17:06:17 · 2944 阅读 · 0 评论 -
Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat
一、概述 1、问题描述 使用Java处理时间时,我们可能会经常发现时间不对,比如相差8个小时等等,其真实原因便是TimeZone。只有正确合理的运用TimeZone,才能保证系统时间无论何时都是准确的。由于我在外企工作,服务器在美国,美国也有很多时区,经常会碰到向处于不同时区的服务器发请求时需要考虑时区转换的问题。譬如,服务器位于西八区(GMT-8:00),而身处东八区的...原创 2015-07-24 21:27:34 · 973 阅读 · 1 评论 -
深入浅出Java Annotation(元注解和自定义注解)
一、基本概述 Annontation是Java5开始引入的新特征。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。 更通俗的意思是为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且是供指定的工具或框架使用的。 ...2015-07-12 01:42:44 · 239 阅读 · 0 评论 -
浅谈java 中构建可执行 jar 包的几种方式
概述 有时候,由于项目的需要,我们会将源码编译后以工具包(即将class打成jar包)的形式对外提供,此时,你的 jar 包不一定要是可执行的,只要能通过编译,能被别的项目以 import 的方式调用就行了。 但还有的情况是,我们的 jar 包是要可执行的,即能直接在 cmd 下直接通过java -jar的命令运行。 前者的打包很简单,在 ecli...2013-09-07 21:32:18 · 120 阅读 · 0 评论 -
JAVA 泛型 - Class<T>
一、 随着Java的发展,类Class已经泛型化了。但是随之而来会有一系列的疑问,Class<T> 中类型参数 T 的含义是什么?Class<T>和Object有什么区别? 实际上,在之前的JDK版本中,Class.newInstance() 方法的定义返回 Object,您很可能要将该返回类型强制转换为另一种类型:class Class { O...2013-09-03 20:37:26 · 490 阅读 · 0 评论 -
Java解析JSON格式的数据封装到对应的Object中 - Google Gson的使用
需求:有一个已知字段名的JSON字符串数组:"{\"serverMetrics\":[{\"vip\":\"caty1.vip.ebay.com\", \"metricsName\":\"CPU Number\", \"hostName\":\"caty1\", \"metricsTime\":\"20130101 13:2013-07-24 23:18:53 · 178 阅读 · 0 评论 -
JAXB学习 (四)JAXBContext
在jaxb应用中,JAXBContext类可以说是使用JAXB API的入口点,就像是一道门,只有通过它才能进入到jaxb的世界里。 JAXBContext类提供的功能主要有: marshallunmarshallvalidate 在jaxb中,通常如果声明JAXBContext对象:JAXBContext jaxbContext = JAX...原创 2013-07-21 18:10:57 · 271 阅读 · 0 评论