自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java学习笔记(二十八)——开发一个小项目(VMeeting3.0)

上篇文章按照很规范的产品需求文档梳理了项目的逻辑,感觉开发起来明晰了很多;挂上一篇文章java学习笔记(二十七)——开发一个小项目(VMeeting2.0)_Biangbangbing的博客-CSDN博客这次基于上一次的开发过程,增加了:图片传输功能 在线视频功能 文件传输功能【部分完成,下载功能待设计】需求文档部分升级,并进行内容功能——技术的更新:一、用户角色描述用户角色 用户描述 普通用户 所有使用软件的客户端 管理员 软件后台监控人员【服务器端也需要可

2022-02-26 23:39:32 1695

原创 java学习笔记(二十七)——开发一个小项目(VMeeting2.0)

上次文章基本描述了整个项目的设计和一些业务逻辑的细节,但是感觉有一点点怎么说都没有说清楚的感觉,其实就是细节太琐碎整体没有逻辑感。感觉对开发也有也有一定的影响。于是我找了一个产品说明文档规范,来使得自己对于项目开发的功能描述更加清晰和规范。上一篇文章↓java学习笔记(二十六)——开发一个小项目(VMeeting1.0)_Biangbangbing的博客-CSDN博客产品需求文档目录:模板和一个示例的链接我都挂链接:XXX 产品需求文档_V1.0_Build_01_2014111

2022-02-21 15:09:27 544

原创 LeetCode NoteBook(4)—— 数据结构【二叉树&多叉树】

1.二叉树结构//节点struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode* () : val(0), left(nullptr), right(nullptr) {} TreeNode* (int x) : val(x), left(nullptr), right(nullptr) {} TreeNode* (int x, TreeNode* left, TreeNod

2022-02-12 22:03:27 251

原创 java学习笔记(二十六)——开发一个小项目(VMeeting1.0)

上一次大概学习了cs架构是什么东西。这次可以着手来实现一个小项目,做一个低配版QQ。大概需要设计实现双方通信,先画个大纲。项目架构server:接收客户端A的消息,然后转发给目的客户端Bserver:做server相关任务调度。连接查询请求的客户端——启动界面——循环监听消息。 serverUI:服务器端的界面设计。 serverListener:服务器端界面的监听器。 serverReceiveMsg:服务器端接收客户端发送的消息。client:多个客户端,相互发送消息但是要经过服

2022-01-21 00:35:20 489

原创 Java学习笔记(二十五)——通信(cs架构)

想要设计实现通信功能。需要掌握以下知识:网络通信(计网),多线程。需要实现以下功能:将传输的数据(文字,数字,声音,图片,视频……)编码,转换成可以通信传输的数据。 实现A和B(至少是双方)的通信。<AB实质是两个进程,可以是通过公网ip相互访问连接的两个机器运行的两个进程;可以是同一局域网下的两台机器运行的两个进程;可以是一台机器跑在本机和虚拟机的两个进程;可以是同一个机器运行的两个进程>通信模式(功能2)CS结构(目前只学习这一个结构,后面再补充同级的结构)我

2022-01-18 20:35:28 2735

原创 安卓开发踩坑合集——代码乱码,修改缓存位置……

Android Studio用的时候有多爽,出bug的时候也有多不爽,让人分分钟想卸载这个鬼东西.一些开发踩坑集合,准备常年更新记录,避免重复踩坑,主要是有很多人可以的解决办法不适合我(我解决不了,不是找不着文件就是不管用),有的时候就算解决了问题也不懂原理,就。。很容易再犯,一点点记录,然后成长吧!1.代码乱码问题现象解释:不是中文乱码什么的!特指打开文件之后,java不是java,是什么鬼的xml,xml更是什么license版本不对什么的一段文字,就感觉代码文件乱窜。然后整片报错

2022-01-18 15:16:51 2239

原创 Android开发——实现一个拨号器(查看通讯录)(二)

接着上面的实现,逐步拓展几个功能。比如实现查看通讯录,以及直接通过点击联系人条目实现拨号。实际上功能往往伴随着组件的熟练掌握和使用。当掌握所有组件的使用的时候大概就可以随心所欲玩出花来。对于拿到通讯录并展示主要涉及到的技术就是——ListView组件的使用(学完RecyclerView也可以完成这个功能,而且好像更常用耶,但是目前这个简单点,暂时学习使用)。看了上一次的基本才能理解这一次在干啥,上一次文章直通车:Android开发——实现一个拨号器(一)_Biangbangbing的博客-C

2022-01-18 12:58:20 3111 1

原创 Android开发——实现一个拨号器(一)

安卓开发教程:【天哥】Android开发视频教程最新版 Android Studio开发_哔哩哔哩_bilibili开发平台:Android Stdio(和idea里面自带的一模一样,直接分开用Android Stdio挺好)下载地址:Download Android Studio and SDK tools | Android Developers准备工作下载好开发工具,Android Stdio。下载SDK,注意版本,我之前自己默认下载的31,但是好像不适配,R30可以。查看...

2022-01-17 21:07:51 5360

原创 Java学习笔记(二十四)—— HashMap

终于到了一个比较硬核的数据结构,其实之前数据结构课讲过如何用c++实现hashmap的思路,Java也有自带的hashmap这个数据结构。今天联系二者经验,彻底做一次梳理,并基于已有的java hashmap做一些些分析,他为什么设计思路是这样的。以及如果自己手撕一个hashmap要怎么设计。hashmap出现原因存连续的数据。一开始我们用的是数组或者链表来存储数据,但明显的:数组需要开一块连续的空间存放数据,当需要插入或删除某个数据的时候,因为需要维护连续性,所以要循环将数据进行移动,

2021-10-30 23:38:27 287

原创 Java学习笔记(二十三)—— io流

io使用场景当想要将某些数据存储到磁盘内,以便程序关闭、再次运行的时候还可以查到这个数据,这时我们需要用io流将这些数据写出程序写入到本地文件里、或者保存到数据库等等。iO详解查看java API文档——java.base——java.io。发现有很多接口、类、方法调用(简单来说就是有点乱七八糟) 张下面这样↓所以从宏观角度简单分分类,然后分解学习:io分类按照读取单位分:字节流(一次性传入一个字节,8bit)(可以处理任何数据)字符流(java一个字符16.

2021-10-30 17:39:57 358

原创 Java学习笔记(二十一)—— 线程池

线程池是什么线程池是一种线程的使用模式,管理、维护多个线程。为什么需要线程池首先了解线程的生命周期,当有一个任务来临时,启动一个线程,当任务结束之后线程被销毁。看起来很简单,但这个过程是会消耗一定的资源。当多个线程在同时工作时,短时间内频繁地创建、销毁线程则会消耗大量的资源,会影响整体性能。如何避免反复的销毁和启动操作呢?工作结束的时候如果可以让他不要被销毁,而是进行一定时间的等待,下次工作来了接着用 —— 具体为任务结束后阻塞该线程,直到任务来唤醒线程。这个工作就是由线程池来完

2021-10-16 22:18:56 191

原创 Java学习笔记(二十)—— 生产消费模型

生产消费模型的应用场景和线程有关的另一个话题——消费生产模型的设计。具体应用场景——例如LOL里,自动产生兵线,吃掉兵线等。一个更贴切的栗子:在俄罗斯方块中,需要自动产生一些块,如果容器满了就无法产生,当有一行被完全填满就会消掉,这就很好地运用了生产消费模型。生产消费模型设计模型实现注意点:阻塞线程使用方法:wait() 启动线程使用方法:notify() 因为有多个生产者、消费者读写仓库库存数据,因此会产生data race,需要将修改数据的操作锁起来。 锁.

2021-10-09 22:23:18 298

原创 Java学习笔记(十九)——线程安全问题

什么是线程安全在多个线程并发执行的时候保证不会出现错误。因为多个线程共享进程(主线程)的数据。举个栗子:典型的抢票系统,在某个时间点有多个用户同时进行抢票操作,每个用户是一个线程。假设系统内目前有10张票,线程抢到票就会执行总票数-1,但是如何保证每个线程看到的票数确实是当前真正的票数呢。存在这样的可能:最一开始A抢到票,但是还没来得及操作票数-1,B看到的票数就仍旧是10张票,继续抢票于是A和B抢到的是同一张票。如果不加以控制,可能就造成100个人都抢到票了,但实际上只有10张。

2021-10-06 22:27:00 1305 1

原创 Java学习笔记(十八)——进程、程序、线程、并发、并行

今天开始接触多线程、并发相关知识。首先先来了解一下相关概念。名词概念程序程序:一段执行的代码,有数据和指令集。进程进程:一段程序执行的过程,是程序的实体,为程序提供所需要的资源。线程线程:操作系统进行运算能调度的最小单元,是进程的实际运作单元。一个进程可以并发很多个线程执行不同的任务。(有一个主进程,可以调用多个线程)并发指某一段时间内,进程交替执行。看似同时,但某一个时刻都只有有个进程在工作。单核就可以实现。并行指某个时刻,进程与进程同时执行。需要多核。

2021-09-15 23:59:32 126

原创 Java学习笔记(十七)—— 开发个小项目(GoBang v5.0)

接十六,今天重点完善AI下棋以及用户登录并解决一个小问题。画个大纲(跟随慢慢开发过程不断完善)1.用户两个用户对战 一黑一白用户可以是人,也可以是AI。对战模式支持人人,人机,机机。人人对战的时候想象的场景是主用户(登录游戏的)要找一个对手进行对战,主用户要记录战局成绩,那另一方应该也记录成绩或者单纯简单玩一玩(需要满足这两种需求:对手可以是服内玩家<甚至可以考虑设计加好友功能在好友中找对手>,也可以是路人)属性本次比赛执棋颜色用户名(不同用户的用户名不能一..

2021-08-27 12:27:48 214

原创 Java学习笔记(十六)—— 开发个小项目(GoBang4.0)

接十二,今天重点搞定简单基础版本的AI下棋。画个大纲(跟随慢慢开发过程不断完善)1.用户两个用户对战 一黑一白用户可以是人,也可以是AI。对战模式支持人人,人机,机机。属性本次比赛执棋颜色用户名密码游戏得分(赢得局数)存档棋盘信息(二维数组,chessShape类型数组,黑、白、总棋子个数,下一次下棋的棋权) 方法 下棋输赢设置、获取属性接口2.比赛规则一黑一白交替轮流下棋可以决定哪个玩家先手不可以重复下棋到同一个位..

2021-08-21 16:55:00 243

原创 Java学习笔记(十五)数据结构——线性表(链表实现)

搬上上次的图,这次用链表的方式来实现简单的线性表。直接罗列功能框架Node :结点类(设计链表的一个结点要包含两部分内容,值域 and 指针域,值用来储存内容,指 针域用来指向下一个或者上一个结点的地址<单链,双链,循环都可以设置>)ByChain:链表类,指向下一个或者上一个结点的地址。Node:属性value 值域 next 下一个结点 front 上一个结点 (上一个节点的设置看自己需求实现,后面代码实现的部分没考虑...

2021-08-19 18:41:48 341

原创 Java学习笔记(十四)—— .hashcode()

今天来接触一下hashcode()这个方法,至于这么到这里来的 ——hashcode()上一篇有讲用数组的方式实现一个线性表,里面有一个排序的方法需要实现,但是我们只分析当数组存的元素是Interger时如何排序,当这个元素是其它类型就没办法使用'<','>'来做比较了,那么如何实现对它的比较呢。于是展开说说:String类型可以有字符串类型,他们的比较方式可以是字典序。一位一位比较ASCII码,短的在前。但是长度过长比较起来很麻烦。其他不规则的元素:例如自己设定的类对象要怎么比

2021-08-16 11:46:48 427

原创 Java学习笔记(十三)数据结构 —— 线性表(数组方式实现)

根据了解的基础的数据结构知识框架今天尝试实现的就是线性表,用数组的方法来实现。为啥明明有现成的数组还要“自作多情”造车轮现成数组固定大小,不能更改,不灵活 现成数组功能简单,没有增删改查、排序等buff 知道一些底层的实现方法,有利于锻炼代码能力,全面思维能力 磨刀不误砍柴工,自己写很麻烦,有需求的时候用起来很好用,很香()功能框架罗一罗interface :声明方法class :声明属性+方法实现属性maxSize :线性表可以申请的最大长度,...

2021-08-14 13:49:01 337

原创 Java学习笔记(十二)——开发个小项目(GoBang3.0 plus)

接上一篇,看了别的优秀作品有点感触,给自己一点灵感,完善&优化项目。画个大纲(跟随慢慢开发过程不断完善)1.用户两个用户对战 一黑一白用户可以是人,也可以是AI。对战模式支持人人,人机,机机。属性本次比赛执棋颜色用户名密码游戏得分(赢得局数)存档棋盘信息(二维数组,chessShape类型数组,黑、白、总棋子个数,下一次下棋的棋权) 方法 下棋输赢设置、获取属性接口2.比赛规则一黑一白交替轮流下棋可以决定哪个玩家先手..

2021-08-13 16:21:33 173

原创 Java学习笔记(十一)开发个小项目(GoBang3.0)

接上一篇,继续完善功能。画个大纲(跟随慢慢开发过程不断完善)1.用户两个用户对战 一黑一白用户可以是人,也可以是AI。对战模式支持人人,人机,机机。属性本次比赛执棋颜色用户名密码游戏得分(赢得局数) 方法 下棋输赢2.比赛规则一黑一白交替轮流下棋可以决定哪个玩家先手不可以重复下棋到同一个位置不可以将棋子下到边界外可以撤回刚刚下的棋,不可以撤回上一步的棋哪一方横竖斜到达5个棋子赢一局3.界面登录界面用户登..

2021-08-11 15:50:40 207

原创 Java学习笔记(十)——开发个小项目(GoBang2.0)

接上一篇,继续完善功能。画个大纲(跟随慢慢开发过程不断完善,今天分类方法改一改)1.用户两个用户对战 一黑一白用户可以是人,也可以是AI。对战模式支持人人,人机,机机。属性执棋颜色用户名游戏得分 方法 下棋输赢2.比赛规则一黑一白交替轮流下棋可以决定哪个玩家先手不可以重复下棋到同一个位置不可以将棋子下到边界外可以撤回刚刚下的棋,不可以撤回上一步的棋哪一方横竖斜到达5个棋子赢一局3.界面登录界面用户登录:用.

2021-08-08 16:29:38 224

原创 Java学习笔记(九)——开发个小项目(LazyGoBang)

没搞过项目,大概就是敲很多很多代码来实现某个完全的功能。这里记录开发一下过程、学到的技术和一些遇到的难题、解决方法。画个大纲(跟随慢慢开发过程不断完善)用户两个用户对战 一黑一白用户可以是人,也可以是AI。对战模式支持人人,人机,机机。属性执棋颜色用户名游戏得分方法下棋输赢比赛规则一黑一白交替轮流下棋可以决定哪个玩家先手不可以重复下棋到同一个位置不可以将棋子下到边界外可以撤回刚刚下的棋,不可以撤回上一步的棋哪一方横竖斜.

2021-08-05 21:42:56 140

原创 Java学习笔记(八)——了解源码之java.base下的的java.lang包

API接口文档什么是API?API是指应用程序的编程接口,用来让别人使用这个应用程序。关于API更加形象具体的说明见这里。API接口说明文档,用来告诉别人这个应用程序如何使用。我们现在想要看java的API文档说明是想看看java是怎么设计的,写java的技术人员是怎么设计一些函数、数据类型等等的。咋样能看到java的API方法一:上链接方法二:Java框架结构(后续慢慢将这个补完整)先看看java.base —— 描述java平台标准版的API功能包含一堆pack.

2021-08-03 11:53:23 1096 1

原创 Java学习笔记(七)——深入了解接口以及五大原则

接口 接口的一些基本概念在之前的笔记都讲过了(在笔记(二),看这里),今天补充一些新的知识。接口继承和类继承的区别接口可以继承接口。类可以继承类。类可以继承接口。 一个类或接口可以继承多个接口。一个类只能继承一个类。 接口的属性默认为static final属性。方法默认为 abstract 方法。杂七杂八有抽象方法不能实现实例化。=>接口、有抽象方法的类没有对象。 子类(接口类)对象有父类(接口)所有属性,子类对象既是子类又是父类对象。 父类对象没有子类的属性,也...

2021-07-31 11:00:55 224

原创 Java学习笔记(六)—— 答疑一些小知识点

区别重写和重载重载应用环境:同一个类中,多个重名方法 结构:访问修饰符——返回值——方法名——传入参数。 访问修饰符 :一致。 返回值类型:可以不一样,但是一定要基于参数不同(参数不同代表已经实现了重载)。 方法名 :一致。 参数 :不一致(个数或类型)。 构造方法的重载:通过参数不同的方法实现构造方法重载。通过传参个数不同调用实现不同的方法。 重写应用场景:子类重写父类方法。 结构:访问修饰符——返回值——方法名—...

2021-07-29 18:01:23 77

原创 Java学习笔记(五)——封装

封装啥叫封装?把属性的设置、获取改成一个特定的方法(set、get等)来实现,而不是直接访问,起到一个保护的作用。public void setName(String name){ this.name = name; //this待指本类,后面讲述细节}public String getName(){ //返回属性 return name; }封装、多态、继承是面对对象的三大特性。

2021-07-29 14:27:50 203

原创 Java学习笔记(四)——图形绘制进阶

命名规则命名规则 类型 规则 包 全小写 文件 和类名一致 类/接口 大驼峰命名法,首字母大写,后面的每个单词首字母大写 属性/方法(变量、对象、函数) 小驼峰命名法,首字母小写,后面的每个单词首字母大写 静态称量/常量 全大写 界面开发容器类型:(都是类)JFrame:窗体JPanel: 面板(给窗体分区)布局方式(控制面板内组件摆放的位置)边框布局(BorderLayout)————

2021-07-27 21:37:12 302

原创 Java学习笔记(三)——图形绘制

UI —— JFrame 类思路设计一个自己的UI类。有界面初始化函数。 有运行函数,生成一个UI对象,执行初始化方法。初始化函数如何设计用到JFrame类创建窗体(窗口)。界面设计 监听事件——触发功能界面设计JFrame jf = new JFrame("窗体的名字"); //创建一个JFrame对象jf.setSize(1000,800); //窗体的大小jf.setDefa

2021-07-24 20:04:37 295

原创 Java学习笔记(二)——接口

接口一系列概念接口是个啥?接口:对方法的抽象(简而言之,只有方法,没有方法体)。 public void lockDoor(String input);为啥要用接口?有些场景下,假设你需要用到抽象的功能、属性,于是你用到的父类、子类来实现;当子类有自己想要实现的特殊方法,可以对父类进行重写来实现,可但现在你遇到的问题是:你写父类方法的时候有好多种情形,这些都是并列的,是你打算在子类重写的时候用,但是父类怎么办呢?你说:我可以随便写一个嘛,只要子类重写不就好了。这样的确没错,但是这样

2021-07-23 20:32:38 114

原创 Java学习笔记(一)——继承

定义继承是干啥的?描述类与类(影响对象与对象)的关系。因为类与类之间中有一些相同之处和不同之处,人们将这些相同的地方集合起来抽象成一个父类,便于使用一些他们共有的属性(不用每个类总是都要重写一遍相同的内容,只需要写不一样的地方就好了,省事儿!)。举个栗子:设置学生为父类,小学生,中学生,大学生都是他的父类。有一些共同属性例如,姓名学号,共同方法:学习、考试。继承有什么内容父类,子类继承关键字extends继承的格式public class 父类名{}publi

2021-07-22 15:38:07 114

原创 Django学习笔记(一)

当安装完Anaconda以后,记得要添加环境变量,比如我的,我安装路径为:F:\Anaconda3 ;那么安装完成后 就要做接下来的操作:

2021-05-28 01:46:20 60

原创 ACM题解——动态规划专题——treats

ACM题解——动态规划专题——奶牛食物的最大收益题目描述FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for giving vast amounts of milk. FJ sells one treat per day and wants to maximize the money he receives over a given period time.The treat

2021-03-01 18:19:38 608

原创 ACM题解——动态规划系列——最长升序子序列

ACM题解——动态规划系列——最长升序子序列题目描述A numeric sequence ofaiis ordered ifa1<a2< ... <aN. Let the subsequence of the given numeric sequence (a1,a2, ...,aN) be any sequence (ai1,ai2, ...,aiK), where 1 <=i1<i2< ... <iK<=N...

2021-02-28 17:00:04 827

原创 ACM题解——动态规划专题——“Help Jimmy“

ACM题解——动态规划专题——"Help Jimmy"题目描述"Help Jimmy" 是在下图所示的场景上完成的游戏。场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。Jimmy每次下落的高度不能超过MAX米,不然就会摔死,游戏也会结束。设计一.

2021-02-24 23:11:50 415 1

原创 ACM题解——动态规划专题——卖电影票

ACM题解——动态规划专题——卖电影票题目描述Jesus, what a great movie! Thousands of people are rushing to the cinema. However, this is really a tuff time for Joe who sells the film tickets. He is wandering when could he go back home as early as possible.A good approach

2021-02-24 20:27:22 601

原创 ACM题解——动态规划专题——G天上掉馅饼

ACM题解——动态规划专题——G.天上掉馅饼题目描述都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经特别迟钝,每秒种只有在移动不超过一米的范围内接住坠落的

2021-02-24 18:52:34 1274

原创 ACM题解——训练赛2_D - The Beatles

ACM题解——训练赛2_D - The Beatles题目描述ExamplesInput2 31 1Output1 6Input3 20 0Output1 3Input1 105 3Output5 5题意有n端长为k的的线段围成一个圈,每一段开头一号点为restaurant点,共n个,现在已知初始位置s距离其最近的restaurant点的距离为a,它开始沿某一方向运动,每运动一次长度..

2021-02-13 20:05:35 124

原创 ACM题解——训练赛2_B - Nirvana

ACM题解——训练赛2_B - Nirvana题目描述B - NirvanaKurt reaches nirvana when he finds the product of all the digits of some positive integer. Greater value of the product makes the nirvana deeper.Help Kurt find the maximum possible product of digits among al

2021-02-13 14:36:50 241

原创 ACM题解——训练赛1_F

ACM题解——训练赛1_FF - Jumping JackJack is working on his jumping skills recently. Currently he's located at point zero of the number line. He would like to get to the pointx. In order to train, he has decided that he'll first jump by only one unit, and ea.

2021-02-11 10:21:15 243

空空如也

空空如也

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

TA关注的人

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