- 博客(157)
- 收藏
- 关注

原创 告别枯燥理论,直观体验HTTP协议的细节
在HTTP中,定义了多种请求类型,通常我们关心的只有GET请求和POST请求。只要在Web浏览器上输入一个URL,浏览器就将基于该URL向服务器发送一个GET请求,以告诉服务器获取并返回什么资源。下面来细究HTTP的结构细节:HTTP的结构分为客户端发送的请求和服务器返回来的响应,先来看一下HTTP的请求和响结构:a:请求规范包含:HTTP请求报文由3部分组成(请求行+请求头+请求体)...
2020-05-02 09:22:40
194

原创 MySql优化
数据库本质是一个结构化的存储在硬盘中的文件。其中一个文件是存储表的结构的。Create table定义的表信息。另一个文件是存储我们插入表中的数据。Insert into插入表中的信息。根据引擎不同可能存在第三个文件,这个文件中存储的是索引。如果查询数据:select * from user where id = 3;默认会全表遍历,直到找到id是3的行。速度很慢,因此优化的原则就是尽量...
2020-04-29 11:17:36
177
原创 git常用命令
常用命令:第一步:git pull ssh/网址 --把代码拉到本地 一顿操作(修改代码)............第二步:创建自己的分支并同步到远程git checkout -b 分支名git branch --set-upstream-to=origin/master --同步到远程仓库第三步:git add .git commit -m "提交说明"git push origin HEAD其他一些常用的操作:git status --查看状态:在那个分支上面g.
2022-08-22 17:51:00
23370
原创 接口与多重继承
为了生成与一个特定的接口(或一组接口)相符的类,要使用 implements(实现)关键字。我们要表达的意思是“接口看起来就象那个样子,这儿是它具体的工作细节”。下面是Java 的“多重继承”的例子:interface CanFight { void fight();}interface CanSwim { void swim();}interface CanFly { void fly();}class ActionCharacter { public vo
2022-04-14 16:37:20
431
原创 构造器执行顺序Java
Java 构造器执行顺序结论:父类静态代码块>子类静态代码块>父类的构造代码块>父类的构造函数>子类构造代码块>子类构造函数举个例子:public class HelloB extends HelloA { public HelloB(){ System.out.println(" HelloB constructor"); } { System.out.println("helloa 构造器");//构造代码块
2022-04-14 09:46:15
939
原创 ACM 构造二叉树输入用例
ACM 构造二叉树输入用例在今年的秋招面试中,面试官要构造二叉树,输入用例就给了一个数组,怎么就能构造成二叉树呢?(可以先跳过,如果出现了类似的情况再来看)之后自己java写了一个完整的可执行程序。书写的时候出了两处bug:构造二叉树的函数只返回了root节点,而不是整个二叉树;当输入的数组个数为偶数时,出现错误。原因:1.root和二叉树失去了联系:root=new TreeNode();2.数组不能为偶数,因为数组表示二叉树默认这棵二叉树是完美的完整代码如下:package&nbs
2022-01-23 23:06:55
1480
原创 多路复用IO,select poll,Epoll
什么是IO多路复用?怎么实现?(select/poll/epoll)IO多路复用(IO Multiplexing)是指单个进程/线程就可以同时处理多个IO请求。实现原理:用户将想要监视的文件描述符(File Descriptor)添加到select/poll/epoll函数中,由内核监视,函数阻塞。一旦有文件描述符就绪(读就绪或写就绪),或者超时(设置timeout),函数就会返回,然后该进程可以进行相应的读/写操作。2.select/poll/epoll三者的区别?select:将文件描述符放入.
2021-05-19 19:25:52
24087
1
原创 常用排序算法
快排public static void quick(int []nums,int left,int right){ if(nums.length==0||nums==null)return ; if(left>right) return ; int l=left,r=right,key=nums[left]; while(l!=r){ while(nums[r]>.
2021-05-12 20:46:50
113
原创 排序算法
快速排序class Solution { public int[] sortArray(int[] nums) { if(nums.length==0||nums==null)return null; int left=0; int right=nums.length-1; quick(nums,left,right); return nums; .
2021-04-02 21:37:44
94
原创 SpringMVC
一.SpringMVC原理图1.DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。我们假设请求的url为 : http://localhost:8080/SpringMVC/hello如上url拆分成三部分:http://localhost:8080服务器域名SpringMVC部署在服务器上的web站点hello表示控制器通过分析,如上url表示为:请求位于服务器localhost:808
2021-03-06 09:33:36
101
原创 Spring
1.spring是什么spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。2.IOC控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法。没有IoC的程序中 , 我们使用面向对象编程 , 对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,个人认为所谓控制反转就是:获得依赖对象的方式反转了。控制反转是一种通过描述(X
2021-03-01 21:25:03
203
原创 QT中的QString,char*,QByteArray之间的相互转化
把QString转化为字节数组QByteArray QByteArray a= buf.toUtf8(); //QByteArray->char *char *b= a.data();char *->QString cahr *p="26"; QString s=new QString(p);
2021-01-14 15:11:45
356
原创 qt编译错误Error while building/deploying project (kit: Desktop Qt 5.12.0 MSVC2017 32bit) The
路径不能有中文!啊啊啊啊啊,笑出鸡叫,原来真的就一个中文路径的事,编译通过了,感谢感谢。 Qt编译不支持中文路径真是……
2021-01-11 20:26:25
4060
原创 QT打包发布成window可执行软件
把工厂模式切换到release模式下,并编译2.找到release模式下构建的文件夹3.把生成的exe程序放到新建文件夹中(不要有中文,我放在了桌面上)4.封包操作:找到QT的黑窗口5。
2021-01-07 21:39:31
305
原创 图解计算机网络七层的功能
什么是TCP?为什么是三次握手?面向连接的(连接:客户端和服务器双方有资源为对方服务),可靠的传输协议七层:->应用层:下达命令(协议:http ftp ssh)->传输层:确保数据可靠传输(tcp,udp)->网络层:找到下一跳(网关)->链路层:找到MAC地址->物理层...
2020-11-10 20:35:06
302
原创 基金投资
买基金的前提:1.不 要 借 钱 炒 基 金 , 不 要 碰 p2p 和 网 贷 2.投 资 一 定 是 拿 闲 散 资 金 进 行 投 资 3.每 个 人 入 场 时 间 和 持 有 时 间 不 一 样 。 不 要 盲 目 去 跟 随 小 瑜 哥 和 其 他 大 v 4.基 金 投 资 是 一 个 长 期 过 程 大 于 3 年怎么做到低吸高抛?1.涨的时候看着就行,低的时候,放心大胆的买2.看淡涨跌:涨的时候开心死了,大吃大喝,跌的时候,难受的一批3.基金要拿住,不要频繁交易.
2020-11-10 16:12:06
371
1
原创 树的增删改查
package Tree;import java.util.Stack;//定义树节点class TreeNode{ int val; TreeNode left; TreeNode right; TreeNode(int x){ val=x; }}//我想要跟链表一样实现一个树的增删改查//1.建立一个二叉树TreeBuild();//2.增 add(TreeNode root);//3.删delete(TreeNode root
2020-11-07 09:23:01
950
原创 反转链表
class Solution { public ListNode reverseList(ListNode head) { ListNode cur=null; ListNode pre=head; while(pre!=null){ ListNode last=pre.next; pre.next=cur; cur=pre; pre=last;
2020-11-03 21:35:02
69
原创 合并两个链表
public void meger(ListNode l1,ListNode l2){ ListNode l1_tmp; ListNode l2_tmp; while (l1 != null && l2 != null) { l1_tmp = l1.next; l2_tmp = l2.next; l1.next = l2; l1 = l1_tm.
2020-11-03 21:34:31
98
原创 leetcode-80. 删除排序数组中的重复项 II
题目:给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。int i=0;for(int n:nums){ if(i<2||n>nums[i-2]){ nums[i++]=n; }}拓展:此方法可是实现每个元素最多出现K次,则代码是:int i=0;for(int n:nums){ if(i<k||
2020-11-03 10:49:03
83
原创 找到链表的中点
找中点其实很好操作的:一个快指针,一个慢指针,每次fast指针比慢指针多走一步,那么当快指针到链表终止时,slow指针刚刚好就是链表的中点就是因为这哥代码害我搞了一天,如果按这样子的话,fast指针始终只是比慢指针slow多走一步,不可能实现找中点的!fast=slow.next应该是:fast=fast.next.next错误示范:class Solution { public TreeNode sortedListToBST(ListNode head) {
2020-11-02 19:16:32
492
原创 leetcode--2两数相加
原题链接这题思路很简单,分为三个步骤:获取l1和l2的长度,并对短的链表进行补零两个对应节点的值相加注意:在进行两个对应节点的值相加时,链表末尾相加后,可能会大于10,这个时候需要在添加一个数代码:class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode p1 = l1; ListNode p2=l2; //1.获取l1和l2
2020-10-23 08:09:43
115
原创 leetcode234
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ /* 为什么反转链表不行,因为反转的时候,原链表也也跟着改变了,永远返回true */class Solution { public boolean isPalindrome(ListN
2020-10-22 19:02:51
83
原创 leetcode15三数之和
参考文章代码:自己代码参考代码:class Solution { public List<List<Integer>> threeSum(int[] nums) {// 总时间复杂度:O(n^2) List<List<Integer>> ans = new ArrayList<>(); if (nums == null || nums.length <= 2) return ans;
2020-10-12 21:10:12
286
原创 continue在for循环中的应用java
int n;for(n=1;n<=10;n++){ if(n%3==0){ continue;//执行到continue的时候,后面的代码就不执行了,直接进入下一个循环} System.out.println(n); System.out.println(n);}
2020-10-02 15:29:46
1102
原创 自己实现String.replace方法
public class replacestring { //测试 public static void main(String[] args) { String s=" abgabelabab y"; String replace = replace(s, " ", "t"); System.out.println(replace); } //实现功能:把str这个字符串,把要换的target,换成你想要的repl
2020-09-29 09:21:45
464
原创 摩根投票法
先给出结论:摩根投票法:candicate就是数组中出现最多地数----->candidateint count=0,candidate=0; for(int n:nums){ if(count==0)candidate=n; count+=(n==candidate)?1:-1; }具体得摩根投票法是怎么来的?请看:Boyer-Moore 投票算法思路如果我们把众数记为 +1+1,把其他数记为 -1−1,将
2020-09-25 21:15:03
465
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人