- 博客(83)
- 资源 (1)
- 收藏
- 关注
原创 【备战秋招】操作系统
操作系统基本概念进程,线程两者区别进程调度算法进程同步进程通信死锁必要条件处理方法银行家算法内存管理页面置换算法基本概念并发并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。共享共享是指系统中的资源可以被多个并发进程共同使用。有两种共享方式:互斥共享和同时共享。虚拟虚拟技术把一个物理实体转换为多个逻辑实体。异步异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。进程,线程进
2020-08-13 09:34:24 314
原创 【备战秋招】Redis
Redis概述数据类型STRINGLISTSETHASHZSET数据结构持久化RDB 持久化AOF持久化事务事件复制概述Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。使用场景计数器缓存查找表DNS 记录就很适合使用 Redis 进行存储消息队列
2020-08-12 23:24:07 269
原创 【备战秋招】数据库
数据库事务并发一致性问题封锁隔离级别多版本并发控制范式Mysql事务事务ACID原子性(Atomicity)事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。回滚可以用回滚日志来实现,回滚日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。一致性(Consistency)数据库在事务执行前后都保持一致性状态。在一致性状态下,所有事务对一个数据的读取结果都是相同的。隔离性(Isolation)一个事务所做的修改在最终提交以前,对其它事务是不可见
2020-08-12 22:00:36 229
原创 【备战秋招】Java并发
并发线程状态转换线程使用基础线程机制ExecutorDaemonsleep()yield()interrupted()互斥同步synchronizedReentrantLock线程协作join()wait() notify() notifyAll()await() signal() signalAll()JUCCountDownLatchCyclicBarrierSemaphoreFutureTaskBlockingQueueForkJoinJMM线程安全不可变互斥同步非阻塞同步锁优化线程状态转换
2020-08-12 17:40:32 276
原创 【备战秋招】容器
容器CollectionSetListQueueMapArrayListVectorCopyOnWriteArrayListLinkedListHashMapConcurrentHashMapLinkedHashMapWeakHashMap容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。CollectionSetTreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不
2020-08-12 10:17:23 266
原创 【备战秋招】Java虚拟机
Java 虚拟机运行时数据区垃圾收集Serial收集器ParNew收集器Parallel Scavenge收集器Serial Old收集器Parallel Old收集器CMS收集器G1收集器内存分配与回收策略类加载机制**加载(Loading)****验证(Verification)****准备(Preparation)****解析(Resolution**)**初始化(Initialization**)类加载器双亲委派模型运行时数据区程序计数器 线程私有,唯一不存在OOM区域记录正在执行的虚
2020-08-11 21:30:18 447 1
原创 【备战秋招】计算机网络
计算机网路基本概念链路层PPP协议CSMA/CD 协议基本概念ISP互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向 ISP 缴纳一定的费用就可以接入互联网。主机之间的通信方式客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。对等(P2P):不区分客户和服务器。交换电路交换电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信的过
2020-08-11 14:37:32 280
原创 【备战秋招】堆排序
堆排序堆构造过程堆的底层是由数组实现,从a[K]向上一层,就令K等于K/2, 向下一层就令K等于2K,和2K+1, 因此数组的索引一半处之后为叶子节点,无需做处理,因此我们从索引一半处,做下沉.堆排序将堆中最大元素和未排序元素中最大索引处元素交换public class HeapSort { //判断heap堆中索引i处的元素是否小于索引j处的元素 private static boolean less(Comparable[] heap, int i, int j)
2020-08-08 23:06:04 133
原创 【备战秋招】Web开发
Web开发ServletMVCFilterListener对于Browser来说,请求页面的流程如下:与服务器建立TCP连接;发送HTTP请求;收取HTTP响应,然后把网页在浏览器中显示出来。编写HTTP Server var reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); var writer = new BufferedWriter(new
2020-08-08 11:26:41 281
原创 【备战秋招】图
图概念图的实现图的搜索深度优先搜索(DFS)广度优先搜索(BFS)概念定义: 图是由一组顶点和一组能够将两个顶点相连的边组成的特殊的图自环:即一条连接一个顶点和其自身的边平行边:连接同一顶点的两条边图的分类按照连接两个顶点的边的不同,可以把图分为以下两种:无向图: 边仅仅连接两个顶点,没有其他含义有向图: 边不仅仅连接两个顶点,并且具有方向相关术语相邻顶点度子图路径环连通图非连通图存储结构邻接矩阵邻接表图的实现public class Gra
2020-08-05 16:40:04 165
原创 【备战秋招】归并排序
归并排序public class Merge { //归并需要的辅助数组 private static Comparable[] assist; //比较元素v是否小于w private static boolean less(Comparable v,Comparable w){ return v.compareTo(w)<0; } //数组元素i和j交换位置 private static void exch(Compa
2020-08-05 14:15:09 166
原创 关于servlet的@WebServlet注解的使用
Servlet的传统配置方式web.xml中的servlet配置 <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.xupt.Servlet.MyServlet</servlet-class> </servlet> <servlet-mapping> <serv
2020-08-04 09:26:52 1217 1
原创 【备战秋招】网络编程
网络编程网络编程TCPUDP发送接收EmailHTTPRMI远程调用网络编程计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。IP地址在互联网中,一个IP地址用于唯一标识一个网络接口(Network Interface)。一台联入互联网的计算机肯定有一个IP地址,但也可能有多个IP地址。IP地址分为IPv4和IPv6两种:IPv4采用32位地址,而IPv6采用128位地址.IP地址又分为公网IP地址和内网IP地址
2020-08-03 20:58:14 337
原创 【备战秋招】JDBC
JDBCJDBCJDBC查询SQL注入数据类型JDBC更新JDBC事务JDBC BatchJDBC连接池目前广泛使用的关系数据库:Oracle;SQL Server;DB2;SybaseMySQLPostgreSQLsqliteJDBC什么是JDBC?JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。使用Java程序访问数据库时,Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接
2020-08-03 00:00:11 247
原创 【备战秋招】IO
IOFile对象文件和目录创建和删除文件遍历文件和目录InputStream缓冲阻塞读取classpath资源OutputStreamFilter模式(装饰器模式)序列化反序列化ReaderFileReaderInputStreamReaderWriterPrintStreamFile对象在计算机系统中,文件是非常重要的存储方式。Java的标准库java.io提供了File对象来操作文件和目录。要构造一个File对象,需要传入文件路径:File f = new File("C:\\Windows\\
2020-08-01 16:07:09 188
原创 【备战秋招】代理模式
代理模式静态代理动态代理CGlibAOP动态代理方式Cglib实现方法Java 代理模式实现方式,主要有如下五种方法静态代理,工程师编辑代理类代码,实现代理模式; 在编译期就生成了代理类。JDK 动态代理,通过jdk提供的工具方法 Proxy.newProxyInstance动态构建全新的代理类(继承Proxy类,并持有InvocationHandler接口引用 )字节码文件并实例化对象返回。(jdk动态代理是由java内部的 反射机制 来实例化代理对象,并代理的调用委托类方法)基于CGli
2020-07-30 18:27:31 167
原创 【备战秋招】反射
反射Class类获取Class实例常用方法动态加载访问字段调用方法调用方法获取继承关系动态代理Class类除了int等基本类型外,Java的其他类型全部都是class(包括interface).class(包括interface)的本质是数据类型(Type)。而class是由JVM在执行过程中动态加载的。JVM在第一次读取到一种class类型时,将其加载进内存。每加载一种class,JVM就为其创建一个Class类型的实例,并关联起来。注意:这里的Class类型是一个名叫Class的class。pu
2020-07-30 11:05:10 178 1
原创 Leetcode43 1~n 整数中 1 出现的次数
求出1 ~ 13的整数中1出现的次数,并算出100 ~ 1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。解题思路将 1 ~ n 的个位、十位、百位、…的 1出现次数相加,即为 1 出现的总次数。某位中 1 出现次数的计算方法:根据当前位 cur 值的不同,分为以下三种情况:当 c
2020-07-29 11:32:48 245 1
原创 【数据结构与算法】树
树基本定义二叉树二叉查找树创建二叉查找树遍历前序遍历中序遍历后序遍历层序遍历二叉树的最大深度平衡树2-3查找树查找插入红黑树基本定义树具有以下特点:1.每个结点有零个或多个子结点;2.没有父结点的结点为根结点;3.每一个非根结点只有一个父结点;4.每个结点及其后代结点整体上可以看做是一棵树,称为当前结点的父结点的一个子树;结点的度:一个结点含有的子树的个数称为该结点的度;叶结点:度为0的结点称为叶结点,也可以叫做终端结点分支结点:度不为0的结点称为分支结点,也可以叫做非终端结点结
2020-07-23 23:21:25 317
原创 【数据结构与算法】堆
堆堆堆排堆堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。如果一个结点的位置为k,则它的父结点的位置为[k/2],而它的两个子结点的位置则分别为2k和2k+1。每个结点都大于等于它的两个子结点构造方法Heap(int capacity):创建容量为capacity的Heap对象 public Heap(int capacity) { this.items= (T[]) new Comparable[capacity+1];
2020-07-23 22:31:44 5004
原创 【备战秋招】多线程
多线程线程与进程线程创建继承Thread类实现Runnable接口实现Callable接口常用API线程与进程一个进程可以包含一个或多个线程,但至少会有一个线程。操作系统调度的最小任务单位其实不是进程,而是线程。创建进程比创建线程开销大,尤其是在Windows系统上进程间通信比线程间通信要慢,因为线程间通信就是读写同一个变量,速度很快。多进程稳定性比多线程高,因为在多进程的情况下,一个进程崩溃不会影响其他进程,而在多线程的情况下,任何一个线程崩溃会直接导致整个进程崩溃。一个Java程序实
2020-07-22 11:51:34 161
原创 Leetcode5 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”动态规划 public String longestPalindrome(String s) { int len=s.length(); if (len<2){ return s;
2020-07-13 16:28:29 158
原创 Leetcode1 两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]class Solution { public int[] twoSum(int[] nums, int target) {
2020-07-13 13:22:44 167
原创 Leetcode 3 最长无重复子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。pu
2020-07-13 11:43:32 167
原创 Leetcode2 两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807/** * Definition for singly-link
2020-07-13 09:33:48 159
原创 GOF23种设计模式-工厂模式
工厂模式简单工厂模式工厂方法模式抽象工厂模式分析: 修改代码可以接受,但是如果我们在其它的地方也有创建Pizza的代码,就意味着,也需要修改,而创建Pizza的代码,往往有多处。思路: 把创建Pizza对象封装到一个类中,这样我们有新的Pizza种类时,只需要修改该类就可,其它有创建到Pizza对象的代码就不需要修改了.-> 简单工厂模式简单工厂模式简单工厂类public class SimpleFactory { //简单工厂模式 也叫 静态工厂模式 public st
2020-07-12 18:15:35 272
原创 GOF23种设计模式-代理模式
代理模式代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK代理、接口代理)和 Cglib代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴) 。静态代理代理对象与目标对象要实现相同的接口,然后通过调用相同的方法来调用目标对象的方法定义接口//接口public interf
2020-07-12 16:16:23 252
原创 GOF23种设计模式-建造者模式
建造者模式盖房项目需求需要建房子:这一过程为打桩、砌墙、封顶房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的.请编写程序,完成需求.将产品和产品建造过程解耦 => 建造者模式.建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。Product(产品角色): 一个具体的产品对象。Builder(抽象建造者):
2020-07-12 10:05:07 215
原创 GOF23种设计模式-单例模式
单例模式所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Mybatis的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够,这是就会使用到单例模式。单例模式有八种方式:饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方
2020-07-11 20:31:14 177
原创 剑指Offer(Java)---字符串
字符串50:字符流中第一个不重复的字符50:第一个只出现一次的字符19:正则表达式匹配20:表示数值的字符串61:扑克牌中的顺子58:翻转字符串58:左旋字符串5.替换空格50:字符流中第一个不重复的字符请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。数组 //Insert one char from stringstream
2020-07-10 21:46:18 238 1
原创 一文了解布隆过滤器
海量数据处理以及缓存穿透这两个场景让我认识了 布隆过滤器 ,我查阅了一些资料来了解它,但是很多现成资料并不满足我的需求,所以就决定自己总结一篇关于布隆过滤器的文章。希望通过这篇文章让更多人了解布隆过滤器,并且会实际去使用它!下面我们将分为几个方面来介绍布隆过滤器:什么是布隆过滤器?布隆过滤器的原理介绍。布隆过滤器使用场景。通过 Java 编程手动实现布隆过滤器。利用Google开源的Guava中自带的布隆过滤器。Redis 中的布隆过滤器。什么是布隆过滤器?布隆过滤器(Bloom Fi
2020-07-08 17:19:15 191
原创 Mysql进阶
MysqlMysql体系结构Innodb执行流程索引的作用以及优劣势索引的数据结构区分聚集索引,非聚集索引SQL优化案例Mysql体系结构connectors 用来支持各种语言和SQL的交互Management Serveices&Utilities 系统管理和控制工具,包括备份恢复,Mysql复制,集群等.Connection Pool 连接池,管理需要缓冲的资源,包括用户密码,权限等.SQL Interdace 用来接收用户的SQL命令,返回用户需要的查询结果Parser 用来解
2020-06-29 18:43:44 256
原创 JVM快速入门
JVM概念JVM内存区域垃圾回收算法引用类型概念基本概念JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互运行过程我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。① Java 源文件—->编译器—->字节码文件② 字节码文件—-&g
2020-06-25 15:05:41 220
原创 Web页面请求历程
Web页面请求历程OSI七层参考模型访问www.google.com过程计算机通过以太网电缆连接到学校的以太网交换机,交换机与学校的路由器相连。学校的路由器与一个ISP连接(comcast.net),DNS服务器驻留在comcast网络中。1️⃣计算机上的操作系统生成一个DHCP请求报文,并将这个报文放入具有目的端口67(DHCP服务器)和源端口68(DHCP客户)的UDP报文段,该报文段被放在一个具有广播IP目的地址(255.255.255.255)和源IP地址(0.0.0.0)的IP数据报中
2020-06-24 21:33:15 425
原创 1小时掌握git
Git版本控制环境配置Git基本理论Git项目搭建创建工作目录和常用指令Git文件操作使IDEA集成GitGit分支版本控制在工作中同一个项目会有不同版本,那么如何进行版本控制?版本控制是一种在开发的过程中用于管理我们对文件,目录,或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术.常见版本控制工具GitSVNCVSVSSTFSVisual Studio Online版本控制分类本地版本控制记录文件每次更新,可以对每个版本做一个快照,或记录
2020-06-20 02:40:00 190
原创 Spring MVC快速入门
概念MVC 全名是 Model View Controller,是模型(model)-视图(view) - 控制器(controller) 的缩写,是一种用于设计创建 Web 应用程序表现层的模式。MVC 中每个部分各司其职:Model(模型):通常指的就是我们的数据模型。作用一般情况下用于封装数据。View(视图):通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。通常视图是依据模型数据创建的。Controller(控制器):是应用程序中处理用户交互的部分。作用一般就是处
2020-06-19 16:46:06 211
原创 计算机网络总结
计算机网络基本概念组成方式工作方式功能组成分类性能指标分层结构OSI参考模型TCP/IP参考模型基本概念计算机网络:是一个将分散的,具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统.计算机网络是互连,自治的计算机集合功能:计算机网络具有以下功能:数据通信即连通性资源共享 硬件,软件,数据分布式处理多台计算机各自承担同一工作任务的不同部分,Hadoop平台提高可靠性替代机负载均衡组成方式硬件,软件,协议工作方式工作方式可分为 C
2020-06-09 02:21:55 1179
原创 面试官再问你 HashMap 底层原理,就把这篇文章甩给他看
前言HashMap 源码和底层原理在现在面试中是必问的。因此,我们非常有必要搞清楚它的底层实现和思想,才能在面试中对答如流,跟面试官大战三百回合。文章较长,介绍了很多原理性的问题,希望对你有所帮助~目录本篇文章主要包括以下内容:HashMap 的存储结构常用变量说明,如加载因子等HashMap 的四个构造函数tableSizeFor()方法及作用put()方法详解hash()方法,以及避免哈希碰撞的原理resize()扩容机制及原理get()方法为什么HashMap链表会形成死循环
2020-06-08 12:49:16 493 1
dark-horse-arithmetic.rar
2020-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人