Java
文章平均质量分 79
肆无忌惮_
这个作者很懒,什么都没留下…
展开
-
java网站后台实现--ServLet
一、环境的准备:下载jee的eclipse。tomcat。在系统的环境变量里面添加JAVA_HOME,路径为java安装的路径,例如:C:\Program Files\Java\jdk1.8.0_05 之后可以运行西夏tomcat下的startup.bat。看看能不能启动成功。如果不能启动成功(tomcat6.0的32位可能遇到,现在可以下载tomcat8.0和最新的eclips...2014-11-16 11:30:55 · 627 阅读 · 0 评论 -
java打包将图片声音等文件打包进去
获得图片文件的方法:例如,有一个图片文件放在工程下的src目录下:文件路径为ProjectTest\src\images\test.png可以用这个来使用到这张图片new ImageIcon(getClass().getResource( "/images/test.png")) 获得声音文件的方法:(其余类型文件也可以用获得流的方法)例如,有一个文件放在工程下的...2014-09-08 08:25:10 · 353 阅读 · 0 评论 -
仿QQ聊天第三版(头像设置、文件传输)
在这个版本已经实现了基本的聊天,群聊以及文件发送功能. 为了图简单,只要是在线的用户就都会出现在所有客户端列表中,没有单独为每个用户保存好友,群聊所有人都会收到消息.注册的用户信息都保存在文件中,每次服务器启动就先读取数据.客户端连接上之后,就给所有在线的其他客户端发送自己上线的消息,然后其他客户端就更新好友列表.双击即可打开对话窗口进行聊天或者传文件. 界面演示图:...2014-08-14 19:54:36 · 438 阅读 · 0 评论 -
贪吃蛇(已经比较完善)
附件中含有两个版本,第一版本实现了最基本的功能.包括运动,吃food,暂停,计分,重来.使用了一个二维数组来存储当前地图上有哪些东西,0表示没有,1表示自己的一部分,2表示障碍物,3表示food.才开始新建一个点,将其加入LinkedList中保存每一次移动都是将LinkedList的头移除,再在尾部加一个相关方向的next元素.,在这个过程中就需要判断是否越界或者撞到自己....2014-08-08 19:25:35 · 253 阅读 · 0 评论 -
ObjectOutputStream在文件末尾追加对象
在文件末尾追加对象 用对象流写到文件中时,首先会将对象信息写到文件头才开始写具体数据.每次追加的时候也是同样.这就造成了之后读取文件的时候无法正常读取.java帮我们读的时候只会过滤掉第一次的头部信息,之后的它没法识别.解决办法有二: 文件较小的时候,不追加.可以先读出所有的对象,将要追加的加在后面再重新写一遍.(文件更小) 文件较大的时候,直接在后面追加.跳过头...2014-08-07 20:54:31 · 839 阅读 · 1 评论 -
仿QQ聊天第二版
在第一版之上的改进内容: 第一版链接:http://479001499.iteye.com/admin/blogs/2100893 用map存起来号码对应的聊天窗口对象,解决私聊的时候所有消息发到一个窗口的问题.增加ViewInfo类,这个是信息预览的窗口,如果是自己的信息,则可以进行编辑. 信息修改后上传至服务器再告诉所有用户,自己的窗口上也进行改变 发现...2014-08-07 20:53:49 · 136 阅读 · 0 评论 -
仿QQ聊天第一版
在Socket和ServerSocket通信的应用上,挑选了聊天来进行深入练习.这是第一个版本,暂时实现了基本的登录,群聊,私聊,同步联系人列表等功能.这里简化了很多功能,所有在线用户就是一个群,私聊还存在一点问题将在下版本修复.先写个总结,记录自己的开发思路,也给初学者一个参考. 第一步,写一个窗口,上面放两个文本框用来输入账号密码.还有一个登陆按钮.在这里直接用JText...原创 2014-08-06 20:29:33 · 187 阅读 · 0 评论 -
Socket与ServerSocket的通信
一、连接首先,在服务器中创建ServerSocket对象ss,对象ss调用accept方法的时候,可以得到一个Socket对象.ServerSocket ss = new ServerSocket(613);// 不要使用80等其他程序常用端口,这里任选一个端口613Socket st = ss.accept();这是一个阻塞方法,如果accept不到一个客户端,他就一直会在这里等待客户端的连接...2014-08-05 09:56:46 · 203 阅读 · 0 评论 -
StreamCorruptedException异常处理
在用Socket和Serversocket通信的时候,自己序列化的对象使用对象流传输时遇到StreamCorruptedException异常。 有两个方面需要考虑:一个是写出对象的时候有没有flush();一个是在线程中用while 循环了,new ObjectOutputStream和getOutputStream(in是一样的)是在while循环中进行的,每次都会创建,每次...2014-08-04 14:30:59 · 757 阅读 · 0 评论 -
仿QQ聊天第三版 最终版
之前由于电脑问题,写了很多天的代码都丢了,也没能恢复出来。因为现在没实现的功能基本都是和以前写的这些功能实现方法一样,只是需要注意一些细节问题了,所以,不准备重写了,这里发出最后一次备份的代码供大家参考。 第一版:http://479001499.iteye.com/blog/2100893 第二版: http://479001499.iteye.com/blog/210...2014-09-12 21:55:44 · 171 阅读 · 1 评论 -
基于UDP的网络通信之屏幕共享(类似远程协助)
基于TCP/IP的远程协助地址: http://479001499.iteye.com/blog/2099788 UDP是一种用途广泛的网络传输协议,发送方只管发送数据出去,而不管是否能够送达。应用范围:有时候因为网络问题,接收方可能会丢失部分数据,但是并不影响程序的功能。例如视频直播的时候有一些数据丢失了,最多就是卡顿一下,并不会造成功能很大的影响。 对于发送者而言...2014-09-15 18:04:05 · 2537 阅读 · 1 评论 -
插件化小结
1、主插件需要负责公用功能的初始化操作、TaobaoInit可配置为应用启动时初始化或插件Activity第一次启动时候的初始化。主插件维持application和classLoader。并且需要负责子插件的中转。 2、在编译的时候会将子插件程序伪装为so,并且合并manifest。 3、子插件可以直接编译为apk,他只需要负责实现自己的功能即可,尽...2015-08-12 21:37:13 · 214 阅读 · 0 评论 -
类的加载ClassLoader
类加载器ClassLoader是用来将java的类加载到虚拟机中,类加载器负责读取class字节文件到内存中,并将它转为Class的对象(类对象),通过此实例的 newInstance()方法就可以创建出该类的一个对象。 其中重要的方法为findClass(String name)。 如何写一个自己的类加载器呢?首先写一个便于测试的类Student有一个属性和一个方法...原创 2014-10-15 14:25:45 · 183 阅读 · 0 评论 -
正则表达式Pattern
正则表达式是符合一定规则的表达式,用来专门操作字符串,对字符创进行匹配,切割,替换,获取。 例如,我们需要对QQ号码格式进行检验规则是长度6~12位 不能0开头 只能是数字,我们可以一位一位进行比较,利用parseLong进行判断,或者是用正则表达式来匹配[1-9][0-9]{4,14} 或者 [1-9]\d{4,14} (a|b|ccc) a或者b或者ccc ...原创 2014-10-15 14:24:26 · 209 阅读 · 0 评论 -
JAVA 反射
类-对象对象-类 即为反射所有的类对象都是Class类的实例。虚拟机在实例化一个类的时候,总要有一个地方存储这个类,这个地方就由Class来管理。 通过JAVA的反射机制,我们可以获得一个类的所有属性和方法,并对其进行操作,即使是私有的。每当一个类被加载,虚拟机就会创建一个Class对象。 Class中的常用方法: forName(String classN...2014-10-11 22:16:02 · 84 阅读 · 0 评论 -
java jdbc连接数据库
使用java操作数据库时需要用到jdbc。1、加载驱动 class forName("oracle.jdbc.driver.OracleDriver");2、定义连接字符创String url = "jdbc:oracle:thin:@192.168.50.128:1521:ORCL";3、连接到数据库 Connecti...2014-10-08 23:05:51 · 109 阅读 · 0 评论 -
XML的SAX解析
由于DOM解析需要先读取整个文件到内存再处理,所以如果文件较大的时候非常耗资源。SAX解析解决了这个问题。SAX解析器不像DOM那样建立一个完整的文档树,而是在读取文档时激活一系列事件,这些事件被推给事件处理器,然后由事件处理器提供对文档内容的访问。 SAX模型最大的优点是内存消耗小,因为整个文档无需一次加载到内存中,这使SAX解析器可以解析大于系统内存的文档。 实现示例...2014-10-08 22:11:09 · 111 阅读 · 0 评论 -
xml的Dom解析
DOM 把 XML 文档视为一种树结构。通过这个 DOM 树,可以访问所有的元素。可以修改它们的内容(文本以及属性),而且可以创建新的元素。元素,以及它们的文本和属性,均被视为节点。在这里介绍一下如何用java语言的dom来解析xml 这是需要解析的xml原文档<?xml version="1.0" encoding="utf-8"?><!--加入DTD约束...2014-10-07 12:33:30 · 127 阅读 · 0 评论 -
Oracle数据库sqlplus基本指令
见图,才开始学。最简单的一些指令原创 2014-09-18 23:04:48 · 168 阅读 · 0 评论 -
你画我猜
根据之前的画图板加上网络改造一下成一个网络的。 画图板中,有许多形状,都是包装为对象的,例如,直线对象:public class Line extends Shape{ public Line(int x1,int y1,int x2,int y2,Color c){ this.x1 = x1; this.y1 = y1; this.x2 = x2; ...2014-08-03 14:02:12 · 246 阅读 · 0 评论 -
Socket与ServerSocket远程桌面
目的:通过socket与socketserver的通信实现远程监控 首先,在serversocket(被监控端)一直截屏发送到socket。再到socket(客户端)中不断接收截屏内容并展示出来。 代码如下:服务器:public class RemoteServer { private static Socket st; public static v...2014-08-03 13:18:08 · 504 阅读 · 0 评论 -
去掉JFrame窗口边框之后的移动
class MoveListener extends MouseAdapter { int x0, y0, x1, y1; public void mousePressed(MouseEvent e) { x0 = e.getXOnScreen(); y0 = e.getYOnScreen(); } public void mouseDragged...2014-08-02 13:20:30 · 551 阅读 · 0 评论 -
java线程应用——排序过程动态显示
设计思路:(用多线程并且每次交换数据都暂停1ms实现动态效果,顺便深入理解一下各类排序的特点) 从各类选择中选择了7种排序,用动态效果展示排序过程。生成800个随机数(用图形描述的时候每个数占一个像素点)用ArrayList存储每个点的长度(此处用矩形来画线,方便以后宽度的更改),每种排序都用一个线程来执行,每次赋值(冒泡和2路太慢,所以做了适当修改)都暂停1ms,这样才能看清...2014-07-02 22:25:56 · 294 阅读 · 0 评论 -
java五子棋禁手规则,复盘等的实现
五子棋程序实现了判赢,禁手,复盘,低级AI(判断还存在许多问题,欢迎指正),继续游戏,夜间模式,悔棋等基本功能代码可研究不可复制粘贴。 禁手的定义:是为了限制黑方的先手优势而设定的一种比赛规则禁手的分类:三三禁手(黑棋一子落下同时形成两个或两个以上的活三,此子必须为两个活三共同的构成子)、四四禁手(黑棋一子落下同时形成两个或两个以上的冲四或活四)、长连禁手(黑棋一子落下形成一个或...2014-06-25 22:45:01 · 2652 阅读 · 1 评论 -
BMP文件的读取及保存
Bmp BMP是一种与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此, BMP 文件所占用的空间很大。 BMP 文件的图像深度可选 lbit 、 4bit 、 8bit 及 24bit 。 BMP 文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。 由于 BMP 文件格式是 Windows 环境中交换与图有关的数据的...2014-06-10 21:38:23 · 1466 阅读 · 0 评论 -
JAVA模拟2048
非常感谢c87094279的提醒 ,之前在键盘监听器中忘记将是否可以生成新的元素的标记置0了,所以在用键盘操作的时候,没有可移动的方块时会冒出新的方块。现在已经改进了,只需在keyReleased方法中加上count=0; 最近学习了文件的保存,所以做了个小游戏,来实现简单的数据保存.2048最近很火,所以选择了它. 先放运行效果图(界面没做什么美化) ...2014-06-05 19:18:20 · 289 阅读 · 0 评论 -
文件操作3
1.文件缓冲输入输出流 BufferedInputStream BufferedOutputStream 方法:int available();返回当前缓冲区的字节数 close();关闭流 read();读取一个字节read(byte[ ] b);读取一个数组...原创 2014-05-25 13:20:45 · 125 阅读 · 0 评论 -
文件输入输出字节流
FileInputStream FileOutputStream的用法总结 采用byte数组保存内容.适合小文件的读取写入操作 import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/**...2014-05-24 13:42:55 · 129 阅读 · 0 评论 -
Java中的文件读取与保存 之 统计文件夹及文件个数
使用递归来一层一层统计文件夹下的文件(夹)个数,大小,以及是否隐藏. 使用到的类:File 统计的方法FileUnit.javaimport java.io.File;public class FileUnit { static int filecount=0; static int menucount=0; static int size=0;...2014-05-24 13:37:35 · 566 阅读 · 0 评论 -
ArrayList的实现
用到的知识:1.泛型 public class ArrayQueue<E> {}//E表示元素是什么类型,element2.容量(arr.length)private int initVolume;3.增长比率 private int GrowthRate;4.数组长度 private int length=0;目的:用动态数组...原创 2014-05-09 22:39:59 · 102 阅读 · 0 评论 -
java模拟微信打飞机开发思路
一、要求: 创建玩家飞机,敌方飞机,均能发子弹,撞击后能移除相应对象。二、思路: 类的定义以及具体需要实现的功能: UI//窗体,控制玩家移动的鼠标监听器,刷新窗体的方法,Esc的键盘监听器,游戏的初始化,暂停等 UpdataCenter//刷新窗体的线程 MyPlane//玩家飞机,判断是否被敌人撞,被敌人子弹击中...2014-07-13 22:47:54 · 217 阅读 · 0 评论 -
线程总结
一、程序,进程,线程的区别 程序是一段静态的代码,是软件执行的蓝本。 进程可以理解为正在进行的程序,它是从程序加载、执行、执行完毕的整个过程,多个进程可以共享操作系统所管理的资源,比如剪切板。每个进程都单独占用一块内存,多个进程之间不能数据共享,必须通过网络交换数据。 线程是比进程更小的执行单位,一个进程在执行过程中,可以产生多个线程。线程是一个进...2014-07-16 18:12:31 · 94 阅读 · 0 评论 -
Swing组件最大化最小化按钮实现
最近在做JFrame窗口的时候为了将边框弄得更加美观,所以需要去掉默认的边框.然后在窗体上加上最大最小化与关闭按钮.(代码中ChatUI为类名) 主要方法:setExtendedState(); 第一步:去掉JAVA边框this.setUndecorated(true); 第二步:增加JButton按钮. closeT = new JButton(new Im...2014-08-02 13:17:54 · 1748 阅读 · 0 评论 -
java的huffman实现
需求分析从一个文件中读取数据,统计文件的每个字节出现的频数,根据不同的这些频数构建赫夫曼树并实现编码译码分别保存到新的文件中。编码文件为原文件+“.ext”,译码文件为编码文件+“.txt”。养成良好习惯:每个小功能的实现都需要及时进行测试,第一个功能没写好就不要往下写,不然到时候出了错都没办法找原因。流程分析先从文件中初始化数据,用map来保存名值对。Byte对应出现次数。...原创 2014-07-23 20:52:34 · 167 阅读 · 0 评论 -
模拟微信打飞机,完整代码
实现过程参见:http://479001499.iteye.com/admin/blogs/2091701在这基础上多写了一个线程控制玩家飞机的被撞之后的2s无敌时间,解决了那2s中不能发子弹,背景不动的问题。在音乐播放的时候用线程控制它循环播放。改变了记分语句的位置,解决了最高分比得分小的问题。在center上绘制文字,在文字区域加上鼠标监听器的反馈,点击就像...2014-07-21 11:38:03 · 1615 阅读 · 0 评论 -
socket通信遇到EOFException
java.io.EOFExceptionat java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)at j...2015-01-07 22:07:12 · 2477 阅读 · 0 评论 -
int与byte转换,String(01)与byte转换
public byte[] int2byte(int data){ byte b4 = (byte)((data)>>24); byte b3 = (byte)(((data)<<8)>>24); byte b2= (byte)(((data)<<16)>>24); byte b1 = (byte)...2014-07-20 20:12:46 · 416 阅读 · 0 评论 -
JAVA数据结构之二叉排序数
先定义树的节点类package Tree;/** * 树节点 * @author Huangbin * d2014年7月18日 */public class Tree { Object obj;//内容 Tree parent;//父节点 Tree lchild;//左孩子节点 Tree rchild;//右孩子节点 public Tr...2014-07-18 23:09:57 · 135 阅读 · 0 评论 -
JAVA数据结构之链表
链表:单链表,双链表,循环链表 单链表:每个节点有一个内容和一个地址,这个地址指向下一个节点。第一个加入链表的节点为头结点,它的地址指向第二个节点,第二个节点地址指向第三个节点。。。最后一个节点的地址指向null。如图所示: 由这样的关系,我们容易得知只要知道first,我们就可以用first.next.next.....取到每一个节点元素。对于单链表,我们要实...2014-07-18 12:48:39 · 104 阅读 · 0 评论 -
多线程之小球碰撞
思路:窗体中加JPanel面板方便重绘(用线程对其每30s进行重绘)子弹类ZiDan有move方法,bump方法,draw方法,分别用来移动子弹,判断是否和气泡相遇,绘制本身。气泡类QiPao有move方法,bump方法,draw方法,分别用于移动气泡,判断是否和气泡相遇,绘制本身。用两个ArrayList保存当前屏幕上的所有子弹和气泡,子弹移出去了就令其isLive属性为fal...2014-07-16 18:27:28 · 174 阅读 · 0 评论