java基础
Tree-New_Bee
微信号:bzofans
展开
-
Maven中的几个重要概念:lifecycle, phase 和 goal
当我们对一个项目进行打包时,maven分别执行了验证(validate) ==> 编译源码(compile) ==> 编译测试源码(test-compile) ==> 单元测试(test) ==> 打包(package)这个过程就是生命周期(lifecycle)。在生命周期的过程中会有很多的阶段(phase),这些阶段按照既定的顺序执行来完成一个项目...转载 2020-04-14 00:18:03 · 2075 阅读 · 0 评论 -
原子性与可见性
一、定义1.可见性在多核处理器中,如果多个线程对一个变量(假设)进行操作,但是这多个线程有可能被分配到多个处理器中运行,那么编译器会对代码进行优化,当线程要处理该变量时,多个处理器会将变量从主存复制一份分别存储在自己的片上存储器中,等到进行完操作后,再赋值回主存。(这样做的好处是提高了运行的速度,因为在处理过程中多个处理器减少了同主存通信的次数);同样在单核处理器中这样由于“备份”造成的问转载 2014-02-26 13:34:32 · 652 阅读 · 0 评论 -
JAVA反射之取消对访问控制检查
package test;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * AccessibleObject类是Field、Method、和Constructor对象的基类。它提供了将反射的对象标原创 2014-02-10 11:04:08 · 3730 阅读 · 1 评论 -
java项目启动之编码问题
描述:开发环境为myEclipse,编码格式为utf-8.各种网络流读取格式无误.但是当改为bat文件启动后,流的读取出现了乱码问题,以明确知道获取对象的格式为utf-8.然后分析为项目启动后的编码格式为gbk,通过查资料作出判断:System.out.println("Default Charset="+Charset.defaultCharset()); System.out.原创 2013-12-03 23:00:07 · 2400 阅读 · 0 评论 -
java项目bat文件再运行时动态加载jar包
目录格式-jdk-lib-start.batbat文件内容@echo offsetlocal enabledelayedexpansionSET GW_HOME=F:\Users\*****set java_exe=javaSET CLASSPATH=.FOR %%c IN (%GW_HOME%\lib\*.jar) DO SET CLASSPAT原创 2013-12-01 22:19:00 · 2366 阅读 · 0 评论 -
Java 单例模式探讨 (转)
以下是我再次研究单例(java 单例模式缺点)时在网上收集的资料,相信你们看完就对单例完全掌握了Java单例模式应该是看起来以及用起来简单的一种设计模式,但是就实现方式以及原理来说,也并不浅显哦。 总结一下我所知道的单例模式实现方式: 1.预先加载法 Java代码 class S1 { private S1() {转载 2013-10-23 23:20:07 · 798 阅读 · 0 评论 -
JAVA序列化技术概述
Java 序列化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来。重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的序列化机制是RMI、EJB、JNNI等技术的技术基础。1.1 序列化技术基础并非所有的Java 类都可以序列化,为了使你指定的类可以实现序列化,转载 2013-10-17 22:58:22 · 666 阅读 · 0 评论 -
转一篇有关Java的内存泄露的文章
http://www.lybbs.net/news_read.do?newsPath=2007/9/25/1190684628458.html 1引言 Java的一个重要优点就是通过垃圾收集器GC (Garbage Collection)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java 不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序转载 2013-09-25 12:59:50 · 606 阅读 · 0 评论 -
ehcache详细解读
Ehcache是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大,最初知道它,是从Hibernate的缓存开始的。网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的问题,请自行google;对于API,官网上介绍已经非常清楚,请参见官网;但是很少见到特性说明和对实现原理的分析,因此在这篇文章里面,我会详细介绍和分析EhCache的特性,加上一些自己的理解和思考,转载 2013-09-24 17:15:58 · 1114 阅读 · 0 评论 -
log4j.properties配置详解(转载)
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下: #配置根Loggerlog4j.rootLogger= [level ] , appenderName1 ,转载 2013-09-24 17:08:09 · 782 阅读 · 0 评论 -
线程池系列一:线程池作用及Executors方法讲解
线程池的作用: 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开转载 2013-09-13 15:58:02 · 1032 阅读 · 0 评论 -
Java获取资源路径的方法与区别
◆一般情况下,我们都使用相对路径来获取资源,这样的灵活性比较大. 通过当前类文件的路径获取资源主要有如下几种方式: · 假设当前类为com.ketqi.Test · 包所在的文件夹为bin · 而如果这些图像资源放置在icons目录下,则应该是com/ketqi/icons/sample.gif String imageName = "icon原创 2014-02-18 10:54:04 · 2501 阅读 · 0 评论 -
Java中解决(extjs或jquery)session过期退出登录问题
解决两种情况下的用户访问超时:a)普通http请求的session超时;b)异步http请求的session超时,如果使用extjs后大部分的界面刷新都是异步的ajax请求。不管是那种类型的http请求总是可以由一个过滤器来捕捉。分类:普通http请求的header参数中没有x-requested-with:XMLHttpRequest头信息,而异步的有。其实对于常见的转载 2014-03-11 13:18:59 · 1151 阅读 · 0 评论 -
MyEclipse修改j2ee Libraries版本
右键 Build Path→Configure Build Path... → add Library.... → MyEclipse Libraries转载 2014-03-06 23:31:29 · 3102 阅读 · 0 评论 -
基于Range协议的文件下载
当http请求头中包含Accept-Ranges: bytes时,若响应头为HTTP/1.1 206 Partial Content则代表该资源支持切片下载。只需要在请求头中加入Range: bytes=start-end服务端就会响应给定的范围内的资源。HTTP Range文件下载示例:import java.io.IOException; import java.io.InputStream;原创 2016-05-21 14:36:36 · 823 阅读 · 0 评论 -
基于Range协议的文件下载
当http请求头中包含Accept-Ranges: bytes时,若响应头为HTTP/1.1 206 Partial Content则代表该资源支持切片下载。只需要在请求头中加入Range: bytes=start-end服务端就会响应给定的范围内的资源。HTTP Range文件下载示例:import java.io.IOException;import java原创 2016-05-21 14:35:16 · 1621 阅读 · 0 评论 -
CAS环境下的AJAX跨域
情况说明: 在单点登录的环境下,所有的文件上传都是通过webuploader上传到文件管理服务器。而webuploader的上传可以参考ajax的请求,相当于是跨域操作。 首先,跨域请求访问的问题,可以通过在文件服务器增加拦截器,修改请求头来解决。package com.sdzn.util;import java.io.I原创 2015-10-09 14:56:56 · 6087 阅读 · 0 评论 -
解决SWFUpload在Chrome、Firefox浏览器下session找不到的问题
SWFUpload是一个非常不错的异步上传组件,但是在Chrome、Firefox等浏览器下使用的时候会有问题。问题如下:为了防止跳过上传页面直 接向“接受SWFUpload上传的一般处理程序”(假如是Upload.action)发送请求造成WebShell漏洞,我的系统中对于 Upload.action进行了权限控制,只有登录用户才能进行上传。在IE下没问题,但是在Firefox下运行报错ses原创 2013-09-04 17:03:29 · 3937 阅读 · 2 评论 -
JAVA利用反射映射JSON对象为JavaBean
关于将JSONObject转换为JavaBean,其实在JSONObject中有对于的toBean()方法来处理,还可以根据给定的JsonConfig来处理一些相应的要求,比如过滤指定的属性//返回true表示过滤掉该属性jsonConfig.setJsonPropertyFilter(new PropertyFilter() { @Override public boole原创 2015-09-15 11:56:44 · 4633 阅读 · 0 评论 -
Java中方法用final修饰参数的作用
在方法参数前面加final关键字就是为了防止数据在方法体重被修改。主要分为两种情况:第一,用final修饰基本数据类型;第二,用final修饰引用数据类型。第一种情况,修饰基本数据类型,这时参数的值在方法体内是不能被修改的,即不能被重新赋值。否则编译就不通过。第二种情况,修饰引用类型。这时参数变量所引用的对象是不能被改变的。但是对于引用数据类型,如果修改其属性的话是完全可以的。所以原创 2015-09-07 19:36:53 · 5262 阅读 · 0 评论 -
Java实现的图片转HTML
偶然在网上看到一个.net的将图片转成html代码的方法,想来java也可以轻松实现。遂试之....import java.awt.image.BufferedImage;import java.awt.image.ColorModel;import java.awt.image.Raster;import java.io.BufferedWriter;import java.io.File;i...原创 2015-09-07 19:38:53 · 2553 阅读 · 1 评论 -
servlet单实例多线程模式
前言:Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题。 JSP的中存在的多线程问题: 当客户端第一次请求某一个JSP文件时,服务端把该JSP编译成一个CLASS文件,并创建一个该类的实例,然后创建一个线程处理CLIENT端的请求。如果有多个转载 2014-05-07 14:34:41 · 707 阅读 · 0 评论 -
JAVA位运算符回顾
1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。 按位与运原创 2013-08-06 16:24:52 · 703 阅读 · 0 评论 -
Java 垃圾回收策略调优,实践篇
JVM参数调优是一个很头痛的问题,可能和应用有关系,下面是本人一些调优的实践经验,希望对读者能有帮助,环境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G内存,dell2950服务器,网站是shedewang.com,新手可能觉得这文章没有用。一:串行垃圾回收,也就是默认配置,完成10万request用时153秒,JVM参数配置如下$JAVA_ARGS .= "转载 2013-10-09 16:53:10 · 1040 阅读 · 0 评论 -
Java中的BoneCP数据库连接池
最近在学习公司的框架,涉及到连接数据库部分的技术时,发现用的是BoneCP,上网查阅了相关资料与例子,个人觉得下面这例子比较容易懂,有收藏的价值存在,故将其放在自己的博客里,供学习时参考: BoneCP is a fast, free, open-source, Java database connectionpool (JDBC Pool) library. If you are famil转载 2013-09-11 17:10:03 · 3880 阅读 · 0 评论 -
将Sun的Open Message Queue与Spring集成
1. 前言基于JMS标准的消息中间件实现的产品有很多,JBossMQ、ActiveMQ、OpenMQ、OpenJMS等等,最常用的还是apache的ActiveMQ。有时也使用Sun的OpenMQ。在官网http://mq.java.net/处可以下载。Open Message Queue是Sun Java System Message Queue的一个开源版本。Open m转载 2013-09-10 16:38:08 · 1168 阅读 · 0 评论 -
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res
金额的数据类型是BigDecimal 通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常的,异常如下:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. at java.math.BigDecim原创 2013-09-06 16:18:30 · 2365 阅读 · 1 评论 -
MyEclipse 8.5 安装 axis2 插件
题记: 最近在看axis2的一些资料,在官网上看到了axis2提供的两个eclipse插件工具,觉得很不错,就希望在MyEclipse上安装。axis2网站上介绍的安装方法很简单,但自己弄的时候总是不成功,网上看的很多资料也大多不成功,在此记录下我的处理方法。 摘要 一:MyEclipse安装axis2插件简述 二:浅析安装失败的原因转载 2013-06-07 13:11:06 · 908 阅读 · 0 评论 -
ajax请求返回的页面不跳转
AJAX请求是不可能在服务端完成跳转的,它只能将文本信息传回到客户端。你可以这么做,如果验证失败的话让拦截器将失败信息以一定的json格式写入输出流中,然后在js里为Ext.ajax添加requestcomplete事件监听,对返的XMLHttpRequest 进行解析,如果responseText属性是验证失败的json串则在客户端通过window.location进行跳转转载 2013-06-05 23:23:26 · 2579 阅读 · 0 评论 -
Java try catch finally的执行顺序
关于Java中try catch finally 的执行顺序一直是入职笔试的一个热门,其实在实际的项目中还是遇到的比较多,所以整理如下: 需要首先注意的几点: 1) try catch finally中的finally不管在什么情况之下都会执行,执行的时间是在程序return 之前. 2) Java 编译器不允许有显示的执行不到的语句块,比如return之后就不转载 2013-06-14 09:15:30 · 626 阅读 · 0 评论 -
JAVA技巧(Java多线程运行时,减少内存占用量)
项目发布到Production服务器上,经过一段时间跟踪发现服务器上项目的内存占有量在缓慢增长,但是在本地做压力时却没有发现这个问题,或者虽然做了压力测试单由于环境的差异内存增长不明显所以没有注意。于是就下载了JProfilter安装到本地的测试服务器上,运行测试发现有些类的个数竟然大于并发线程的个数,很是奇怪,经分析发现原来这并发线程都使用New Class来实现一些对底层数据或对象的操作,代码转载 2013-06-14 09:03:05 · 4082 阅读 · 0 评论 -
日期时间的转换符
String message = String.format("%1$tF %关于文件的位置: 当指定一个相对文件名时,例如,“myfile.txt”。文件位于java虚拟机启动路径的相对位置。如果在命令行方式下用下列命令启动程序:java MyProg 启动路径就是命令解释器的当前路径。然而,如果使用集成开发环境,那么启动路径将有IDE控制。可以使用下原创 2013-05-30 21:47:51 · 590 阅读 · 0 评论 -
走进序列化之基础篇(勇气篇)
走进序列化之基础篇(勇气篇)介绍:基础篇:超多案例+超详细解析序列化后的二进制文件(以字节为单位分析)。原理篇:JDK源码+Java-Object Serialization Specification官方文档解读。终结篇:序列化机制之我见+翻译的序列化英文的官方文档PDF。(基础篇称之为勇气篇,内容超多能看完确实需要勇气)目的:通过了解序列化机制,进一步增加对JDK源转载 2013-05-13 18:47:47 · 676 阅读 · 0 评论 -
Servlet中Web.xml的配置详解
1 定义头和根元素部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义)。所有部署描述符文件的顶层(根)元转载 2013-05-22 17:54:53 · 2222 阅读 · 0 评论 -
HTTP method GET is not supported by this URL
package edu.hubu.cst.testServlet;import java.io.IOException;import java.io.OutputStream;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.转载 2013-05-22 13:20:22 · 868 阅读 · 0 评论 -
java中XML格式的字符串4读取方式的简单比较
最近工作中遇到一个有关XML格式的字符串的解析问题,在网上收集了些资料,总共有四种方式如下,并对所用是进行了简单比较.可能如我字符串的长短,和负责程度有关系,结果不一定准确 仅供参考! 下面看代码:1.java自带的DOM解析.import java.io.StringReader; import javax.xml.parsers.DocumentBuilder; impor转载 2013-05-22 17:39:25 · 806 阅读 · 0 评论 -
关于通过JAVA的HTTP POST请求传输XML型数据
关于跨域传输XML数据,由于刚接触到,碰到了许多问题。这里把一些相关方法记录下来,也给大家提供一些参考(新手适用,高手请过 嘿嘿)。Client:通过HTTP POST方式请求并接收返回数据。(用于请求别人的接口,并接收返回的数据)Server:接收HTTP POST请求过来的数据并返回数据。(用于别人请求自己的接口,接收请求数据并返回数据)下面是大致实现代码:Client:p转载 2013-05-21 19:16:10 · 17355 阅读 · 2 评论 -
备忘-按日期、时间或大小生成log文件的log4j配置方案
from:http://blog.sina.com.cn/s/blog_543e73a80100o757.html我们开发的B/S结构系统,在服务端一般要有日常运行的日志记录。保存成日志文件形式的时候,大家经常会遇到一个问题:日志文件过大。上百兆的日志文件对 查阅日志信息来说也是一个问题。所以我希望能够每天或每个月产生一个日志文件,这样文件不至于过大。 或者根据日志文件大小来判断,超过规定大小转载 2013-07-09 11:54:58 · 2865 阅读 · 0 评论 -
Java中的finalize详解
程序员都了解初始化的重要性,但常常会忘记同样重要的清除工作。毕竟,谁需要清除一个int 呢?但在使用程序库时,把一个对象用完后就“弃之不顾”的做法并非总是安全的。当然,Java有垃圾回收器来回收无用对象占据的内存资源。但也有特殊情况:假定你的对象(并非使用 new)获得了一块“特殊”的内存区域,由于垃圾回收器只知道释放那些经由 new分配的内存,所以它不知道该如何释放该对象的这块 “特殊”内存。为转载 2013-07-08 13:44:32 · 635 阅读 · 0 评论 -
解决定时器时间变更问题
今日项目中出现问题,服务器时间跳到一个月之前,修正后发现定时器任务全部都不起作用了。起初以为程序出错,研究后感觉是任务管理器类的问题。读代码后发现在每次循环任务时线程管理器都会与系统当前时间做比较,这样的话如果系统时间发生变化(变小)会对定时任务发生影响。于是对Timer类和TimerTask类进行重写,修改内部类中的mainLoop()方法后,经测试通过。无论是时间改到几个月之后或是原创 2013-07-08 22:43:01 · 3668 阅读 · 0 评论