![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 57
涛&宇
这个作者很懒,什么都没留下…
展开
-
面经笔记12-4
同步异步、阻塞非阻塞答:同步指的是主程序必须接受到调用程序结果后才能继续执行。异步则指调用程序后立即返回, 主程序继续向下执行,被调用程序执行完后通过消息、回调等机制通知主程序。阻塞指的是被调用程序没有返回前,当前线程暂时被挂起,等待程序返回。非阻塞指的是在不能立刻得到调用结果前,当前线程不会被阻塞。同步异步强调消息通信机制,阻塞非阻塞强调主程序状态。同步调用时主程序仍处于激活状态只是没有返回值。阻塞调用主程序暂时被挂起。直接搜集面经答案,打印出来背可能更快。...原创 2021-12-04 10:22:48 · 951 阅读 · 0 评论 -
面经笔记12-1
B+ B树 红黑树区别答:二叉搜索树,越平衡搜索速度越接近二分查找(ologn),但是当插入的元素为连续增大或减少时,会退化为线性结构(on)。平衡二叉搜索树(AVL),每个节点的左右子树高度差的绝对值小于等于1。这就确保了不会退化为线性结构,确保了时间复杂度为ologn。但是在数据库读取中,以树为数据结构存储数据时,树有多高意味着要读取多少次IO,将数据从磁盘中读取到内存中很耗时,搜索性能低。B树称为平衡多路搜索树,每个结点可以存储多个值,每个结点的值按从左到右递增顺序存放,读取时直接将整个结点原创 2021-12-03 15:21:56 · 491 阅读 · 0 评论 -
面经笔记2021-11-30
首先记录一下markdown语法, - 是列表,#表示标题。虚函数答:虚函数的语法是在函数声明前加上virtual关键词。虚函数的作用时避免父类引用指向子类对象时子类对象调用父类成员函数的问题。虚函数实现的底层机制是vfptr和vftable。当一个函数被声明为虚函数时,父类对象的底层维护的是一个虚函数表,虚函数表存储了成员函数的地址, 通过虚函数指针访问。当子类重写父类虚函数时,虚函数表也会被重写,更换为子类成员函数的地址,这样当子类对象利用vfptr访问的成员函数对应的就是子类的成员函数。原创 2021-11-30 20:37:50 · 319 阅读 · 0 评论 -
markdown操作指南
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-11-30 15:54:36 · 973 阅读 · 0 评论 -
leetcode——树-2021-02-05
题目100.相同的树前序遍历两棵树,比较对应节点值是否完全相等- ```java /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; }原创 2021-02-05 11:48:29 · 52 阅读 · 0 评论 -
KMP算法 2021-02-02
KMP算法画了一晚上和一上午时间研究了一下KMP算法该算法主要功能是匹配字符串,由于传统匹配方法主串存在指针回溯问题,针对此进行改进。先研究子串性质首先,字串与主串匹配时第一个不同的字符我们叫当前位置,《大话数据结构》举了两个例子,很有启发性。如下图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Z5lw7bJ-1612249849327)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images原创 2021-02-02 15:13:19 · 69 阅读 · 0 评论 -
leetcode刷题笔记——排序 2021-02-01
题目242.有效的字母异位词class Solution { public boolean isAnagram(String s, String t) { if(s.length()!=t.length()) return false; List<Character> list=new ArrayList<>(); for(int i=0;i<s.length();i++){ list.原创 2021-02-01 20:51:23 · 137 阅读 · 0 评论 -
leetcode链表 2021-01-30
题目237.删除链表中的结点/**class Solution { public void deleteNode(ListNode node) { node.val=node.next.val; node.next=node.next.next; }}题目876.链表的中间节点定义一个指向当前节点的curr指针,如果curr不为空,则把值传到列表中,循环结束后判断列表长度,奇数则n/2+1,偶数也为n/2+1,返回该原创 2021-01-30 22:07:21 · 92 阅读 · 0 评论 -
leetcode——链表2021-01-29
题目83.删除排序链表中的重复元素/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this原创 2021-01-29 21:30:05 · 88 阅读 · 0 评论 -
leetcode之贪心算法-2021-01-28
题目944.删列造序循环遍历A,判断每一个字符串是否为倒序题目有问题,非降序语义不明class Solution { public int minDeletionSize(String[] A) { /*int ans=0; for(int i=0;i<A[0].length();i++){ for(int j=0;j<A.length-1;j++){ if(A[j].charAt(i)原创 2021-01-28 20:31:22 · 88 阅读 · 0 评论 -
leetcode——模拟行走机器人2021-01-27
题目874.模拟行走机器人用x表示机器人横坐标,y表示纵坐标,commands数组,-1之前若y+,则x+,x+转为y-,y-转为x-,x-转为y+-2若之前y+则x-,x- y- ,y- x+ ,x+ y+其他情况则根据之前的方向加x,若加完大于等于障碍物,则到障碍物-1位置,执行转向指令。代码还没来得及加注释,不过挺好看懂的其实,思路清晰今天debug了一晚上,主要是两点问题今天debug了一晚上,主要是两点问题路径问题,之前的方向指针没有if el原创 2021-01-27 23:43:25 · 158 阅读 · 0 评论 -
leetcode刷题笔记——贪心算法 2021-01-26
题目122.买卖股票的最佳时机[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xxf2IzyD-1611670606460)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1611647557679.png)]class Solution { public int maxProfit(int[] prices) { int ans=0; for(int i=0原创 2021-01-26 22:17:35 · 174 阅读 · 0 评论 -
leetcode刷题笔记 2021-01-26
题号13.罗马数字转整数import java.util.*;class Solution { public int romanToInt(String s) { int sum=0; int finalnum=0; for(int i=0;i<s.length()-1;i++){ int prenum=getValue(s.charAt(i)); int num=getValue(s.ch原创 2021-01-26 22:16:23 · 194 阅读 · 0 评论 -
leetcode刷题笔记 2021-01-25
题目155.最小栈class MinStack { Deque<Integer> xstack; Deque<Integer> minStack; /** initialize your data structure here. */ public MinStack() { xstack=new LinkedList<Integer>(); minStack=new LinkedList<Inte原创 2021-01-25 21:45:42 · 186 阅读 · 1 评论 -
leetcode刷题笔记 2021-01-24
题号13.罗马数字转整数import java.util.*;class Solution { public int romanToInt(String s) { int sum=0; int finalnum=0; for(int i=0;i<s.length()-1;i++){ int prenum=getValue(s.charAt(i)); int num=getValue(s.ch原创 2021-01-24 21:55:27 · 161 阅读 · 0 评论 -
《java从入门到精通》——数据库操作 2020-01-23 java学习笔记
20数据库操作20.1数据库基本知识20.1.1什么是数据库数据库是一种存储结构,它允许使用各种格式输入、处理和检索数据,不必在每次需要数据的时候重新输入他们。特点:实现数据共享减少数据的冗余度数据的独立性数据实现集中控制数据一致性和可维护性安全性控制、完整性控制、并发控制、故障的发现和恢复是数据管理的高级阶段,由文件管理系统发展起来基本结构分为三个层次:物理数据层概念数据层逻辑数据层20.1.2数据库的种类及功能层次型:对数据的各项操作都很困难网状型:原创 2021-01-23 17:46:48 · 323 阅读 · 0 评论 -
《java从入门到精通》——网络通信 2020-01-22 java学习笔记
19网络通信19.1网络程序设计基础网络程序设计是指编写与其他计算机进行通信的程序19.1.1局域网与因特网Local Area Network,LAN 局域网 一群通过一定形式连接起来的计算机Wide Area Network,WAN 由LAN延伸到更大范围Internet 由无数LAN和WAN组成19.1.2网络协议网络协议规定了计算机之间连接的物理、机械、电子等特征以及计算机之间的相互寻址规则、数据发送冲突的解决、长的数据如何分段传送与接受等。IP协议Internet原创 2021-01-22 21:33:35 · 113 阅读 · 0 评论 -
《java从入门到精通》——多线程 2020-01-21 java学习笔记
18多线程18.1线程简介并发,同时进行的活动,并发完成的每一件事情称为线程,多线程,非常复杂的机制,系统不同,Java多线程在每个操作系统的运行方式存在差异每个独立的程序都成为进程,一个进程可以用一个CPU时间片,一个进程又包含多个线程,会给每个线程分一小段程序执行时间,这样一个进程就可以具有多个并发执行的线程。18.2实现线程的两种方式实现线程两种方式:继承java.lang.Thread类和java.lang.Runnable接口18.2.1继承Thread类package原创 2021-01-21 21:39:03 · 109 阅读 · 0 评论 -
《java从入门到精通》——枚举类型2020-01-20 java学习笔记
17枚举类型与泛型17.1枚举类型17.1.1使用枚举类型设置常量package com.reflect;interface Constants{ public static final int Constants_A=1; public static final int Constants_B=12;}public class ConstantsTest { enum Constants2{//将常量放在枚举类型中,enum是定义枚举类型的关键字 C原创 2021-01-21 21:38:30 · 106 阅读 · 0 评论 -
《java从入门到精通》——反射 2020-01-19 java学习笔记
16反射16.1Class类与Java反射Class textFieldC=textField.getClass();//利用Class类的对象textFieldC,可以访问用来返回该对象的textField对象的描述信息。getField()和getMethods()方法依次获得权限为public的成员变量和方法时,将包含从父类中继承到的成员变量和方法。而getDeclaredFields()方法和GetDeclaredMethods()方法只是获得在本类中定义的所有成员变量和方法原创 2021-01-20 21:53:55 · 130 阅读 · 2 评论 -
《java从入门到精通》——I/O输入与输出 2020-01-19 java学习笔记
15 I/0输入输出15.1流概述流是一组有序的数据序列。根据操作类型分为输入流和输出流两种I/O流提供了一条通道程序,使用这条通道将源中的字节序列送到目的地,经常与磁盘文件的存取有关。程序 从指向源的输入流中读取源中的数据,源可以是文件、网络、压缩包或其他数据源输出流指向数据要到达的目的地,程序向输出流写入数据把信息传递到目的地。输出流的目标可以是文件、网络、压缩包、控制台和其他数据输出目标。15.2输入输出流java.io包所有输入流类都是InputStream或抽象类Reade原创 2021-01-20 11:28:51 · 97 阅读 · 0 评论 -
家庭收支记账软件
昨天没有更新,是因为做到晚上十点太困就睡觉去了,其实昨天收获还挺多的,完成了学习编程以来的第一个实例,还是很有成就感的。 该软件可实现功能列表化显示、以及收支记录及显示。 只是只能在运行时输入,程序结束数据丢失,后续可通过数据流将数据写出到相应文件中保存,这个功能以我目前只是可以实现。等到下次运行软件只需将数据导入即可。package com.IO;import java.util.*;public class FamilyEcomomySoftwar原创 2021-01-20 11:25:44 · 124 阅读 · 0 评论 -
家庭收支记账软件
昨天没有更新,是因为做到晚上十点太困就睡觉去了,其实昨天收获还挺多的,完成了学习编程以来的第一个实例,还是很有成就感的。 该软件可实现功能列表化显示、以及收支记录及显示。 只是只能在运行时输入,程序结束数据丢失,后续可通过数据流将数据写出到相应文件中保存,这个功能以我目前只是可以实现。等到下次运行软件只需将数据导入即可。package com.IO;import java.util.*;public class FamilyEcomomySoftware { static ...原创 2021-01-20 11:23:29 · 106 阅读 · 0 评论 -
《java从入门到精通》——集合类 2020-01-18 java学习笔记
14 集合类14.1集合类概述集合类又被称为容器,存放对象的引用,长度可变常见的有List集合、Map集合、Set集合List集合、Set集合实现了Collection接口java.lang.ObjectMapHashMapTreeMapCollectionSetHashSetTreeSetListArrayListLikedList14.2Collection接口Collection接口是层次结构中的根接口,构成Collection的原创 2021-01-18 21:23:12 · 95 阅读 · 0 评论 -
《java从入门到精通》——异常处理 2020-01-18 java学习笔记
12 异常处理12.1异常概述算术异常(ArithmeticException)、空指针、数组溢出等等。当某一方法发生错误,这个方法创建一个对象并且把它传递给运行时系统,这个对象是异常对象。异常处理机制,将非正常情况下的处理代码与程序的主逻辑分离,在编写代码主流程的同时在其他地方处理异常。12.2处理程序异常错误在当前方法中捕捉处理异常将异常向上抛出由方法调用者处理12.2.1错误NumberFormatException异常12.2.2捕捉异常try-catch语句原创 2021-01-18 15:56:37 · 101 阅读 · 0 评论 -
《java从入门到精通》——接口、继承和多态 2020-01-17 java学习笔记
核心技术第十章 接口、继承和多态10.1 类的继承package com;public class Test { public Test(){ //构造方法 } protected void doSomething(){ //成员方法 } protected Test doIt(){ //方法返回值类型为Test类型 return new Test(); }}package com;原创 2021-01-18 15:51:33 · 127 阅读 · 1 评论 -
《java从入门到精通》——类的高级特性 2020-01-18 java学习笔记
11 类的高级特性11.1包管理类文件的机制11.1.1类名冲突将两个名字相同需实现不同功能的类放在不同的包中11.1.2完整的类路径java.lang.Mathjava.long是包名,Math是类的名称java.util.Date date=new java.util.Date();java.sql.Date date2=new java.sql.Date(233);同一个包中类相互访问可以不指定包名11.1.3创建包在类中定义包名:package原创 2021-01-18 15:49:15 · 106 阅读 · 0 评论