拥有Java标签的文章
Java

java获取真实客户端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

系统 2019-08-29 22:59:17 2443

Java

java clone方法使用详解

Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,特别是先学c、c++后学java的程序员。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。比如函数参数类型是自定义的类时,此时便是引用传递而不是值传递。以下是一个小例子:1publicclassA{2publicStringname;3}4publicclasstestClone{5publi

系统 2019-08-29 22:02:42 2443

Java

敏捷开发中编写高质量Java代码

敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整个项目的代码质量。Java项目开发过程中,由于开发人员的经验、Java代码编写习惯,以及缺乏统一的标准和管理流程,往往导致整个项目的代码质量较差,难于维护,需要较大的测试投入和周期等问题。这些问题在一个项目组初建、需求和设计均具有不完全可预期性和完备性的全新项目中将尤为突出。如图1所示,敏捷开发过程经历需求调研,用例分析和用例分解,进入开发迭代阶段。在每个

系统 2019-08-29 21:58:48 2443

Java

带线程池的小服务器-Java实现

前两天,利用线程池技术(ThreadPool)写了个web服务器,其性能当然无法和apacheiis等相比,但基本的功能都有了,唯一欠缺的是无法解析动态页面,采用解释执行(asp模式的)效率太低,如果采用编译执行,要么自己编写一个编译器来编译整个动态页面,要么采用预编译,很复杂。。。。现在把代码拿出来晒一晒!由于只是初步的设计所以没有考虑到很多设计模式,代码在优化上很不到位,请各位高手不吝赐教。MainServer.java这是主服务文件,也是提供主线程的

系统 2019-08-12 09:29:48 2443

Java

Efficient Counter in Java

Reference:http://www.programcreek.com/2013/10/efficient-counter-in-java/Youmayoftenneedacountertounderstandthefrequencyofsomething(e.g.,words)fromadatabaseortextfile.AcountercanbeeasilyimplementedbyusingaHashMapinJava.Thisarticlec

系统 2019-08-12 01:54:24 2443

Java

mongodb之java CRUD 简单操作

我下载的是mongo-2.8.0.jar—Version2.8.0打开mongoshell--新建数据库test--(usetest)打开eclipse新建工程,把junit,mongo-2.8.0.jar导入。新建测试类如下:packagecom.db;importjava.net.UnknownHostException;importjava.util.ArrayList;importjava.util.List;importorg.bson.type

系统 2019-08-12 01:51:35 2443

Java

格雷码 Java python c++ C# 解法 原理讲解

例子:以下是2位序列(n=2)00011110以下是3位序列(n=3)000001011010110111101100以下是4位序列(n=4)0000000100110010011001110101010011001101111111101010101110011000可以使用以下步骤从(n-1)位格雷码列表生成n位格雷码。1令(n-1)位格雷码列表为L1。创建另一个与L1相反的列表L2。2通过在L1的所有代码中加上前缀“0”来修改列表L1。3通过在L2的

系统 2019-09-27 17:49:59 2442

Java

全面接触Java集合框架 三四

2.List接口List接口继承了Collection接口以定义一个允许重复项的有序集合。该接口不但能够对列表的一部分进行处理,还添加了面向位置的操作。(1)面向位置的操作包括插入某个元素或Collection的功能,还包括获取、除去或更改元素的功能。在List中搜索元素可以从列表的头部或尾部开始,如果找到元素,还将报告元素所在的位置:voidadd(intindex,Objectelement):在指定位置index上添加元素elementboolean

系统 2019-08-29 22:44:16 2442

Java

Java多线程-volatile的原理与技巧

volatile,用更低的代价替代同步为什么使用volatile比同步代价更低?同步的代价,主要由其覆盖范围决定,如果可以降低同步的覆盖范围,则可以大幅提升程序性能.而volatile的覆盖范围仅仅变量级别的.因此它的同步代价很低.volatile原理是什么?volatile的语义,其实是告诉处理器,不要将我放入工作内存,请直接在主存操作我.(工作内存详见java内存模型)因此,当多核或多线程在访问该变量时,都将直接操作主存,这从本质上,做到了变量共享.v

系统 2019-08-29 22:02:41 2442

Java

Effective Java (泛型)

二十三、请不要在新代码中使用原生态类型:先简单介绍一下泛型的概念和声明形式。声明中具有一个或者多个类型参数的类或者接口,就是泛型类或接口,如List,这其中E表示List集合中元素的类型。在Java中,相对于每个泛型类都有一个原生类与之对应,即不带任何实际类型参数的泛型名称,如List的原生类型List。他们之间最为明显的区别在于List包含的元素必须是E(泛型)类型,如List,那么他的元素一定是String,否则将产生

系统 2019-08-29 22:02:38 2442

Java

JAVA中按字节截取字符串

/***//***按字节长度截取字符串*@paramstr将要截取的字符串参数*@paramtoCount截取的字节长度*@parammore字符串末尾补上的字符串*@return返回截取后的字符串*/publicStringsubstring(Stringstr,inttoCount,Stringmore)...{intreInt=0;StringreStr="";if(str==null)return"";char[]tempChar=str.toCh

系统 2019-08-29 22:59:44 2441

Java

java版仿QQ聊天软件,大量贴图,开放代码~~

无图无真相,先贴运行截图:客户端:登录:注册:注册成功:查找好友:找到好友:用户验证请求:好友分组:客户端主界面:个人资料:好友资料:聊天窗口:系统菜单:状态设置:系统托盘:服务器端:启动服务器:服务器运行状态:java版仿QQ聊天软件,大量贴图,开放代码~~

系统 2019-08-29 22:47:47 2441

Java

java.util.concurrent介绍

本文由cnblogs博主Caoer(草儿)原创,此处为转载。原文出处为http://www.cnblogs.com/sarafill/archive/2011/05/18/2049461.html如原创作者认为本文侵权,请通知本博。java.util.concurrent包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建java.util.concurrent的目的就是要实现Collection框架对数据结构所执行的并发操作。通过提供一组可靠

系统 2019-08-29 22:16:17 2441

Java

Java NIO(十一)Pipe

JavaNIO管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。这里是Pipe原理的图示:创建管道通过Pipe.open()方法打开管道。例如:Pipepipe=Pipe.open();向管道写数据要向管道写数据,需要访问sink通道。像这样:Pipe.SinkChannelsinkChannel=pipe.sink();通过调用SinkChannel的write()方法,

系统 2019-08-29 22:04:18 2441