自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实习经验分享贴

写在前面本来打算获得实习offer就写一篇经验总结的,但是因为疫情期间在家,并且公司那面入职时间的更改,使得我在家躺了一个多月。马上要入职了,需要调整下状态,趁此机会写写自己这几个月来的准备面试的心得体会。我从19年11月初开始准备,到今年3月末拿到字节跳动的头条后端开发的实习,中间也是准备了好几个月,但是其实这几个月是有水份的,因为中间放假的一大段时间都是没学习玩去了。但是现在看来,即使没有拿到这个offer,这几个月的复习也是很有价值的,本科期间对于开发这一部分实在是学的不堪入目,而现在好歹能自己做

2020-05-18 16:23:14 505

原创 shiro的使用心得

shiro的使用:基本的配置:一:pom.xml引入依赖<!-- 整合shiro 安全框架 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <versio...

2020-04-24 12:12:44 324

原创 Java 基础知识—— SSM项目总结

SSM项目总结功能:查询,增加,修改传输文件,登陆功能异常处理,数据统一树形列表数据的序列化,数据的多线程安全一:实现登陆功能利用shiro板块实现maven中导入shiro框架后,首先在web.xml中配置过滤器,会拦截所有的访问请求<filter> <filter-name>DelegatingFilterProxy</filter-nam...

2020-03-17 21:06:54 968

原创 Java基础知识——SSM项目架构

Spring整合mybatis:整合目的:不需要繁琐的创建SqlSessionFactory等,而只需要能够将DAO代理对象注入到Service对象调用方法即可。所以我们需要:编写spring-mybatis配置类三个作用:1:dataSource 配置数据源2:sqlSessionFactory配置工厂,加载数据源3:配置MapperScannerConfigurerMapperS...

2020-03-12 20:49:19 748

原创 Java基础知识——maven

Maven优势:jar包的坐标:pom.xml两个核心功能:1:依赖管理:传统的项目每一个项目引入自己的jar包而maven项目利用本地仓库管理jar包,节省磁盘空间,增加jar包的利用率2:一键构建传统项目需要用户自己编译测试打包安装发布,而maven一键帮用户解决maven的目录结构:bin:存放了 maven 的命令,比如我们前面用到的 mvn tomcat:runbo...

2020-03-11 11:37:08 227

原创 Java基础知识——分布式优化策略

缓存策略缓存穿透缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。方法1:布隆过滤器Bloom-Filter算法的核心思想就是利用多个不同的Hash函数来解决“冲突”。Hash存在一个冲突(碰撞)的问题,用同一个Hash得到的两个URL的值有可能相同。为了减少冲突,我们可以多引入几个Hash,如果通过其中的一个Hash值我...

2020-03-05 17:22:05 521

原创 Java基础知识——linux原理

用户划分超级用户root(0)程序用户(1~499)普通用户(500~65535)超级用户:默认是root用户,其UID和GID均为0。在每台unix/linux操作系统中都是唯一且真实存在的,通过它可以登录系统,可以操作系统中任何文件和命令,拥有最高的管理权限普通用户:这类用户一般是由具备系统管理员root的权限的运维人员添加的。程序用户:这类用户的最大特点是安装系统后默认就会存在的...

2020-03-02 20:13:33 949

原创 Java基础知识——RocketMQ

PullRequest:长轮询当服务器收到客户端发来的请求后,服务器端不会直接进行响应,而是先将这个请求挂起,然后判断服务器端数据是否有更新。如果有更新,则进行响应,如果一直没有数据,则到达一定的时间限制(服务器端设置)才返回Push方式缺点:1:服务器负荷大 2:客户端可能处理不过来pull方式缺点:间隔不好定。太短忙等,太长积压订阅模式:DEFAULTMQPULLCON...

2020-02-28 22:20:28 304

原创 java基础知识——spring cloud

单体应用架构优点:开发简单缺点:不易拓展,维护,代码耦合垂直应用架构:通过业务:分割成一个个独立的工程全部功能集成在一个工程中,有重复的架构,对于大型项目不易开发、扩展及维护可以看到商品管理等功能每一个工程中都有分布式SOA架构: Service-Oriented Architecture抽取公共的功能为服务缺点:抽取粒度大,服务提供和调用的耦合度较大微服务:通过服务的原...

2020-02-27 19:11:16 394

原创 Java基础知识——RPC,Dubbo

RPCRPC实现:远程过程调用调用远程计算机上的服务,就像调用本地一样RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有:应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。通信框架:MINA 和 ...

2020-02-27 14:30:15 257

原创 SpringBoot——微服务,启动器,YAML和注解装配,profiles,日志slf4j,springmvc优化,原理,JPA和RestTemplate

springBoot微服务集群:一个业务,分布在不同的计算机上Redis服务器分布式:多个业务分布在不同的计算机上MapReduce微服务:可以理解为一种分布式单体应用架构——SOA架构——微服务架构优点:从紧耦合到松耦合到解耦合,便于修改缺点:分布式系统的复杂性单体应用架构是一个整体,将MVC三层同时打包SOA架构,将三层分开设计微服务架构,将三层又分别切分为一个个微服务...

2020-02-26 20:20:03 873

原创 leetcode总结——查找和排序

查找和排序:二分查找:旋转数组的最小值旋转数组的索引值累快速排序:三色旗:旋转数组的最小值假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6...

2020-02-17 21:32:49 355

原创 leetcode总结——分治

分治法:最长公共前缀合并 k 个排序链表:最长公共前缀:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”class Solution { public String l...

2020-02-17 21:31:27 412

原创 leetcode——回溯

回溯法:第几个全排列括号组合下一个排列数字组合矩阵中对应字符串第几个全排列:给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k ...

2020-02-17 21:30:59 252

原创 leetcode总结——动态规划

动态规划:杨辉三角最长回文字符串最大乘积子数组01矩阵中最大的1正方形机器人走路:字符编码杨辉三角:给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]解答一:class Solution { public List<Integer> getRo...

2020-02-17 21:29:54 485

原创 leetcode总结——数字篇

数字处理翻转数字atoi范围数字的与和整数除法丑数pow算法:格雷编码是否是3的幂次方范围数字的与和:给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。示例 1:输入: [5,7]输出: 4示例 2:输入: [0,1]输出: 0此题其实就是寻找[m,n]范围内...

2020-02-17 21:28:13 375

原创 leetcode总结——字符串篇

字符串处理:翻转字符串同构字符串异位字符串:翻转字符串给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输...

2020-02-17 21:27:19 654

原创 leetcode总结——树篇

自上而下:路径和sum最短路径镜像树层次遍历树化链表完全二叉树的节点个数:路径和sum:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 ...

2020-02-17 21:26:49 367

原创 leetcode——链表篇

链表:链表和链表右移动k位翻转链表两两交换链表节点链表根据X分区:删除链表重复元素:最多出现两次的数组链表和:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:...

2020-02-17 21:25:13 205

原创 leetcode总结——矩阵

Z字符串螺旋矩阵矩阵置0矩阵查找Z字符串将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOE...

2020-02-17 21:24:05 553

原创 leetcode总结——数组篇

快慢指针:环形数组,最多出现两次的数组pat型:除开自己的以外的乘积Map:两数和/三数和/四数和,播放磁带,01数组滑动窗口:最长不重复子串,t步内差小于k首尾指针:水桶容量贪心算法:合并区间,跳跃数组,矩阵面积计算机数字转化环形数组:给定一个含有正整数和负整数的环形数组 nums。 如果某个索引中的数 k 为正数,则向前移动 k 个索引。相反,如果是负数 (-k),则向后移动 ...

2020-02-17 21:23:11 773

原创 Java基础知识——Spring

BeanPOJOs:Plain Ordinary Java Objects相当于删除限制的JavaBeanJavaBean 必须满足以下要求:1:无参数的构造函数2:所有参数属性为private3:实现serializeable接口EJB:企业级JavaBean 满足某项业务功能IOC前提问题:1:尽量使用反射而不是new例如不使用DriverManager.regist...

2020-02-07 18:18:23 214

原创 Java基础知识——SpringMVC(异常处理,拦截器)

两者都不会重启程序 热加载:依赖java的类加载机制,在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳变掉了,则将类重新载入。主要作用于服务器 热部署:使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader。这样在有代码更改时,原来...

2020-02-06 15:23:26 324

原创 java基础知识——SpringMVC(注解含义,过滤器,参数绑定,返回值处理,文件上传)

注解含义@RequestMapping当它既出现在类上也出现在方法上时,类上注解值为请求URL的一级目录,方法上注解值为请求URL的二级目录value:别名method:指定HTTP请求方法(可选RequestMethod.GET,RequestMethod.HEAD,RequestMethod.POST,RequestMethod.PUT等)params:指定请求参数的限制@Requ...

2020-02-05 17:48:57 475

原创 java基础知识——Servlet,SpringMVC(执行流程,非注解配置,注解配置)

B/S:Servlet ContainerHttpServletRequestHttpServletResponseHttpServlet1、Web Client 向Servlet容器(Tomcat)发出Http请求2、Servlet容器接收Web Client的请求3、Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中4、Ser...

2020-02-04 22:01:24 658

原创 Java基础知识——mybatis(多表连接,懒加载,缓存,注解)

多表查询表的关系:一对一:一一对应多对一:主从表关系。多个从表的记录对应一个主表的记录一对多:主从表关系。一个主表的记录对应多个从表的记录多对多:利用中间表记录关系。注意:使用内连接或者左右外连接查询,不影响实现思路,只影响实现结果一对一/多对一 实现:用户和账户:一个用户对应多个账户,多个账户对应一个用户。现在重点放在账户上select A.*,B.username,B.ad...

2020-02-03 16:17:29 618

原创 Java基础知识——mybatis(CRUD,配置文件解耦合,连接池,动态SQL)

CRUD具体代码实现基本操作:where>group by>having>order by>limit增:insert into 表名称(指定列1,指定列2)INSERT INTO user(username,birthday,sex,address) VALUES (#{username},#{birthday},#{sex},#{address})删:DE...

2020-02-02 18:53:45 1682

原创 Java基础知识——mybatis1

mybatis:mybatis是一个持久层框架,用java编写的。它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程它使用了ORM思想实现了结果集的封装。ORM:Object Relational Mappging 对象关系映射简单的说:就是把数据库表和实体类及实体类的属性对应起来让我们可以操作实体类就实现操作数据库表。基本...

2020-02-01 19:39:57 346

原创 Java基础知识——JavaIO

Java ioIO的基本分类同步和异步的区别:同步是线程去查看是否完成,异步是完成的数据去提醒线程已经完成参考资料data = socket.read();socket本意为套接字,为ip+端口,我理解为一个数据载体(BIO)阻塞io:未请求到数据即让出cpu(NIO not block io)非阻塞io:在 while 循环中不断地去询问内核数据是否就绪,这样会导致 CPU 占用率非...

2020-02-01 09:49:33 11884

原创 Java基础知识——异常 反射 内部类 序列化 泛型,String继承,多态,Object,抽象,数据,Collection,JDBC,代理,接口的静态和默认方法,this和super,复制,1.8

Java基础知识——续Person per = new Person(“张三”);Person:称为类,引用类型per:称为对象引用,对象实例new Person(“张三”):对象,引用变量String常量和对象的区别:1:存储位置区别2:编译时判断和运行时判断显式的String常量String a = “holten”;String b = “holten”;第一句代码执...

2020-01-27 20:53:36 594

原创 Java基础知识——Redis

MVC模式,Model-View-Controller。在后端代码中,为了保证代码的整洁,易读性,一般会采用分层的办法,自顶向下分为controller层,service层,dao层,数据层或者叫持久层(直接与数据库打交道)。有时候,为了达到解耦的目的,会在上述基层中间加入响应的接口层,以使得接口与实现分离。如图层次关系所示,DAO层一般负责对数据库进行增删改查各种操作,Service层调用D...

2020-01-26 21:53:00 436

原创 高级操作系统——第七周【页表置换】

CPU内存-Cache-寄存器(CPU里)(1)计算对位进行操作的函数的组合逻辑(ALU);(2)存储位的存储器元素(寄存器);[貌似速度比cache还快?](3)控制存储器元素更新的时钟信号。(4)cache :Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现在也都集成在C...

2020-01-06 15:26:35 1201

原创 算法——分治法

分治法:a^n计算的时间复杂度O(logn)斐波那契数列Fn的时间复杂度O(logn):快速排序算法:1:分为两个n/2子问题的情况:T(n)=2*T(n/2)+n O(nlogn)2:分为一个1/10,一个9/10的情况:T(n)=T(1n/10)+T(9n/10)+n.3:分为1和n-1:T(n)=T(n-1)+n找最大值和最小值:两两分组比较,再依次比较找第二大的...

2020-01-02 15:11:10 388

原创 算法——时间复杂度

大O:低于或者等于小o:低于大嘎玛:大于或者等于小w:大于theta:等于Hanoi问题:T(n)=2T(n-1)+1结果为T(n)=2 ^n-1二分插入排序:二分查找:解递归方程:形态一:Hanoi形态形态二:二分插入形态形态三:决策树形态形态四:主定理其实分别对应n^ logb(a)大于/小于/等于f(n)的情况...

2020-01-02 13:33:38 436

原创 java基础知识——Java并发机制

JMM模型: 其中共享内存=堆/本地方法区内存,本地内存=虚拟机栈等并发的三个特性:参考资料原子性:1:除了long和double的赋值都是原子性的 2:所有引用的赋值都是原子性的可见性:单某一个线程对共享变量进行修改时,主存会立即同步共享变量的值有序性:利用volatile,s,lock等。程序也有先天的有序性即happens-before原则原因:重排序:在不改变计算结...

2019-12-31 11:32:14 635

原创 Java基础知识——集合类

LinkedList源码阅读知识点一:可以看到LinkedList基于链表,并且是双向循环链表,每一个节点是一个Entry,element,next,previous,构造方法和entry(int index) ,entry(int index) 找index位置的元素并返回。其他的操作比如add,remove都是符合双向循环链表基本操作private static class Entry&l...

2019-12-25 16:34:19 233

原创 Java基础知识——分布式系统

mvcc:MVCC(Mutil-Version Concurrency Control),就是多版本并发控制参考资料有两部分:undo日志:trx_id:事务id。roll_pointer:每次对哪条聚簇索引记录有修改的时候,都会把老版本写入undo日志中。这个roll_pointer就是存了一个指针,它指向这条聚簇索引记录的上一个版本的位置,通过它来获得上一个版本的记录信息。(注意插入...

2019-12-24 20:40:01 461

原创 Java基础知识——数据库

共享锁(Share locks简记为S锁):也称读锁,事务A对对象T加s锁,其他事务也只能对T加S,多个事务可以同时读,但不能有写操作,直到A释放S锁。排它锁(Exclusivelocks简记为X锁):也称写锁,事务A对对象T加X锁以后,其他事务不能对T加任何锁,只有事务A可以读写对象T直到A释放X锁。更新锁(简记为U锁):用来预定要对此对象施加X锁,它允许其他事务读,但不允许再施加U锁或X锁...

2019-12-23 18:55:24 660

原创 Java基础知识——服务器

Vlan:虚拟局域网参考资料我理解为带Vlan的交换机实现路由器的功能——分离广播域实现机制:在交换机上加红蓝口,通过vlan上的ID来区分不同vlan通信:路由器或者三层交换机同一vlan连接多台交换机:1:每一个valn id布线 麻烦2:汇聚链接,一根线转发多个不同VLAN的通信的端口。静态vlan基于Mac:根据Mac地址划分为不同的vlan id基于IP:根据IP地址...

2019-12-22 16:59:28 954

原创 Java基础知识——UML,创建模式,结构模式,行为模式

UML关系:参考资料注意:箭头指向为被泛化:类的继承实现:类实现接口依赖:表现为局部变量、方法的参数或者对静态方法的调用。关联:表现为成员变量,地位平等(学生和老师)。可以单向也可以双向仅仅是知道或者不知道的意思聚合:表现为成员变量,地位为包含关系整体和部分(工厂和工人)组合:表现为成员变量,地位为强拥有(人和心脏)它们表现的依赖关系强弱程度不同,这4种关系所表现的...

2019-12-21 16:56:54 254

空空如也

空空如也

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

TA关注的人

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