java
文章平均质量分 65
WannerWang
which hurts more,the pain of hard work or the pain of regret?
展开
-
java 网络编程之ServerSocket详解
构造ServerSocket :在客户/服务器通信模式中,服务器需要创建创建监听特定端口的ServerSocket。负责接收客户连接请求。如果在构造方法运行过程中 如果无法绑定到指定的端口上,会抛出BindException。有如下原因:1:端口号被占用。2 :在某些OS中,如果没有以超级用户身份运行程序,不允许绑定到0-1023的端口。设定客户连接请求的队列:当服务原创 2015-10-16 12:19:08 · 674 阅读 · 0 评论 -
java 解析XML文件(DOM & SAX)(一)
XML :可扩展标记语言,XML是一个以文本来描述数据的文档。XML 用途:1:充当显示数据。2:XML描述数据并在联系服务器系统的其余部分之间传递。XML 是信息封装,和消息传递技术。解析XML文件1:DOM解析:解析原理: 在处理DOM解析的时候,需要读入整个XML文档,然后在内存中创建DOM树,生成DOM树的每个NODE对象,当文档相对较小的时候,不会出现问题,当文档原创 2015-12-10 16:47:30 · 307 阅读 · 0 评论 -
java解析XML (JDOM & DOM4J,X-stream)(二)
JDOM解析XML文件JDOM 简化了与XML的交互并且比使用DOM实现更快,JDOM 与DOM主要有两方面不同,JDOM使用具体的类而不使用接口,这在某些方面简化了API,但是降低了灵活性在使用时倒入相应的jar包。具体步骤:1:实例化一个合适的解析器:SAXBuilder builder = new SAXBuilder();2:以包含XML数据的文件为参数,构建一个原创 2015-12-10 16:51:39 · 998 阅读 · 0 评论 -
BufferedRead @ BuferedWrite 在Socket中的问题
研究Socket编程的时候,想提高传输的效率因此次采用BufferedWrite 与BufferedReader ,完成客户端与服务器端的编程服务器端用。客户端用Eclipse 中使用ServerSocket实现,客户端使用Android ,核心代码如下:serverSocket = new ServerSocket(port); //绑定端口号Socket socket = s原创 2015-11-19 01:45:41 · 783 阅读 · 0 评论 -
Java I/O之数据流字符串流 Java I/O之数据流字符串&&字节数组流 DataInputStream :数据输入流允许程序以与机器无关方式从底层&&字节数组流
DataInputStream :数据输入流允许程序以与机器无关方式从底层输入流中读取基本JAVA数据类型,DAtaInputStream对于多线程是不安全的DataOutPutStream :数据输出流允许应用程序以适当的方式将基本java数据类型写入输入流中如下使用数据流进行文件的读写:public class DataStreamDemo {public static voi原创 2015-12-18 14:44:46 · 1232 阅读 · 0 评论 -
java对象序列化
对象序列化:对象序列化是指将一个对象转化为二进制的byte流。存在如下情况:将对象保存在文件上的操作称为对象的序列化。将对象从文件中恢复称为反序列操作。使用ObjectOutPutStream类实现对象的序列化,使用ObjectInputStream类实现反序列化。被序列化对象所在的类必须实现java.io.Serializable接口。对象序列化就是对象持久化的一种方原创 2015-12-18 14:47:24 · 458 阅读 · 0 评论 -
java多线程值线程同步
在多线程的操作中,多个线程有可能同时处理同一资源,这就是多线程的共享数据。如下程序:public class ThreadDemo { public static void main(String[] args) {MyThread my = new MyThread(); Thread t1 = new Thread(my,"小白"); Th原创 2015-12-21 14:27:49 · 551 阅读 · 0 评论 -
java常量池简单使用
常量池:常量池在java用于保存在编译器已经确定的,以编译的class文件中的一份数据,包括关于类, 方法,接口也包括j字符串常量。java是一种动态链接的语言,常量池除了包含代码所定义的各种基本类型外(int , long)和对象型(String , 数组)的常量外,还包含一些文本形式出现的符号引用。在c语言中,如果一个程序滴啊用其他库函数,在连接时,该函数在库中的位置,会被写在程序原创 2015-11-11 07:39:10 · 1239 阅读 · 0 评论 -
Java String.trim () 函数的使用
Java String.trim () 函数的使用java.lang.String.trim ()方法返回一个字符串副本,并忽略(去除)开头和结尾的空格。实例代码如下: String s = " hello,world "; String s2 ="hello,world"; System.out.println(s.equals(s2)); System.out.pri原创 2016-02-19 11:20:24 · 465 阅读 · 0 评论 -
程序国际化及动态处理文本
一:程序国际化 国际化程序的理解: I18N :国际化程序 同一套程序代码可以在各个语言环境下进行使用。 各个语言环境下,只是语言显示的不同,那么具体的程序操作本身都是一样的,国际化就是完成这样一个功能。 Locale类:Locale对象表示了特定的地理,政治和文化区域,需要Locale类来执行其任务的操作称为语言环境敏感的操作,使用Locale为用户量身定制信息。原创 2016-03-17 19:28:16 · 1358 阅读 · 0 评论 -
java解析xml 之SAX 解析方式原理
Java 对xml 数据的解析HTTP 网络传输中的数据组织方式有三种:1:HTML 方式2:XML方式3:JSON 方式XML :称为可扩展标记语言,他与HTML 一样,都是通用标记语言,XML是Internet环境中跨平台的,依赖与于内容技术,是目前处理结构化文档信息的有力工具,可扩展标记语言是一种简单的数据存储语言,使用一系列简单的标记描述数据。非常适合万维网的传输。原创 2016-02-19 17:13:42 · 1096 阅读 · 0 评论 -
java解析xml之PULL解析
除了可以使用SAX的方式解析XML外,也可以是用java自带的PULL来解析文件。PULL 解析器的运行方式和sax解析器很相似,它提供了类似的事件。如开始元素和结束元素,使用parser.next ()可以进行下一个元素,并且触发相应的事件,事件将作为代码被发送,因此可以使用一个switch来对事件进项选择,然后进行选择,然后进行响应的处理,当开始解析元素的时候,调用parser.nex原创 2016-02-19 17:45:34 · 742 阅读 · 0 评论 -
java解析xml之DOM解析
DOM(Document Object Model,文档对象模型),Android 完全支持DOM 解析,利用DOM 中的对象,可以对XML 文档进行读取、搜索、修改、添加和删除等操作。使用DOM 对XML 文件进行操作时,首先要解析文件,将文件分为独立的元素、属性和注释等,然后以节点树的形式在内存中对XML 文件进行表示,就可以通过节点树访问文档的内容,并根据需要修改文档——这就是DOM的工原创 2016-02-19 18:18:48 · 381 阅读 · 0 评论 -
正则表达式的使用
正则表达式(Regular Expression,在代码中常简写为regex、regexp或RE)是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 正转载 2016-03-12 11:52:05 · 312 阅读 · 0 评论 -
java枚举的使用
Java 枚举枚举是限定可能值的一种手段,使用枚举可以降低程序出错的几率,并可以提高代码的可读性与可维护性,java枚举并不是简单常量的集合,而是一个对象,其本质依然是类,所以java枚举除了提供了一系列相关值外,还提供了一些额外的功能,甚至还可以根据需求自行添加一些功能,使用enum关键字定义的枚举,实际上就相当于定义一个类,此类继承了Enum类而已。使用如下:定义枚举需要使用关原创 2016-03-12 18:45:50 · 388 阅读 · 0 评论 -
java读取properties 配置文件信息
配置文件如下:dog=com.xiyou.neixing.Dogdog.name=\u5c0f\u767ddog.age =3注: 由于java默认的编码方式为Unicode编码字符文件,如果输入的是中文读出来就会是乱码。因此可以使用java提供的native2ascii.exe工具,其在jdk/bin下可以找到。将要准换的内容输入即可。 获取配置文件中的信原创 2016-03-13 11:31:51 · 445 阅读 · 0 评论 -
java 内省机制
javaBean : Bean 为符合某种规范的组件,也就是java类,对于组件来说,关键在于要具有“能够被IDE构建工具侦测其属性和事件”的能力。JavaBean 的命名规则:1:对于一个xxx 的属性,通常要写两个getXxx()和setXxx(),任何浏览这些方法的工具,都会把set或get后面的第一个字母转换成为小写。2:对于布尔型属性,可以商用以上set和get的方式,原创 2016-03-13 11:48:05 · 503 阅读 · 0 评论 -
java String 连接问题
String s = new String (“hello”); 与String s2 = “hello”; 创建的区别对于String s2 = “hello”; 现在栈中创建一个String对象引用的变量s,然后查找hello字符串是否被保存在常量池中,如果没有则会将”hello”放入常量池,最后s将指向这个对象地址,如果已经存在于常量池,则在字符串常量中找到该对象然后s指向该对象 第一原创 2015-11-23 21:32:50 · 354 阅读 · 0 评论 -
java中类的访问权限
解析:在java中的类一共有四中访问权限public,protect, private,以及default(默认)private:java语言中对访问权限限制最高的修饰符,被其修饰的相关类,属相及方法只能被该类的对象访问,其子类不能访问,更不能进行跨包访问。public: java 语言中访问限制符最宽的修饰符,称为共有类,被其修饰的类,属性,以及方法不仅可以跨类访问,而且云秀挎包访问。原创 2015-11-18 00:59:50 · 689 阅读 · 0 评论 -
java IO流总结
java IO流字节流和字符流InputStream(字节流)和Reader(字符流)是所有输入流的基类,本身不能创建实例来实现,但是是所有输入流的模板它们提供的方法所有的流都可以使用OutPutStream(字节流) 与write (字符流)分别是按字节,与字符操作流中的数据。java IO流执行输出时,不要忘记关闭关闭,关闭输出流除了可以保证流的物理资源被回收之外,可能还可以将原创 2015-10-31 14:16:27 · 497 阅读 · 0 评论 -
java网络编程之 UDP的使用
User DatagramSocket Protocol 的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,以及到达目的地时间以及内容的正确性都是不能保证的,每个传输的数据报必须限定在64KB之内。主要使用下面两个类:DatagramPacket:此类表示数据报包DataPramSocket原创 2015-10-17 21:03:57 · 567 阅读 · 0 评论 -
非阻塞式通信详解
用ServerSocket 和Socket编写服务器和客户端程序的时候,其在运行过程中往往是阻塞的。例如SeverSocket中的accept()方法,假如没有客户连接就一直处于阻塞状态。JDK1.4后引入非阻塞式通信机制,服务器程序接收客户连接,客户程序建立与服务器的连接以及服务器程序和客户程序收发数据的操作都可以按照非阻塞的方式进行,服务器只需创建一个线程,就能完成同时与多个客户通信的任务原创 2015-10-17 09:36:39 · 2795 阅读 · 0 评论 -
java网络编程-之Channel与ByteBuffer用法
缓冲区:属性:1:容量:(capacity)容纳数据的量。2:极限(limit):表示缓冲区的当前的终点,不能对超过极限的区域进行读写操作(但是可以修改)。3:位置:(position):表示缓冲区中下一个读写单元的位置,每次读写都会改变。为下一个数据读写准备,是非负数。不应该大于极限。 用于改变三个属性的方式:clear():把极限设为容量,再把位置设原创 2015-10-18 16:44:03 · 1840 阅读 · 0 评论 -
同步、异步、阻塞和非阻塞是几种基本的sockets
同步、异步、阻塞和非阻塞是几种基本的sockets调用方式,也是在进行网络编程时需要理解和区分的基本概念之一。关于这方面的文章和讨论相当丰富,这里着重讨论其中两个比较容易混淆的两个,即非阻塞与异步的关系。先还是简单所列一下几中调用方式的常见解释:同步:函数没有执行完不返回,线程被挂起;阻塞:没有收完数据函数不返回,线程也被挂起;异步:函数立即返回,通转载 2015-10-18 22:17:11 · 703 阅读 · 0 评论 -
java网络---实现多线程下载文件
使用多线程下载: 1:可以记录当前下载当前的位置,实现断点下载。多线程下载的时候可以记录上次下载的位置,当再次开始的时候可以帮我们记住上次下载的位置,当再次下载的时候可以从记录的位置开始。 2:下载速度变快。 多线程下载快,使其因为其抢占服务器的资源多,在较短的时间内,抢占CPU资源的线程多了,原来一个线程下载现在多个下载,那么速度肯定快了。实现多线程下载的过程可以原创 2015-10-23 21:45:22 · 1405 阅读 · 0 评论 -
StringBulider之 append的使用
在平时的学习中,我们经常会用到StringBulide 这个类提供的方法append ()实现信息的追加功能, 但是在使用时经常会存在一些误区例如:StringBuilder sb = new StringBuilder("ABCD"); String str = "EFGHIG";sb.append("?"); //在StringBuilder原来位置后面原创 2015-10-24 14:45:02 · 1601 阅读 · 1 评论 -
stringBuffer 与StringBulider长度分析
StringBuffer在实现的时候继承了AbstractStringBulider,并实现了序列化,和CharSequece具体定义如下: public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence{原创 2015-11-11 19:36:33 · 988 阅读 · 0 评论 -
java实现简单的Socket通信
java Socket 编程数据发送的过程:1:产生Socket;2:调用bind的信息,通知给驱动程序3:应用程序将要发送的数据传送给Socket4: 驱动从Socket 取出数据,并通过网卡发送出去数据的接收过程:1:产生Socket;2:调用bind的信息,通知给驱动程序3:驱动程序根据从网卡传送的数据报中的指定目标端口号,将处理后的传所迷惑到相应的Soc原创 2015-10-13 19:57:02 · 595 阅读 · 0 评论 -
java字符流
java 字符流字符输入流Writer 写入字符流的抽象类,子类必须实现的方法仅有write (char [], int, int ), flush ()和close ()。多数子类将重写此方法定义的方法,用来提高效率。对文件操作,使用FileWrite类完成。字符输出流:Writer 使用字符输出流完成写文件操作:public static void write1 (原创 2015-10-14 20:42:42 · 398 阅读 · 0 评论 -
java中 == 和 equals
如果使用==来判断两个变量是否相等时,如果两个变量都是基本类型(byte, short , int , long , float , double , char , boolean ), 且都是数值类型, 则只要两个变量的值相等,就会返回true, 如果变量是引用类型,只有它们指向同一个对象时== 才会返回true。 == 不可用于比较类型上没有父子关系的对象。 String str3原创 2015-10-27 15:44:37 · 375 阅读 · 0 评论 -
java之String,StringBuffer,StringBuilder,
java之String,StringBuffer,StringBuilder,字符串是一系列连续的字符序列,java提供了String, 和StringBuffer两个类来封装字符串。并提供一系列方法来操作字符串对象。String类是不可变类,即一旦一个String对象被创建以后,包含这个中的字符序列是不可变的,直至这个对象被销毁。StringBuffer对象则代表一个字符序列可变的字原创 2015-10-27 17:16:13 · 332 阅读 · 0 评论 -
java 集合与泛型
java之集合java集合是一个特别有用的工具类,可以存储数量不等的对象,并可以实现常用的数据结构,如栈, 队列等, 除此还可以保存具有映射关系的关联数组。集合类也被称为容器类,其存在于java.until 包下。java集合大致可以可以分为Set, list , Queue, Map , list代表有序,重复的集合, Set代表无序不可重复的集合。Map :代表具有映射关系的集合,原创 2015-10-29 10:58:52 · 511 阅读 · 0 评论 -
java IO流之-----字节流的操作
java IO流IO流的概述 IO流:(输入输出流)流是一组顺序的,有起点和终点的字节结合,是对数据传输的的总称和抽象。数据在设备之间的传输称为流。流的本质是数据传输,根据数据传输的特性将流抽象为各种类,方便直观的进行数据操作。分类:处理数据的类型:字节流和字符流流向的不同:输入流和输出流 IO流的关系图原创 2015-10-13 22:28:28 · 405 阅读 · 0 评论 -
java 网络编程之Socket详解
java 网络编程之Socket详解创建Socket:使用Socket的有参构造方法,其都会试图建立与服务器端的连接,如果连接成功,就会返回Socket对象,如果因为某些原因连接失败,就会抛出IOEcpection设定等待时间:客户端的Socket构造方法请求与服务器端连接时,可能要等待一段时间,默认情况下,Socket会一直等下去,直到连接成功,或者出现异常。设定如下:S原创 2015-10-15 15:42:40 · 712 阅读 · 0 评论 -
java Socket 一个服务器与多个客户端进行通信
在实现一个服务器与多个客户端进行通信的时候,此时就需要引入多线程编程,用多个线程同时为多个客户提供服务,这时提高服务器你并发性能最长用的手段,服务器的主线程负责接收客户的连接,每次接收到一个客户连接就会创建一个工作线程,由它负责与客户通信。多线程的服务器代码实现:public class EChoService {public static void main(String[] arg原创 2015-10-15 17:50:06 · 3442 阅读 · 0 评论 -
java反射机制学习
java反射机制是在运行状态中,对于任意一个类。 都能够知道这个类的属性和方法, 对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。在java类中如何操作反射:Class类是一切反射的根源,Class 与 class 的区别class是java的关键字,是在声明java类的时候用的Class是java原创 2015-11-21 10:35:20 · 254 阅读 · 0 评论 -
java hashCode的介绍
在java集合中,判断对象是否相等的规则是: (1)判断两个对象的hashCode是否相等,如果不相等,则认为两个对象也不相等。如果相等转入(2) (2):判断两个对象的equals运算是否相等,如果不相等则认为两个对象也不想等,如果相等认为两个对象相等。 ============================================================转载 2016-03-13 16:41:53 · 332 阅读 · 0 评论