自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 QQ聊天群

WebSocket中事件驱动的处理用户上线,用户下线,发送消息三种不同的业务事件用户表: 用户id( uid)、 用户名(username)、 昵称(nickname)、 密码(password)、登出时间 (logout_at)消息表:消息id(mid) 、用户id(uid)、 发送内容(content)、发送时间(published_at)1.处理用户上线逻辑1)判断上线的是那个用户2)将用户信息记录到在线用户列表中(如果多处登录,景之前登录的踢下线)3)查找历史消息并发..

2022-03-01 00:25:07 2385

原创 博客系统实现

场景:1.注册/登录页面2.首页/博客列表页3.博客详情页4.文章发表页注册场景1.表单资源:(静态资源) /register.html需要用户填写五个内容: 用户名(不能重复),昵称(可重复),头像地址,git地址,密码2.验证资源:(动态资源)/do-register注册过程:读取用户提交的信息——将信息插入到数据库中——成功——把刚注册的用户放入到session中——显示成功,后面跟个a标签引导用户跳转到首页·...

2022-02-17 19:50:05 232

原创 JavaScript(WebAPI)

WebAPI 包含了 DOM + BOM.DOM API: 操作页面结构BOM API: 操作浏览器DOM 树一个页面的结构是一个树形结构, 称为 DOM 树.获取元素querySelector1、 表示文档中与指定的一组CSS选择器匹配的第一个元素的 html元素Element对象.2、如果您需要与指定选择器匹配的所有元素的列表,则应该使用querySelectorAll() 例如 .box 是类选择器, #star 是 id 选择器 等....

2021-12-31 00:15:24 538

原创 初识Javascript

Javascript简称js,js是一种脚本语言,(js是一种解释性语言),是不需要进行编译的,也是浏览器中的一部分,经常用在web客户端脚本语言,主要是用来给html增加动态功能。JavaScript 的能做的事情:网页开发(更复杂的特效和用户交互)网页游戏开发服务器开发(node.js)桌面程序开发(Electron, VSCode 就是这么来的)手机 app 开发JavaScript 和 HTML 和 CSS 之间的关系HTML: 网页的结构(骨)CSS:.

2021-12-19 12:39:17 961 2

原创 css中的常见数值

长度(宽,高):绝对值: 10px;相对值: 2em,相对于当前字体的二倍百分比:100% 一般相对于父元素关于颜色:rgb(红,绿,蓝) [0,255]rgba 0-1 完全透明-完全不透明alpha 通道: 透明度hsl(色调,饱和度,亮度)字体:font-family: 字体font-size: 字体大小文本对齐(align):text-align:left | center | right文本装饰(decoration):text...

2021-12-13 23:37:36 263

原创 关于CSS的基本概要及其作用1(含义)

1.如何让html和css关联?1)内部关联:via<style>2)外部关联:via <link rel = "stylesheet" hrel = "css资源的url">3) 内联关联:via元素的style属性2.选择器:1)选择指定的元素:例如:body{...} 选择所有body元素div{...} 选择所有div元素2)通过一个元素的id,选择某个元素#id{...]3)通过一个指定的类别,选择某类元素.cl...

2021-12-12 00:38:53 428

原创 关于HTML的一些常见标签(简单介绍)

1.输出内容的标签<h> 系列 --> 标题<p> --> 段落<br> --> 换行2.语义标签<strong>.<b> 强调 默认样式 加重<em>.<i> 强调 默认样式 斜体<del>.<u> 删除 默认样式 ...

2021-12-10 00:43:22 332

原创 事务 ,数据建模

MySql中事务的概念及用法1.为什么要有事务?没有事务可能会遇到的问题:并发 回滚(主动,被动)什么是事务?对应一条基本的业务动作(类似借书),组成的一条或者多条SQL形成的概念通过划清界限:(start transaction + commit/rollback)2.数据一致性:DBMS用户根据其应用场景,对数据提出的一系列约束要求数据建模事物可以分为三大层次概念层(现实世界)逻辑层(开发人员头脑中的世界)计算机软件世界物理层(计算机硬件世界)万物..

2021-11-29 17:46:46 679

原创 代码练习(牛客网)

1、删除公共字符题目描述:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”Theyarestudents.”和”aeiou”,则删除之后的第一个字符串变成”Thyrstdnts.”输入描述:每个测试输入包含2个字符串输出描述:输出删除后的字符串示例1:输入:Theyarestudents.aeiou输出:Thyrstdnts.可以用HashSet或HashMap来解决,用set保存s2中的字符,遍历s1,判断set中是否包含s1中的字符...

2021-11-28 22:08:42 139

原创 关于软件测试的一些常见问题

1.什么是软件测试?软件测试就是测试人员用一系列的手段来判断软件是否满足用户的需求。1)软件测试要验证软件功能的重要性2)软件测试要验证软件功能是否满足对软件的“预期的结果”软件测试特点:软件测试只是一个样本试验,具有不可穷尽性2.软件测试和软件研发的区别?1)软件开发的流程:根据用户的需求,通过分析,设计框架来编写代码以及调试研发出满足用户需求的软件。软件测试:就是测试人员用一系列的手段来判断软件是否满足用户的需求。2)软件测试和软件开发当中的调试的区别目的

2021-11-25 22:57:02 445 1

原创 关于HashMap常考问题

1、如果new HashMap(19),bucket数组多大?答:32。(最接近19的二次幂向上取整)2、HashMap 什么时候开辟bucket数组占用内存?答:当第一次put的时候,数组变为16.3、hashMap何时扩容?答:超过了负载因子。二倍扩容4、当两个对象的hashcode相同会发生什么?答:发生冲突。5、如果两个键的hashcode相同,你如何获取值对象?答:遍历与hashcode值相等时相连的链表,直到null.(通过equals判断key)6、你了

2021-11-17 17:41:16 349

原创 split方法

将一个字符串分割为子字符串,然后将结果作为字符串数组返回。标准形式为:String [] strings = str.split(""),使用默认情况下,split()方法对每个字符进行分割·。split()方法中括号中的·参数可以为一个,也可以为多个·。...

2021-11-16 00:00:24 77

原创 排序(插入排序)

1、稳定性(重要)两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的算法。直接插入排序:时间复杂度:最好O(N);最坏:O(N^2)空间复杂度:O(1).public static void insertSort(int[] array) { 16 for (int i = 1; i < array.length; i++) { 17 int tmp = array[i]; 18.

2021-11-13 20:38:42 683

原创 2021-11-09实现二叉树的非递归 先序, 中序, 后序遍历

import java.util.Stack;class TreeNode2 { public char val; public TreeNode2 left; public TreeNode2 right; public TreeNode2(char val) { this.val = val; }} class BinaryTree { public TreeNode2 root; public Tr.

2021-11-09 17:57:57 356

原创 关于树的一些OJ练习

606. 根据二叉树创建字符串classSolution{publicvoidtree2strChild(TreeNodet,StringBuildersb){if(t==null)return;sb.append(t.val);if(t.left==null){if(t.right==null){return;...

2021-11-08 19:58:58 89

原创 关于树的一些习题

1、比较两个二叉树是否相同classSolution{publicbooleanisSameTree(TreeNodep,TreeNodeq){if(p==null&&q==null)returntrue;if((p!=null&&q==null)||(p==null&&q!=null))returnfalse;if(p...

2021-11-07 17:32:41 84

原创 初步认识面向对象语言的基本特征

一、封装语法:使用private关键字,修饰字段和方法(构造方法)。只能在当前类中使用。意义:安全,类的调用者来说,对类的使用成本降低了。二、继承被继承的类, 我们称为 父类 , 基类 或 超类需要 继承的类,我们称为 子类, 派生类和现实中的儿子继承父亲的财产类似, 子类也会继承父类的字段和方法, 以达到代码重用的效果.使用 extends 指定父类.Java 中一个子类只能继承一个父类 (而C++/Python等语言支持多继承).子类会继承父类的所有 public .

2021-10-27 20:15:15 115 1

原创 实现双向链表(带傀儡节点)

基本思路:对于链表没说带傀儡节点或者虚拟节点,这个链表没有真正的头结点,但是我们把第一个节点叫做头结点,它起到标识的作用,标识这个链表的头结点。这个头结点的位置随时可能发生这变化,是不固定的,之后通过这个头结点我们要完成一些链表的增删查改。如果带傀儡节点这个节点的位置是固定的,那么以后我们操作链表就以这个傀儡节点作为头结点,完成我们的一些基本的增删查改操作。代码实现:class ListNode {//建立一个节点 public int val; public ListNod

2021-10-26 18:04:16 128

原创 关于单链表的习题练习(牛客网)(力扣)

//点击标题可以到达题目的地址。1、给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 nullpublic class LinkedList { public LinkedNode head; public LinkedNode detectCycle() { LinkedNode fast = this.head; LinkedNode slow = this.head; while (fast != null &

2021-10-25 21:26:24 116

原创 关于单链表的一些代码题

1、删除链表中等于给定值val的所有节点public class LinkedList { public LinkedNode head; public void removeAllVal(int val) { if (this.head == null) {//判断链表是否为空 return ; } LinkedNode prev = this.head; Linke...

2021-10-24 18:26:20 107

原创 认识单链表

链表的结构非常多样,以下情况组合起来就有8种链表结构:单向、双向带头、不带头循环、非循环链表的实现(单链表,不带头,非循环)class Node { public int val; public Node next; public Node(int val) { this.val = val; }}public class MyLinkedList { public Node head; public void .

2021-10-23 23:59:22 34

原创 时间复杂度和空间复杂度

复杂度是用来衡量算法的效率的,复杂度越低,效率越高。时间复杂度:算法中的基本操作的执行次数,为算法的时间复杂度。1、 请计算一下func1基本操作执行了多少次?void func1(int N){int count = 0;for (int i = 0; i < N ; i++) { for (int j = 0; j < N ; j++) { count++; }}for (int k = 0; k &l...

2021-10-22 17:13:18 77

原创 认识顺序表

一、概念及结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:静态顺序表:使用定长数组存储。动态顺序表:使用动态开辟的数组存储。二、接口实现我们来实现一个动态顺序表.import java.util.Arrays;public class MyArrayList { public int[] elem;//null public int usedSize; p.

2021-10-21 19:23:53 72

原创 关于对类和对象的认识

一、一个类可以产生无数的对象,类就是模板,对象就是具体的实例。1.类中定义的属性,大概分为几类:类属性,对象属性。2.其中被static所修饰的数据属性称为类属性, static修饰的方法称为类方法,特点是不依赖于对象,我们只需要通过类名就可以调用其属性或者方法。3.静态代码块优先实例代码块执行,实例代码块优先构造函数执行。4.this关键字代表的是当前对象的引用。并不是当前对象。二、对类和对象的代码练习1、编写一个类Calculator,有两个属性num1,num2,这两个数据的值,不能在定.

2021-10-20 19:09:51 133

原创 初步认识类和对象

java是一个面向对象的语言。面向过程: 1.把冰箱打开 2. 把大象放入 3. 冰箱关起来 面向对象: 打开冰箱,储存,关闭都是对冰箱的操作,是冰箱的行为。冰箱就是一个对象,所以只要操作冰箱所具备的功能,都要定义在冰箱中。开发时:找对象,建对象,用对象,并维护对象之间的关系。class Cat {public int age;//字段public String name;public String sex;public void eat(){ System.out

2021-10-19 18:17:15 46

原创 1、描述输入3科成绩,然后把三科成绩输出,成绩为整数形式。输入描述:一行,3科成绩,用空格分隔,范围(0~100)。输出描述:一行,把3科成绩显示出来,输出格式详见输出样例。(牛客网)

输入:60 80 90输出:score1=60,score2=80,score3=90代码示例:import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int [] score = new int [3]; for (int i = 0 ; i <...

2021-10-18 21:34:03 677

转载 ​二进制数、八进制数、十六进制数​转换

有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。个位,N=1;十位,N=2。举例:110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D1、十进制数转二进制数、八进制数、十六进制数方法是相同的,即整数部分用除基取余的算法

2021-10-17 22:10:50 461

原创 数组的使用

一、数组作为方法的返回值。代码例子:1、数组转字符串:public static String myToString(int[] array ) { //以字符串形式打印数组 if (array == null) return "null"; if (array.length == 0 ) return "[]"; String ret = "["; for (int i = 0; i < array.l

2021-10-16 19:54:26 49

原创 初步认识并使用递归和数组

递归的概念:一个方法在执行过程中调用自身, 就称为 "递归".递归相当于数学上的 "数学归纳法", 有一个起始条件, 然后有一个递推公式.例如: 1、求Fibonacci数列第n项public static int fas1 (int n) { if (n == 0 || n == 1 || n == 2) { return n; } return fas1(n - 1) + fas1(n - 2);}public static void ma

2021-10-15 19:06:54 109

原创 方法的使用:

方法就是一个代码片段. 类似于 C 语言中的 "函数".方法存在的意义:1. 是能够模块化的组织代码(当代码规模比较复杂的时候).2. 做到代码被重复使用, 一份代码可以在多个位置使用.3. 让代码更好理解更简单.4. 直接调用现有方法开发, 不必重复造轮子.代码示例:1、编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序import java.util.Scanner;publ.

2021-10-14 20:23:44 37

原创 java的循环及其方法

一些代码例子:1、//打印1~100的和 public static void main1(String[] args) { int i = 1; int sum = 0; while(i <= 100){ sum += i; i++; } System.out.println(sum); }2、//求5的阶乘 public static v...

2021-10-13 19:50:22 210

原创 Java基本数据类型和运算符

1.数据类型:2.引用类型举例及其转义字符:public static void main1 (String[]args){ String str = "小猫";//String是引用类型 String tr = "\"asdf\"";// \"是转义字符,转义为" String t = "\\123\\";// \\转义为\ String sr = "\'qwe\'";// \'转义为' System.out.println(str);

2021-10-12 21:46:21 60

原创 Java基础语法

初步认识Java;public class Test{ 类名和文件名要一致,且采用大驼峰命名法 public static void main(String[] args) { main方法 System.out.println("hello"); 打印 }}数据类型;1、int类型public class Test{public static void main2(String[] args) { ...

2021-10-11 20:20:35 95 1

空空如也

空空如也

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

TA关注的人

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