JAVA 数据类型转换[转]

Posted by & filed under Uncategorized.

最常用的转换无非就是字符串转为数值,数值转为字符串 将字符串转为整数int 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异。 将整数 int 转换成字串 String有三种方法: 1.) String s = String.valueOf(i); 2.) String s = Integer.toString(i); 3.) String s = “” + i; 注: Double, Float, Long 转成字串的方法大同小异。 JAVA中常用数据类型转换函数: string->byte Byte static byte parseByte(String s) byte->string Byte static String toString(byte b)

AJAX原理解析[转]

Posted by & filed under Uncategorized.

一.AJAX简介 Ajax并不是一个新生的语言,它是一系列语言的结合体:HTML/XHTML、CSS、DOM、XML、XSLT、XMLHttp、JavaScript。可以说Ajax涉及的知识面的确是很广的,在Web开发中为我们提供了很方便的交互式用户体验模式。 Ajax技术特点: 1) 页面无刷新 2) 不打断用户的操作,用户的体验好。 3) 按需获取数据,浏览器与服务器之间数据的传输量减少。 4) 是一个标准技术,不需要下载任何的揑件。 5) 可以利用客户端(浏览器)的计算能力。 二.AJAX原理: 以往我们浏览网页的原理是由Client向Server提交页面申请,再由Server将申请通过HTTP传回给Client生成浏览页面: ( 传统web应用模型) 这样处理的结果就是当服务器在处理请求的过程中,用户是一直对着白色窗口等待着的。 当页面加载后,为什么还要让用户每次再花一半的时间从服务取数据?为什么老是让用户看到程序去服务器取数据呢?AJAX恰好弥补了这个缺陷。 使用Ajax后的工作原理如下图,可见通过Ajax在用户交互方面有了很大改进,用户可以不用为提交了Form而长时间等待服务器应答,而且通过Ajax也可以开发出华丽的Web交互页面。 (ajax模型) 那么AJAX是如何做到的呢? 通过在用户和服务器之间引入一个Ajax引擎,可以消除Web的开始-停止-开始-停止这样的交互过程. Read more […]

java hashCode()和equals()的本质区别和联系[转]

Posted by & filed under Uncategorized.

在学习java,根据视频做实例的过程中,对equals和hashcode两个方法理解稍微深刻一点,主要是它们两个很容易混淆,容易出错,自己又通过网上的资料学习,和大家分享 equals()方法 equals是Object类提供的方法之一,众所周知,每一个java类都继承自Object类, 所以说每一个对象都有equals这个方法。而我们在用这个方法时却一般都重写这个方法,why? 先看一个Object类中equals()方法的源代码: [java] view plaincopyprint?在CODE上查看代码片派生到我的代码片 public boolean equals(Object obj) { return (this == obj); } 从这个方法中可以看出,只有当一个实例等于它本身的时候,equals()才会返回true值。通俗地说,此时比较的是两个引用是否指向内存中的同一个对象,也可以称做是否实例相等。而我们在使用equals()来比较两个指向值对象的引用的时候,往往希望知道它们逻辑上是否相等,而不是它们是否指向同一个对象——这就是我们通常重写这个方法的原因。 [java] Read more […]

JAVA 跨平台原理[转]

Posted by & filed under Uncategorized.

反复的听说JAVA是一种跨平台的语言,到底何为跨平台,JAVA又是如何实现跨平台的呢? 先来看一则小故事 最近YY上开设了JAVA俄语班、JAVA英语班、JAVA日语班等等,关于JAVA的系列课程教室。小花是JAVA行业的大牛,于是YY的管理员邀请小花在工作之余,为一些初来乍到的学者们讲课。很多同学听说小花讲课不错,都想听听小花的课,可是问题来了:各位学者来自不同国家,他们大多只懂自己的国语(爱国呀!),而小花只懂汉语,对于英语略懂点(超级爱国者),这怎么办呢?有两种办法,第一,他每次上课前,先准备好演讲稿,各种语言都用自己懂的汉语来标注;第二,每次上课,带个翻译(这个翻译比较列害,八种语言不在话下)。 Read more […]

java获取客户端真实IP地址的两种方法[转]

Posted by & filed under Uncategorized.

项目里经常要获取用户的IP地址,网上看到这篇文章在此做个备份。 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.javapeixun.com.cn / 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.110,而并不是客户端的真实IP。 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问http://www.javapeixun.com.cn Read more […]

如何优化JAVA程序设计和编码,提高JAVA性能

Posted by & filed under Uncategorized.

通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。   下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。   1.对象的生成和大小的调整。   JAVA程序设计中一个普遍的问题就是没有好好的利用JAVA语言本身提供的函数,从而常常会生成大量的对象(或实例)。由于系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。因此,生成过多的对象将会给程序的性能带来很大的影响。 Read more […]

Spring MVC和Struts2的比较[转]

Posted by & filed under Uncategorized.

虽然说没有系统的学习过Spring MVC框架, 但是工作这么长时间, 基本上在WEB层使用的都是Spring MVC, 自己觉得Struts2也是一个不错的WEB层框架, 这两种框架至今自己还未有比较, 今天闲着没事干, 从网上找了一些资料, 再加上平时使用Spring MVC的感触来总结一下。 Spring MVC PK Struts2 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置。spring3 mvc可以认为已经100%零配置了(除了配置spring mvc-servlet.xml外)。 Spring MVC和Struts2的区别: 1. 机制:spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。 (区别:1,servlet Read more […]

JAVA序列化与反序列化三种格式存取(默认格式、XML格式、JSON格式)[转]

Posted by & filed under Uncategorized.

什么是序列化 java中的序列化(serialization)机制能够将一个实例对象的状态信息写入到一个字节流中,使其可以通过socket进行传输、或者持久化存储到数据库或文件系统中;然后在需要的时候,可以根据字节流中的信息来重构一个相同的对象。序列化机制在java中有着广泛的应用,EJB、RMI等技术都是以此为基础的。 正确使用序列化机制 一般而言,要使得一个类可以序列化,只需简单实现java.io.Serializable接口即可(还要实现无参数的构造方法)。该接口是一个标记式接口,它本身不包含任何内容,实现了该接口则表示这个类准备支持序列化的功能。如下例定义了类Person,并声明其可以序列化。 上面两段来源:http://lionheart.iteye.com/blog/139540 Read more […]

6种排序算法的简洁实现:冒泡、选择、插入、归并、快速、堆[转]

Posted by & filed under Uncategorized.

注释写得已经非常详细了,有兴趣的可以瞧瞧。 源码&注释 [java] view plaincopy package cn.fansunion.common.suanfa; /** * 排序工具类 * * @author LeiWen@FansUnion.cn * */ public final class SortingUtils { public static boolean debug = false; // 不允许实例化 private SortingUtils() { } /** * 冒泡排序:最容易理解的排序方法 */ public static void bubbleSort(int[] array) { boolean needNextPass = true; int length = array.length; // 遍历N-1次,从第“2”个元素开始 for (int index = 1; index < length; index++) { // 需要下一次排序 if (needNextPass) { Read more […]

javascript之jquery DOM操作[转]

Posted by & filed under Uncategorized.

查找节点 [javascript] view plaincopy var $para = $(“p”); // 获取节点 var $li = $(“ul li:eq(1)”); // 获取第二个元素节点 var p_txt = $para.attr(“title”); // 输出元素节点属性title var ul_txt = $li.attr(“title”); // 获取里的第二个元素节点的属性title var li_txt = $li.text(); // 输出第二个元素节点的text alert(ul_txt); alert(li_txt); alert(p_txt); 创建节点 [javascript] view plaincopy var $li_1 = $(“”); // 创建第一个元素 var $li_2 = $(“”); // 创建第二个元素 var $parent = $(“ul”); // 获取节点。的父节点 $parent.append($li_1); // 添加到节点中,使之能在网页中显示 $parent.append($li_2); // 可以采取链式写法:$parent.append($li_1).append($li_2); Read more […]