- 浏览: 28057 次
- 性别:
- 来自: 长沙
最新评论
-
wuqi198772:
perl -i.bak -lpe "BEGIN{ ...
批量处理数据 -
朱辉辉33:
打开客户端是在命令提示符里输入telnet localhost ...
socket聊天室之服务器搭建
文章列表
转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx
程序、进程和线程:
程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的产生、存在和消亡的过程,也是一个动态的概念。每个进程都有一段专用的内存区域,而线程间可以共享相同的内存区域(包括代码和数据),并利用这些共享单元来实现数据交换、实时通信与必要的同步操作。
每个Jav ...
今天发现了一个WindowBuilder插件,功能好强大,啊哈哈,从此告别手动编辑swing界面代码,直接像VB那样编辑界面,代码会自动生成。
首先在Eclipse中点击help,选择Install New Software,然后在Work with中输入WindowBuilder Pro Eclipse Update Site - http://download.eclipse.org/windowbuilder/WB/integration/4.4/,将下面出现的三个选择框全部选上,一直下一步就可以安装完成了,最后它会让你重启下Eclipse。
当你要创建 ...
1.工厂模式
1.1 工厂方法模式 (由一个工厂类管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法)
1.1.2多工厂模式(一个工厂类中有多个方法)
1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
1.2 抽象工厂模式 (将工厂由类变为接口,将类中的方法变为类)
本质:通过接口降低耦合性,用一个专门的东西来管理具体实现的方法.
2单例模式
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM
中,该对象只有一个实例存在。这样的模式有几个好处:
2.1、某些类创建比较频繁,对于一 ...
因为我们做的是聊天室,所以会有多个客户端,每个客户端我们用一个线程去实现,通过搭建一个服务器来实现从每个客户端来读取信息和发送信息。
我们先写客户端的线程。
public class ChatSocket extends Thread{
Socket socket;
public ChatSocket(Socket socket){
this.socket = socket;
}
public void run(){
}
}
这是基础部分,但是这个线程还缺少发送信息和读取信息两个核心功能。发送信息比较简单,创建一个方法即可。
p ...
在java中ServerSocket用于服务器端,用来监听端口。通过服务器监听,客户端发送请求,双方建立链接后才能通信。当服务器和客户端建立链接后,两边都会产生一个Socket实例,我们可以通过操作Socket来建立通信。
首先我建立一个ServerSocket对象。当然要导入java.net.ServerSocket包
ServerSocket serversocket = new ServerSocket(port);
在这里port是一个整形的数字,是SeverSocket要监听的端口。计算机的端口范围是1到65535,通常前面的端口都被常用程序占用了,所以我们可 ...
上次博客讲的五子棋重绘比较简单,因为只要在重写系统重绘方法paint()时加入棋盘和棋子的绘制。这次我想说说画图板的重绘。
画图板重绘难在需要重绘的类型很多,比如说里面有矩形,园,直线之类的,所以我们要想办法将里面的图形加入一个队列中,这样在重绘时就可以取出队列中的所以图形,然后绘制。
首先我们可以创建一个接口,命名为shape(),里面只有draw()一个方法,这样我们建其他图形类时都可以继承这个接口,例如
public class Rect implements Shape{
int x,y,width,height;
...
我第一次接触重绘是编写五子棋小游戏的时候,因为游戏里的棋盘是用线绘制的,而这些东西并不在系统自带的重绘里,所以在移动窗体时,棋盘并不会重绘出来。所以我们要重写系统的重绘方法。
在重写系统重绘方法时,我们要注意一定要调用父类的重绘方法,即加上super.paint(g),因为如果不调用父类的重绘方式,重写后会把父类的重绘覆盖掉,而父类的重绘方法是绘制画布,这样就导致我们看不到窗体。
最后我们在重写系统重绘方法时加上棋盘的绘制和棋子,这样就解决了重绘问题。具体代码如下:
//重绘
JPanel drawpanel = new JPanel() {
public ...
类的继承可以提高代码的重用行,减少冗余代码;还能提高代码的扩展性。Java继承的关键字是extends
格式:public class 类名(子类)extends 类名(父类){ }
子类可以继承到父类所有的属性和普通方法,但不能继承构造方法。且子类可以直接使用父类的public和
protected属性,但要使用private属性仍需通过调用。
子类的方法可以重写,但必须和父类的返回值类型,方法名,参数个数,类型和顺序要完全一致,子类
方法的访问修饰符可以大于或者等于父类的访问修饰符。
类是对一类事物的总称,对象是描述一个物体的特征,类是对象的抽象。简单来说,类是抽象的,不占用内存,对象是具体的,
占用存储空间。
类是由属性和方法构成的,基本格式是public class 类名{
//定义属性
private/public 数据类型 属性名;
//定义方法
public 返回值数据类型 方法名(数据类型 参数名){
//具体代码
}
}
对类的调用需要在类中设置调用和返回值,具体格式为: 对象名.方法名(参数值);
我在编程中发现:对类的定义和调用可以有效的减少重复工作时的程序复杂程度。