分类目录归档:JAVA

关于java的那些事儿

java RMI的意义,及小例子

RMI的意义 定义: RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。也可以说成分布式计算、可以远程调用方法。 到底有什么作用,看下面的小例子 例子:比如你有一台支持Java的手机 还有一台台式机 手机上有一个非常复杂的运算 如果用手机 来计算的话可能需要很长时间、不过如果用台式机的话几秒就结束了,这个时候就是RMI大显神通的时候,使用RMI从手机发送请求 然后交给台式机计算 然后台式机返回计算和的结果 第一步:创建一个远程接口 package com.javaer.examples.socket.rmi;   import java.rmi.Remote; import java.rmi.RemoteException; //创建远程接口及声明远程方法 public interface HiInterface extends Remote { /** * 远程接口方法必须抛出 java.rmi.RemoteException */ public … 继续阅读

发表在 JAVA | 标签为 , | 留下评论

枚举enumerations中自带方法values和valueOf

每一种枚举的类型自动包含两个方法 values() 返回数组 valueOf() 返回枚举类型。使用字符串来匹配是否相等 public static enum-type[ ] values( ) public static enum-type valueOf(String str) 请看下面的例子 package com.javaer.examples; /** * 学习枚举enumerations * @author mc2 * */   enum Colors { Blue, Red, Black, Green } public class EnumStudy { … 继续阅读

发表在 JAVA | 标签为 , , | 一条评论

javamail发送邮件

JavaMail可以到http://www.oracle.com/technetwork/java/javamail/index-138643.html进行下载 package com.javaer.mail;   import java.util.Date; import java.util.Properties;   import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart;   class MyAuthenticatorX extends Authenticator … 继续阅读

发表在 JAVA | 标签为 , | 留下评论

java使用apache poi读取写入Excel

apache出来的开源产品太多了,poi也是其中之一。操作Excel 很方便。 下面写一点简单的例子来演示如何使用poi 读取,写入Excel文件。 poi官方下载地址 http://poi.apache.org/download.html 解压出来的一堆文件,只需要一个jar就可以操作了。其他的还没有研究。 poi-3.9-20121203.jar package com.javaer.file;   import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;   import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor;   public class ExcelPoi {   public static void write() … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论

java采用jxl写入一个Excel文件

jxl写入一个excel文件。 读取方面请看下面相关链接,上一遍是关于读取excel的。 package com.javaer.file;   import java.io.File; import java.io.IOException;   import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException;   public class ExcelWrite {   /** * @param args * @throws IOException * … 继续阅读

发表在 JAVA | 标签为 , | 留下评论

java采用jxl读取Excel

java采用jxl.jar读取Excel,算法比较简单。 不过经过测试,采用这个办法读取xlsx文件会发生异常 jxl简述 通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。 Exception in thread "main" jxl.read.biff.BiffException: Unable to recognize OLE stream at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116) at jxl.read.biff.File.<init>(File.java:127) at jxl.Workbook.getWorkbook(Workbook.java:221) at jxl.Workbook.getWorkbook(Workbook.java:198) at com.javaer.file.ExcelRead.read(ExcelRead.java:17) at com.javaer.file.ExcelRead.main(ExcelRead.java:44) 所以暂时认为jxl读取高版本excel可能存在问题。 package com.javaer.file;   import java.io.File; … 继续阅读

发表在 JAVA | 标签为 , | 留下评论

java实现炮塔游戏增加一个炮塔

大致的情况为,点击一个炮塔,然后这个炮塔跟着鼠辈移动到目标地点,然后点击放下这个炮塔。 原理为,点击炮塔为监测鼠标点击事件,是否点中这个炮塔,如果点中,那么复制一个炮塔,随着鼠标在窗体上移动。 package com.javaer.examples.awt;   import java.awt.Color; import java.awt.Container; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener;   import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel;   /** * 随着鼠标走动的图片 * * @author mc2 * */ public class MoveImageMouse {   /** * @param … 继续阅读

发表在 JAVA | 标签为 , , , | 留下评论

java.awt如何给窗体绘制图片

java在编写游戏的时候,我们希望一个图片是可以移动的,所以采用程序进行图片绘制定位比较方便。 如何将一个图片显示在java的窗体上呢。 其实只要在java的paint方法里,进行图片流的绘制就可以了。 g.drawImage(img,100,30,null ); //决定位置 package com.javaer.examples.awt;   import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image;   import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.WindowConstants;   public class DrewImage extends JFrame { ImageIcon icon; Image img; public DrewImage(){ icon=new ImageIcon(DrewImage.class.getResource("1.jpg" )); img=icon.getImage(); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); … 继续阅读

发表在 JAVA | 标签为 , | 留下评论

深入理解java序列化

Java 序列化的高级认识 杨 硕, 研究生, 东北大学软件学院 魏 强, 硕士研究生, 东北大学软件学院 简介: 如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件。那你最好再阅读该篇文章,文章对序列化进行了更深一步的讨论,用实际的例子代码讲述了序列化的高级认识,包括父类序列化的问题、静态变量问题、transient 关键字的影响、序列化 ID 问题。在笔者实际开发过程中,就多次遇到序列化的问题,在该文章中也会与读者分享。 引言 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的读写。然而在有些情况下,光知道这些还远远不够,文章列举了笔者遇到的一些真实情境,它们与 Java 序列化相关,通过分析情境出现的原因,使读者轻松牢记 Java 序列化中的一些高级认识。 回页首 文章结构 本文将逐一的介绍几个情境,顺序如下面的列表。 序列化 ID … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论

java如何检测网络连通性

在网络编程中,有时我们需要判断两台机器之间的连通性,或者说是一台机器到另一台机器的网络可达性。在系统层面的测试中,我们常常用 Ping 命令来做验证。 网络联通性在一些游戏的设计中非常重要。测试了网络连接,还是不连接,有助于快速决定是否对一些网络进行连接。节省大量资源。 尽管 Java 提供了比较丰富的网络编程类库(包括在应用层的基于 URL 的网络资源读取,基于 TCP/IP 层的 Socket 编程,以及一些辅助的类库),但是没有直接提供类似 Ping 命令来测试网络连通性的方法。 本文将介绍如何通过 Java 已有的 API,编程实现各种场景下两台机器之间的网络可达性判断。 在下面的章节中,我们会使用 Java 网络编程的一些类库 java.net.InetAddress 和 java.net.Socket,通过例子解释如何模拟 Ping 命令。 测试代码: public static void main(String args[]) throws UnknownHostException { isAddressAvailable(“10.10.1.7″); InetAddress ad=InetAddress.getByName(“www.baidu.com.com”); printReachableIP(ad,80); … 继续阅读

发表在 JAVA | 标签为 , | 留下评论