自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java_Bean的加载

bean的加载流程:转换对应的BeanName尝试从缓存中加载单例bean的实例化原型模式的依赖检查检测parentBeanFactory将存储XML配置文件的GernericBeanDefinition转换为RootBeanDefinition寻找依赖针对不同的scope进行bean的创建类型转换...

2020-10-05 15:48:20 258

原创 Java面试_dispatcherServlet工作原理

源码角度详解这张图:DispatchServlet:源码相关import javax.servlet.DispatcherType;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;页面请求发送过来,都会到

2020-09-18 10:11:43 545

原创 Java面试_死锁算法

死锁检测的数据结构,类似银行家算法的数据机构:设Available为可以使用的资源; 不占用资源的进程记入L表中,即LiL;Available[i] = 0 ; 从进程中找到Request_i <=Work 的进程,做如下处理:释放资源,Work = Work+ Allocation [i] ,将该进程记入L表; 最后如果L表没有所有进程,则说明系统状态是不能完全简化的,会发生死锁。死锁解除方式:抢占资源 终止进程(终止所有的死锁相关的进程,或者一个一个终止,解脱了为止)...

2020-09-16 14:59:40 205

原创 Java面试_银行家算法

银行家算法命名是dijkstra为了解决银行系统死锁问题而提出的。银行家算法的数据结构:记住两个:资源和进程访问资源资源的种类及数量总计: Available[j]=k,Available.length=m。 各个进程访问资源的最大数量: new max[m][n],max[i][j]=k。 已经分配给各个进程的资源数量:new Allocation[m][m],Allocation[i][j]=k。 各个进程还需要的资源数量: new Ne...

2020-09-16 13:50:49 571

原创 Java面试_处理机调度以及作业调度算法

处理机调度的层次:(3层)高级调度:主要是将外存上处于后备队列上的几个作业调入内存,为他们创建进程、分配必要的资源,并放入就绪队列。 中级调度:没有运行条件,进程调至外存挂起(或就绪驻外状态);有运行条件且内存空闲,把外存上的进程重新调入内存,修改为就绪状态。目的就是提高内存利用率和系统吞吐量。 低级调度:根据某种算法,决定就绪队列中的哪个进程应获得处理机,并有分派程序将处理机分配给选中的进程。某一个进程由就绪--->运行。三种调度的高中低可以说是以时间划分的,低级调度最为频繁,时间也是最短

2020-09-16 10:19:14 320

原创 java面试准备_TCP/IP部分

一、 TCP/IP的基本概念二、 三次握手四次挥手一、TCP/IP基本概念OSI参考模型,由国际标准化组织ISO提出,TCP/IP模型由ARPAnet提出;针对TCP/IP模型:应用层 :应用层有协议TELNET,FTP,SMTP,HTTP;传输层:TCP、UDP协议;网际层: IP协议网络接口层: 没什么东西,实质上TCP/IP是三层;细说运输层的TCP协议,以及和UDP:1)传输层提供应用进程之间的逻辑通信,与网络层不同的是,网络层提供的主机之间的逻辑通信。逻辑通信的含义是指

2020-09-15 16:24:11 300

原创 强引用、软引用、弱引用、虚引用有什么区别?

强引用、软引用、弱引用、虚引用,这四种引用的强弱依次减弱。共同继承Reference<T> java.lang;强引用:只要强引用的关系还存在,垃圾收集器就永远不会回收掉引用的对象;软引用:在系统将要发生内存溢出之前,江湖把这些对象列入回收范围之中进行第二次回收;如果回收后的内存还是不够,才会抛出内存溢出异常。弱引用:被弱引用关联的对象只能生存到下一次垃圾收集之前,当垃圾收集器工作室,无论内存空间是否足够,都会回收掉被弱引用关联的对象;虚引用:一个对象是否有虚引用的存在,

2020-09-14 20:21:38 235

原创 静态代码加载问题

class Test99 { static int x=10; static {x+=5;} public static void main(String[] args) //4 { System.out.println("x="+x); } static{x/=3;}; }//9对于静态代码加载吃不准,可以多看几次字节码文件:可以清晰的看出静态代码中x指向的值得变化,结

2020-09-12 19:03:18 131

原创 jvm——双亲委派机制

2020-09-12 19:01:04 79

原创 StringBuffer和StingBuilder比较

先来看看源码public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequencepublic final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable, CharSequence可以发现两者都是继承抽

2020-09-01 15:01:03 178

原创 前段保存user信息

前后端分离中,用户在登陆之后,需要将后台的相关信息保存在前端中;例如我这里后台传的数据是json格式:{ "status": 200, "msg": "登录成功!", "obj": { "id": 1, "username": "admin", "password": "$2a$10$gce2rkLEZ8NOn5gnuhakWO3oNHtSWcCtakcyZUCtD23ykoNIc2s9i", "nickname":

2020-08-10 17:00:12 995

原创 vue2.0和vue3.0配置proxy代理

vue3.0相对于vue2.0在项目结构上去除了build和config目录;在vue2.0上配置proxy的方式,需要在config/index.js文件中直接修改就可以:proxyTable: { '/api':{ target:'http://localhost:8081/', changeOrigin:true, pathRewrite:{ '^api':'/api'//这里要理解成用'/api'代替target里面

2020-08-10 12:27:49 2185

原创 springsecurity的配置,登录注销

package com.example.myblog.config;import com.fasterxml.jackson.databind.ObjectMapper;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.authentication.*;im

2020-08-08 21:01:00 204

原创 Node.js——mysql

准备工作:需要nodejs安装mysql模块cnpm install mysql查询数据var mysql = require("mysql");var connection = mysql.createConnection({ host:'localhost', user:'root', password:'admin', database:'studb'});var connect =connection.connect();console.log(con

2020-08-08 13:37:55 112

原创 Node.js——流Stream

管道流var fs = require("fs");// 创建一个可读流var readerStream = fs.createReadStream('input.txt');// 创建一个可写流var writerStream = fs.createWriteStream('output.txt');// 管道读写操作// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中readerStream.pipe(writerStream);consol

2020-08-08 09:42:43 97

原创 Node.js——回调函数

回调函数一般作为函数的最后一个参数出现:function foo1(name, age, callback) { }function foo2(value, callback1, callback2) { }回调函数的执行顺序问题:同步->异步->回调;

2020-08-08 08:22:36 257

原创 学习阶段思路

最近刚刚完成spring cloud的基础知识学习,对于微服务落地的应用有了初步的了解,学这个有一种套路的感受,核心主要抓住一个中心,多个枝叶思想,各个组件协同工作。目前没有计划敲spring cloud 的项目,想要回头继续深入spring boot,但最近学习前端的情绪越来越高涨,可能是因为对象的原因,也有可能是自己想要在全栈方面可以有更深的了解,不知道当初自己给自己铺的饼是不是大了,自己想要做的是全栈+分布式+微服务结合大数据的一些知识综合性的开发工程师,目前对这些都有一定的概念了,对于java这块

2020-08-07 15:45:45 149

原创 idea的神奇毛病

源自于添加springcloudzuul依赖导入不成功,一开始以为是阿里云镜像没有包,改了镜像,发现还是有问题。之后搁置了一段时间,可是让人生气的是,之后每次到入新的依赖都是失败,这让我开始怀疑可能不是镜像源的问题,就开始排查,为了确定不是镜像源的问题,我第一步是将本地已经配制好的jar包删除,重新拉镜像,检查发现,jar包拉取成功,但是在项目中,项目maven依旧报错,这时候开始怀疑有可能是idea相关文件出现错误,将项目关闭,删除项目中的.idea相关文件,重新开启项目,把相应的模块通过projec

2020-08-02 16:29:59 129

原创 阻塞和非阻塞(IO和NIO)

JDK1.4之后引入NIO。两种IO的区别在阻塞IO,如果你从数据流中读取不到指定大小的数据量,IO就会阻塞,已知会有10个字节发送过来,但我只接受到4个,还剩6个,此时就会发生阻塞;如果是非阻塞模式,虽然此时只收到四个字节,但是读到4个字节就会立即返回,不会在原地等着,等另外六个字节来的时候,再去继续读取。阻塞IO可以看出性能会低很多;如果有一个web服务器使用阻塞IO来处理请求,那么每一个请求都需要开启一个新的线程;如果使用非阻塞,那么一个小的线程池就够用了。因为不会发生阻塞,每一个线程都能够

2020-07-12 18:47:26 166

原创 java的匿名内部类和lambda表达式

今天在学习redis过程中,遇到一段代码:redis.execute(jedis->{ System.out.println(jedis.ping()); });代码很简约//Redis类,上面的execute就是调用的这里的方法public class Redis { private JedisPool pool; public Redis(){ GenericObjectPoolConfig<Object&g

2020-07-01 16:37:03 217

转载 关于在开启防火墙开放linux端口

1.关闭防火墙systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动2.开启某个端口(80)firewall-cmd --zone=public --add-port=80/tcp --permanent命令含义–zone #作用域–add-port=80/tcp #添加端口,格式为:端口/通讯协议–permanen

2020-06-30 15:01:15 103

原创 redis简介和安装

redis:一个Nosql数据库,基于C开发的键值对存储数据库。说到redis,大家第一反应就是缓存,除了缓存,redis还有着其他的使用场景,比如分布式锁,限流。redis的特点:支持数据持久化支持多种不同 数据结构类型之间的映射支持主从模式的数据备份自带了发布订阅系统定时器、计数器编译安装redis准备好gcc环境yum install gcc-c++wget http://download.redis.io/releases/redis-5.0.7.tar.gz注意下载可以

2020-06-29 19:01:04 86

原创 如何快速部署springboot打成jar包到腾讯云

购买云服务器,学习使用,基础配置就行,买完会有这样的一台机器。阿里云的没使用的原因是学生机被家里亲戚征用了,不过都差不多。连接服务器使用xshell工具连接,熟悉的端口,22,访问拒绝,检查发现没问题,又连了几次,连上有一个警告使用xshell第一次连接时,可能会连接多次才能连上,出现:WARNING!The remote SSH server rejected X11 forwarding request.解决办法:vi /etc/ssh/sshd_config 在X11这行改为X1.

2020-06-23 18:45:49 436

原创 jdbc的prepareStatement和Statement比较

利用Connection调用Statement对象Executor操作,每次在和数据库交互的时候,都会涉及到数据库的重新编译,相对于prepareStatement对象执行Executor操作,相同的查询模板,在之后的查询过程中可能不会涉及数据库对查询语句的重新编译,只需要涉及到sql语句中的参数。...

2020-05-10 16:10:26 120

原创 相关概念

2020-05-10 14:03:26 66

原创 Tensorflow2.0如何运行Tensorflow1.0的代码

第一步:导入Tensorflow时使用import tensorflow.compat.v1 as tf代替import tensorflow as tf第二步:执行tf.disable_eager_execution()禁用Tensorflow2 默认的即时执行模式。

2020-05-09 11:03:53 6936 2

原创 最长连续序列_leetcode算法题

给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。//java中可以使用集合setclass Solution { public int longestConsecutive(int[] nums) { ...

2020-05-03 12:33:53 244

原创 最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。这个代码有待改进,重要的是内存使用。class Solution { public int lengthOfLongestSubstring(String s) { Set<Cha...

2020-05-02 16:53:34 176

原创 合并两个升序链表_leetcode题目

将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4一开始的思路是不停的创建新的节点,放入值,运行发现时间只超过了60%的人,后来发现两个原链表可以破坏掉,虽然不太好,万一想要原来链表的信息就不再有了,修改后直接做节...

2020-05-01 14:38:51 833

原创 lambda架构

什么是lambda架构?lambda架构提供了一个结合实时数据和Hadoop预先计算的数据环境的混合平台,以提供一个实时的数据视图、层次结构:批处理层、实时处理层、服务层。批处理层涉及的技术:flume采集数据,sqoop数据同步到结构化数据库中等,分布式存储(HDFS:基于文件的分布式存储系统,Hbase:结构化存储系统(Hadoop Database)nosql型数据库),分布式计算(m...

2020-04-29 20:06:45 329

原创 山峰问题_二分查找

给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。如果不存在这样的下标 index,就请返回 -1。输入:array = [1,2,3,4,5,3,1], target = 3输出:2解释:3 在数组中出现了两次,下标分别为 2 和 5,我们返回最小的下标 2。输入:array =...

2020-04-29 14:31:42 368

原创 链表相加_栈

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 8 ...

2020-04-28 15:35:11 125

原创 二分查找_leetcode算法题

按照升序排序的数组在预先未知的某个点上进行了旋转;搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4示例 2:输入: nums = [4,5,6,7,0,1,2], target = ...

2020-04-27 17:06:54 117

原创 两个有序数组的中位数

两个大小为 m 和 n 的有序数组 nums1 和 nums2。找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。假设 nums1 和 nums2 不会同时为空。自己的思路:数组合并,两个数组两个游标,都向前走,小的放进去,最后去中间的数据。话不多说,上代码。class Solution { int i=0,j=0,count=0; pu...

2020-04-26 13:41:03 106

原创 合并k个排序链表_分治求法_leetcode题目

合并 k 个排序链表,返回合并后的排序链表例如123168265结果11235668问题做出思考后,决定使用分治求发,多个链表划分为两两为一组合并。直接上代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ...

2020-04-26 12:51:51 106

原创 协同过滤_概念

摘自百度百科:协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。协同过滤又可分为评比(rating)或者群体过滤(social filtering)协同过滤以其出色的速度和健壮性,在全球互联网领域炙手可热...

2020-04-14 10:31:15 1079

原创 决策树算法_基本思想

决策树学习的本质是从训练数据集上归纳出一组分类规则,通常采用启发式的方法,即局部最优。通常分为三个步骤:特征选择、决策树生成和决策树的修剪。特征选择...

2020-04-13 21:34:55 4203

原创 算法_逻辑回归算法

逻辑回归是用来做分类算法。这个函数叫Sigmoid函数,无论自变量取什么值,函数的值域都是在0-1之间,我们可以设定0.5为分界线,那么分类就出来; ,两个情况,要么是0,要么是1,阀值可以自己控制。...

2020-04-13 21:00:33 84

原创 K-Means聚类算法_基本思想

核心思想:“物以类聚,人以群分”假设在一个平面内有n多个点,这些点都是随机分布,随机设置两个点x1,x2,那么这n个点各自到x1,x2都会有一个距离d1,d2,那么每次将距离较小的选择出来。 既然我们已经了解了基本的流程原理,那么在运用时,我们可以改进,初始点我们怎么选,选的不合适,迭代次数会增加,所以我们有了下面的方法kmeans++介绍。...

2020-04-09 16:03:10 3269

原创 算法_线性回归_基本思想

算法的作用即:输入数据——>模型——>输出数据假设数据就是x,结果是y,那中间的模型其实就是一个方程。假设模型是一元一次模型,例如拟合的情况如下图所示:我们可以发现,该模型的拟合情况并不是特别好,因为模型的预测结果和实际结果的偏差较大,这时候我们会引入一个叫损失函数的东西(个人更喜欢偏差函数这个名字),可以如名字我们知道,损失的函数的值相对越小越好。在拟合的情况下会出现欠...

2020-03-27 21:34:54 881

空空如也

空空如也

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

TA关注的人

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