自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 关于网络编程

B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.TCP 是面向连接的、可靠的流协议。中间最主要的就是数据包的组装,数据包的过滤,数据包的捕获,数据包的分析,当然最后再做一些处理,代码、开发工具、数据库、服务器架设和网页设计这5部分。

2024-03-17 18:06:43 804 1

原创 (二)实现文本压缩_java

通过for循环在dataStr中遍历数组,统计每个字符出现的频率,因为哈希表中是<String,Integer>类型的,dataStr.charAt(i)是每个字符,所以要将char字符类型转换为String字符串类型,才能存储到哈希表中。2.根据给定的字符串内容(读取文本文件),统计每个字符出现的频率,创建对应的节点。将字符编码写入到新文件当中,判断编码位数,如果编码不足8位,向后用0补全8位。将字符数据替换成相应编码,通过取出表中对应字符来返回编码。最后合并方法就能够实现文本压缩功能。

2023-11-12 20:22:32 94

原创 (一)二叉树的遍历_java

如果解节点为空,那就创建新的节点,如果不为空,那就保存当前节点curr,如果node节点的数据小于curr的数据,就将node设为左子树,如果node节点的数据大于curr的数据,就将node设为右子树。二叉树是数据结构中重要的一个部分,二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。2.根据给定的字符串内容(读取文本文件),统计没个字符出现的频率,创建对应的节点。使用冒泡排序的方法将二叉树的内容按顺序排列下来(当然也可以用更加便捷的方式排列)

2023-11-05 20:47:06 74 1

原创 哈希表的实现-java

给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。哈希表是根据key值和value值而直接进行访问的数据结构,每一个key值都对应值一个value值,所以当我们要取数据是只需要输入key值,即可求出对应的value值。​​​​​​​​散列表不像是数组,每个格子里存放的是一个数据,而它的每个格子里存放的是一个链表,Node next;//存储下一个节点地址。Node last;

2023-09-24 21:11:10 59 1

原创 生产消费模型

如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。在多线程项目中,既有生产线程,还有消费线程,所以我们就要建立生产-消费模型来满足供需关系。wait方法:执行该方法的对象释放同步锁,JVM把该线程存放到等待池中,等待其他线程唤醒。在日常生活中,生产消费模型无处不在,只要满足了基本的供需关系,都能称作生产消费模型,这用生产消费模型就实现了,可以根据供需关系的不同作出不同的生产消费模型。像这样线程1负责生产,线程2负责消费,只有生产结束后才能进行消费。

2023-08-15 18:29:02 86 1

原创 java美颜相机

创建 ImageFilter读取图片地址,将路径传入ImageFilter类中,读取图片像素值,并保存在二维数组中。在创建完按钮之后需要给按钮添加动作监听器,因此我们需要创建imglistener继承接口。我们可以直接通过创建的类直接继承JFrame类,而不用再创建JFrame类对象。首先我们应该设置美颜相机的窗体界面(用边框布局BorderLayout)遍历二维数组,绘制图片,并进行重绘保存图片。在功能面板上添加按钮,并添加动作监听器。1.设置窗体(画图版面、功能版面)3.对监听器的功能设置。

2023-05-05 18:17:58 237

原创 Java图像处理

每一种颜色都是由一串二进制数构成,例如:1111 1111 0101 0101 1010 1010。首先我们应该了解颜色是由红red、绿green、蓝blue三种颜色和透明度a组成。其中1111 1111代表r,0101 0101代表g,1010 1010代表b.定义图片路径,用于打印图片到窗体上,再将路径保存在文件中,将一张图片打印完成之后,我们该如何将图片进行处理美颜呢?关于图像处理有:马赛克,滤镜,二值化,灰度。首先我们来讲述如何打印一张图片。最后遍历二维数组,绘制图片。这样一张图片就答应好了。

2023-04-17 00:09:53 1138

原创 关于类的继承

多个子类中,都需要增加一个属性和方法,或者修改删除一个属性和方法 ,那么直接在父类中操作就可以。3.子类不能继承父类的构造方法,但是可以通过super关键字来访问父类的构造方法。父类中的属性与方法,子类中如果也需要直接继承父类就可以不用自己再定义。继承是指一个类继承另一个类的属性和方法,使得子类具有父类的属性和方法。4.子类可以拥有自己的成员变量和成员方法,即子类可以对父类进行扩展。这个父类需要增加一个子类,创建一个新的类继承父类就可以了。6.一个类只能有一个直接父类,但是一个父类可以有多个直接子类。

2023-03-30 20:47:48 643

原创 界面程序、组件

以上三部分都在java类库中:java.awt 主要为元素规则、java.swing 主要为可视化组件。JLabel 标签;JTextField输入框;3.我们在写代码的时候,如果本类使用到了其他包/java源码中的类时就需要导入包路径。1.自己创建的项目中,在src文件下就可以创建新的package,2.设置窗体布局:只要创建布局,就必须设置一种布局。4.设置组件对象的属性(尺寸,颜色,大小,内容)1.可视化部分:窗体,按钮,菜单,选项卡...2.元素规则部分:颜色,尺寸,字体,布局,

2023-03-08 18:12:37 67

原创 类和对象解析

整个程序如果使用到这个类,就会调用这个类的静态代码块,但是只会运行一次,可以用来初始化静态常量,但不能用于非静态的 变量/常量 成员方法。注意: 不能在代码块和构造方法中同时赋值 每个构造方法都需要给常量赋值,因为创建对象的时候会选择其中一个构造方法。在java程序当中,我们每编写一个程序,我们都需要创建一个类,因此,在这一篇中我们就来讨论关于类和对象。每个对象都有一个自己的常量 值不可变,每个对象都有一个不同的值 (身份证号码):不属于对象, 属于类 ,可以由类名直接调用 ,在内存中只会存在一份。

2023-03-04 17:34:24 54

原创 五子棋游戏(三)

开始遍历棋局,当位置为空时判断与该位置相连的棋子连续情况,将得到的字符串通过哈希表获取对应权值,将八个方向的权值都相加后得到该位置的权值。并将不同棋子连续情况设置不同的权值,这样可以让机器对应不同情况是能够选择权值最大的点下棋,人人模式在前两篇中已经可以实现了,在这一篇中我们就主要讲述设置人机模式。设置人机模式首先需要创建一个哈希表,用来保存每种棋局对应的权值。在棋盘中找到权值最大的点,然后在记这个位置下棋,并判断输赢。最后清空chessValue数组,进行下一次的权值计算。

2023-02-26 19:51:28 103

原创 五子棋游戏(二)

在悔棋功能中我们需要记录双方下棋的顺序,所以要定义两个一维数组记录棋子交点值,先将chesscount--,获取棋子x,y值,清空对应chessArr中保存的数据,这样就可以将棋子消除了,然后再重复一次悔棋就完成了,但是要判断当chesscount小于2时,无法悔棋,最后将棋子进行重绘就完成了。需要在八个方向上判断棋子连续的情况,每两个相对的方向为一组,一共就需要判断四组就可以了,首先定义4个count来记录四组棋子的连续情况,在count后加上数字便于区分。在清空棋盘前要将棋子数据保存在一个新数组中,

2023-02-25 17:14:23 84

原创 五子棋游戏(一)

获得交点值后,定义chessArr 15*15大小的二维数组用来保存棋子数据,下黑子时让数组大小为1,白子为2,如果chessArr大于0时证明该点已经下过棋子,实现黑白交替需要定义chesscount计数器,偶数时下黑子,奇数时下白子。首先我们应该创建一个game类,在这个类中创建游戏界面,再设置大小,标题,退出进程,居中显示,可见。首先定义x1,x2获取点击时的坐标值,然后计算坐标值,让它定位在距离x1,y1最近的一个位置上。我们将棋盘面板设置在界面左边,将按钮设置面板设置在界面右边,

2023-02-20 17:11:58 230

原创 程序/进程/线程/并行/并发

在当代面向线程设计的计算机结构中,进程是线程的容器。,也可以把进程中负责I/O处理、人机交互而常被阻塞的部分与密集计算的部分分开来执行,编写专门的workhorse线程执行密集计算,从而提高了程序的执行效率。一般的,以英语文本为基础的计算机程序要经过编译、链接而成为人难以解读,但可轻易被计算机所解读的数字格式,然后放入运行。(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是。中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

2023-02-16 13:26:20 110 1

原创 Java类的继承

在类的继承中,子类会继承父类中定义的方法,但有时需要对子类继承的方法进行修改,即对父类的方法进行重写。在Java中,类的继承是指在一个现有类的基础之上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可以继承的属性和方法。即如果子类和父类有方法名,参数类表和返回值类型都相同的方法,那么子类的方法机会将父类的方法覆盖,导致无法通过对象来调用父类方法。子类和父类的属性名不同,都可以通过子类对象调用,但二者方法相同,父类方法被子类重写,只能调用子类方法。

2023-02-09 18:02:22 314 1

原创 类和对象的使用

类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,是对所有具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。如果在这个方法中不需要新的参数,就不需要在括号中添加参数,多个参数用逗号隔开。在主函数中,我们需要对这个类创建一个对象,再通过对象来调用类中的方法和属性。在这个类当中我们还需要定义属性、方法和主函数,来将这个类运行起来。定义一个类是由 访问修饰符、类和类名 三部分构成的。这就是定义了一个class类,类名为buy。这个类就可以运行起来了。

2023-02-06 12:17:34 140 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除