- 博客(23)
- 收藏
- 关注
原创 数据结构:链表
链表在插入数据和删除数据,可以直接修改节点中的指针,无需像数组那样要移动大量数据元素。在对链表进行操作的时候,如果需要对头节点进行操作的话,建议构建一个虚拟节点,使它位于有头节点之前,这样就可以对所有节点进行一致的操作。n个节点形成一个链表,也为线性表的链式存储结构。节点含有一个指针域的链表称为单链表,含有两个指针域的链表称为双链表。链表插入/删除时间复杂度O(1),查询时间复杂度O(n),适用场景数据量不固定,频繁增删,较少查询。数据域存储的是本身节点的数据,指针域指向的是下一个节点的位置。...
2022-07-17 15:16:16
217
1
原创 数据结构:数组总结
数组分为静态数组和动态数组,数组是存放在连续内存空间上的相同类型数据的集合。静态数组的长度是固定的,改变数组中的值,需要用一个新值覆盖掉旧的值。若想改变数组的长度,则需要新建一个新的数组来处理旧数组的值,将旧数组的名字赋给新建的数组,之后就OK了。具体应用:`而动态数组是可以改变数组长度的,直接调用具体方法add(),remove()等等。数组中还有一种类别多维数组,以二维数组,二维数组的每一行头结点的地址是没有规则的,更谈不上连续。用图来表示:这里可以简单的看一看,如果想详细了解,可以去找一本经典
2022-07-10 16:26:15
385
原创 关于OSI七层模型
OSI七层网络模型是一种理论上的模型,在生活中采用的模型为TCP/IP模型,首先我们要了解七层网络模型都有什么,由上到下我们可以这么去说,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。TCP/IP模型有五层结构,顺序是由上而下,应用层,传输层,网络层,数据链路层,物理层。接下来说说每层的作用OSI七层模型上三层主要实现应用间数据的处理,下四层实现数据通信。每一层都接受它的下一层数据并把自己的数据传输给上一层,联系密切。为什么要分层?1、易于实现和标准化各层独立,就可以把大问题分割成多个小问
2022-07-05 14:51:52
235
原创 二分查找法
在这里我就是说说我自己的想法。这里困难的,我想就是容易分不清边界,仅仅去选择记忆那个模板(在过了很久以后就会忘记)二分查找法:有两个前提条件:1.在查找的内容范围上一定是有顺序的。2.一次只能查找一个数。假设一个有序的数组{1,2,3,4,5},查找一个targeta=4的位置,运用二分查找可以很快的找到。二分查找方法是不停的进行去迭代,所以划定一个正确的方法是非常重要的。(也就是左右区间开闭的不同)。题目:示例一:示例二:把上面那个代码题解决一下左闭右闭左闭右开其实大概是相同的。...
2022-07-01 20:11:27
1150
原创 JAVA实现飞机小游戏
通过该项目让我对什么是面向对象思想有了深刻的认识,对监听器,多线程开发,缓冲区处理,锁等有了深入了解。可以看到上面的代码有用到监听器,所以我们接下来去写监听器类ThreadlListener.监听器类里是比较重要的,用到了继承MouseAdapter和声明KeyListener接口,里面有线程的创建和启动,操作飞机对象的移动。Move类为移动基础类,Plane,Bullert基础基础类来进行(构造飞机对象和绘制对象的方法)线程自启动类实现了敌机,敌机血量,我方子弹的自动生成...
2022-06-26 17:08:16
931
原创 TCP的三次握手
客户端与服务器进行连接需要进行三次握手。重点要记住的有:ACK:确认符号标志 SYN:同步序号,用于建立连接过程。第一次握手:客户端从关闭中醒来,服务器随之被迫醒来。客户端向服务器端发送报文:SYN=1,seq=i(其中seq设定一个初始值)。第二次握手:服务器端发送报文(确认报文SYN=1,ACK=1)(确认号ack=i+1,seq=j)。第三次握手:客户端收到确认之后还要确认一遍,发送报文(ACK=1,seq=i+1,ack=j+1)。首次握手的隐患——SYN超时一些不法分子可能会在第一次握手时之后就结
2022-06-18 16:40:22
389
原创 (一)OSI模型
OSI模型由七层组成,由上到下分别是应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。物理层:定义了比特流的透明传输,通过规定了物理设备的接口,尽量减少物理设备和传输路线的差异影响。数据链路层:负责建立和管理节点间的链路,当前层的作用,根据物理层的比特流的基础上用差错管理,流量控制等方法,将有错的物理线路转变为无错的链路。网络层:前三个层为数据通信,负责链路上的通信,将数据的网络地址转换为物理地址,可根据网络拥塞程度,服务质量,路由花费来选择最佳路径,当前数据为。传输层:可以这么理解,传输层为不同
2022-06-18 15:52:20
429
原创 关于线程安全
首先先标记个图线程安全时非常受重视的问题,通常在多个线程竞争同一个资源时容易发生。可以聚个例子,在日常生活中大家在买票时会同时有几个窗口在进行售票,但是票的总数是固定的,几个窗口都是根据票的数量来进行售卖的。那么问题就出现了,假如A售票员从票的总数中卖出了一张票,而其他的售票员不知道,他们还是根据没卖之前的票数去卖,最后一定会发生票数对不上的情况。这就是发生问题了,...
2022-05-29 18:20:42
62
原创 遇到空指针异常Exception in thread “main“ java.lang.NullPointerException怎么处理
出现空指针异常的一种可能性是调用方法的对象为空public class UI { public void initUI() { JFrame jf = new JFrame(); jf.setSize(900, 900); jf.setTitle("空指针异常"); //居中显示 jf.setLocationRelativeTo(null); //设置退出进程的方法 jf.s
2022-05-25 16:02:30
1009
原创 基于数组和节点的动态变化(增删改查)
首先讲一讲关于数组ArrayList固定的数组格式: int[] arr=new int[10]; // 长度为10的数组一般在构建一个数组时需要构造一个常数长度大小,如果在后期数组长度不够用的话,就需要在创建一个数组来进行拷贝。数组需要初始化。动态扩容数组具体代码: //需要定义一个数组 public Object[] arr=new Object[8]; private int size;//数组长度 //添加 public void add(
2022-05-12 22:02:08
159
原创 简单说一下进程
什么是程序?最底层的语言是0和1,计算机语言虽然有很多,不过它们还是用共同的特征,所有语言都由变量和函数组成,也就是说程序可以看作由存储数据和执行存储数据的指令组成。什么是进程,线程?平时写出的代码如果没有加线程类的话,可以将它看为单进程。进程可以理解为是一道正在执行的程序或者运动的对象,将此进程比作一个游戏程序,而线程就是其中的一个个功能。一个进程包含了1-n个线程,多进程就是几个程序代码在一个机器里同时运行。从这里就可以看出进程和线程数量的区别。什么是并行? 从上面那个图片可以看到一个叫逻辑
2022-04-23 17:04:03
2077
原创 五子棋(二)
在上篇文章的基础下,来继续写,主要目标是实现存储棋子 实现 开始游戏 实现 悔棋存储棋子:if (xx>=0&&xx<=(row-1)&&yy>=0&&yy<=(column-1)){ //当该位置没有棋子的时候,可以下棋 if (isAvail[xx][yy] == 0) { if (count == 1){ //count=1为
2022-04-15 20:23:21
2908
原创 五子棋(一)
上手练习一下五子棋,倡导在做之前先做出一个计划,才不会稀里糊涂。具体操作步骤如下: 创建一个界面类,在里面创建界面和添加按钮对象,监听器等等。 建立一个监听类,监听器类用来声明接口,接口包括动作监听器,鼠标动作监听器,还会声明一个用来防止数值的接口(之后会创建)。 建立一个接口,用来获取数值(因为JAVA只能继承一个父类,所以接口会比较自由一些,接口是框架的重要组成部分)。 再创建一个类,用来重绘和绘制棋盘和棋子(分开写会比较清晰) 界面类:public .
2022-04-15 19:59:49
326
原创 说一下接口
首先我们要知道什么是接口,接口是基于java类只能单一继承而出现的另外一种可以丰富java类的内容,让类更加成体系,在一个应用中,通常以接口组成框架去做项目。一.接口的形式是什么样的?接口以interface来声明接口:interface 接口名字,在接口内有方法和属性两种,属性是有要求的:final static 属性名=属性值;属性是一定要初始化的,final保证了属性是个常量,在之后不能改变其数值。static则代表了该属性实例化,可以直接被接口名和类名调用。对方法定义的话,是没有
2022-04-04 21:06:39
134
原创 关于继承
继承是JAVA对象面向对象的三大特性之一,即子类可以继承父类的属性和方法,从而使子类对象具有父类的特征和行为。继承的原理:以动物为例子,动物可分为食肉动物,食草动物,杂食动物,我们可以去思考它们是否具有相同的特征,比如都有腿,眼睛,能够去进食等相同属性和方法,我们完全可以用一个父类去进行归纳总结,而不必去为每个动物单独设置共同的属性和方法,大大减少了工作量,极大的提高了效率。继承的关键字为extends,通过它确定了子类与父类的关系具体用法:public class 子类 extends 父类{
2022-04-01 20:53:34
607
原创 关于环境变量的配置和使用细节(Java)
一.java开发环境也成为JDK,它含有全套的java开发,编译,调试,运行等功能。JDK:1.JRE(java)程序运行环境它可以执行预先编译好的java程序代码,没有调试开发的功能工具,编译好的程序代码文件以class结尾。JVM:java虚拟机java程序运行的载体系统java程序跑在java虚拟机(jvm)上。另外需要强调的是在每一个java程序启动 都会启动一个新的java虚拟机来运行。配置环境变量下载JDK,下载地址:Java Downloads | Oracle
2022-03-31 18:56:23
1184
原创 迭代分形图形的绘制
第一步操作永远都是创建一个界面public class DrawUI extends JFrame { public void initUI(){ this.setTitle("通过迭代画图"); this.setSize(800,800); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); this.setVisible(true); }}创
2022-03-29 16:35:25
864
1
原创 进行重绘图形
第一步建立一个界面public class DrawUI extends JFrame{public void initUI{this.setTitle("重绘“);this.setSize(800,800);this.setDefaultCloseOpreation(EXIT_ON_CLOSE);this.setVisible("true");}}
2022-03-25 11:12:09
614
原创 01.在一个类中写三个监听器
前文;在一个drawUI类中建立一个窗口,窗口里面实现添加按钮和画图的功能,能够点击相应的按钮便会出现与之相对应的图形,通过操作鼠标进行绘图。一.创建一个darwUI类,建立一个窗口public class drawUI extends JFrame{public void initUI() { //创建出一个窗口 this.setTitle("绘制图像"); this.setSize(1000,800);
2022-03-20 13:45:39
153
原创 简单的监听器
首先我们要知道如何构造一个事件监视器1.创建一个BtnAction类,在类之后声明implements ActionListenerpublic class BtnAction implements ActionListener{}2.重写接口中的方法public void actionPerformed(ActionEvent e) { JFrame jF = new JFrame(); count++; jF.setTitle("" +
2022-03-15 13:15:13
426
原创 如何实现一个可视化登录界面?
首先我们要知道界面是由什么组成的?可视化组件:窗体 按钮 菜单 输入框 复选框等等.... 元素规则:尺寸 颜色 字体 布局 内容:内容 图片 数据.....界面开发包包:项目中给代码分类的使用其他包中的类时,需要声明这个类所在的包路径java.awt早期的界面开发包:样式 功能老旧 不推荐使用可视化组件类 保留使用元素规则类 尺寸 颜色 字体 布局javax.swing升级的界面开发包 使用其中可视化组件类以及其他类都可以 界面开发步骤 创建一个类 声明一个初始化界.
2022-03-05 12:46:36
743
原创 来说一说类与对象
文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、面向对象与面向过程得区别首先我们要先了解一下面向对象,面向对象偏向于人类做事的思维去做事,偏重于逻辑,而面向过程偏严谨,需要编写者把每一步都要编写出来,上下...
2022-03-02 11:36:14
129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人