自学记录
入门弟弟 梦呓君
这个作者很懒,什么都没留下…
展开
-
java8 stream操作
先放数据 private static List<Student> computerClub = Arrays.asList( new Student("2015134001", "小明", 15, "1501"), new Student("2015134003", "小王", 14, "1503"), new Student("2015134006", "小张", 15, "1501"), ne转载 2021-04-13 17:11:08 · 86 阅读 · 0 评论 -
springmvc拦截器原理
1、根据当前请求,找到HandlerExecutionChain【可以处理请求的handler以及handler的所有 拦截器】2、先来顺序执行 所有拦截器的 preHandle方法• 1、如果当前拦截器prehandler返回为true。则执行下一个拦截器的preHandle• 2、如果当前拦截器返回为false。直接 倒序执行所有已经执行了的拦截器的 afterCompletion;3、如果任何一个拦截器返回false。直接跳出不执行目标方法4、所有拦截器都返回True。执行目标方法原创 2021-02-27 15:20:00 · 85 阅读 · 0 评论 -
Springmvc内容协商原理
首先判断请求头中是否已经有确定的媒体类型。如果没有就获取当前客户端支持接受的类型,即获取请求头的accept字段。分别获取接受的参数类型和可以产生的类型。getAcceptableMediaTypes方法通过strategy确定客户端可接受的内容类型。在之后进行内容协商的操作遍历全部MessageConverter看谁可以操作这个对象,找到支持操作Person(我输入的类)的converter,把converter支持的媒体类型统计出来。用 支持最佳匹配的converter将对象转为 最佳匹配原创 2021-02-15 15:59:38 · 210 阅读 · 0 评论 -
springmvc执行方法获取参数
首先在HandlerMapping中找到能处理请求的Handler,为当前handler找到一个对应的handleradapter。当前适配器执行所有方法,并确定每个参数的值。在DispatcherServlet 的doDispatch方法中,mv = ha.handle(processedRequest, response, mappedHandler.getHandler());方法来执行目标方法。在HandlerMethodArgumentResolver中判断,将要执行的目标方法的每个参数值是原创 2021-01-25 20:45:48 · 127 阅读 · 0 评论 -
springboot集成springmvc请求映射原理
首先进入FrameworkServlet中,执行processRequest方法,执行doService方法,在其子类dispatcherServlet中实现了doService方法。通过 getHandler(processedRequest);方法,获取对应的处理器,最终通过org.springframework.web.servlet.handler.AbstractHandlerMethodMapping#getHandlerInternal方法,获取到了请求的路径。路径相同,可能请求不同,org原创 2021-01-18 22:44:43 · 156 阅读 · 0 评论 -
springboot集成springmvc获取请求详解
表单发送请求的时候,先在org.springframework.web.filter.HiddenHttpMethodFilter#doFilterInternal判断,请求是否正常,是否为post请求,符合条件再获取请求方法。再去获取_method的值,先判断不为空,然后切换成大写,判断获取的请求参数是否是允许的。共允许这三种:HttpMethod.PUT.name(),HttpMethod.DELETE.name(),HttpMethod.PATCH.name()将requestToUse进行更原创 2021-01-17 15:49:08 · 141 阅读 · 0 评论 -
springboot自动配置原理
1.@SpringBootApplication注解包含了三个注解:@SpringBootConfiguration声明当前类为一个配置类。@ComponentScan指定扫描哪些注解。@AutoConfigurationPackage注解,导入AutoConfigurationPackages.Registrar.class,利用registrar批量注册组件,将注解标注的类也就是启动类的包内所有组件都导入进来。由此可以解释,默认扫描的类就是主类包内的。2.org.springframework.boo原创 2021-01-14 21:55:28 · 80 阅读 · 0 评论 -
Dubbo服务消费者引用流程
由于service是用autowired实现的自动注入,使用了工厂bean的get方法。由于没进行引入,所以会有一个初始化过程,在com.alibaba.dubbo.config.ReferenceConfig#createProxy这里创建代理对象,进行操作。com.alibaba.dubbo.config.ReferenceConfig#invoker调用protocol的refer方法,在RegistryProtocol类的dorefer方法中,使用了directory.subscribe来进行订阅原创 2021-01-13 23:40:25 · 237 阅读 · 0 评论 -
Dubbo服务提供者暴露服务流程
1.首先在DubboNamespaceHandler中配置标签解析器,解析标签之后,每个标签对应一个config配置类进行解析。2.解析serviceBean的时候com.alibaba.dubbo.config.spring.ServiceBean#onApplicationEvent方法调用了export方法,调用了com.alibaba.dubbo.config.ServiceConfig#doExport方法,一路调用到了com.alibaba.dubbo.config.ServiceConfig原创 2021-01-12 22:53:55 · 169 阅读 · 0 评论 -
JVM堆内存内容整理
在jdk1.7之前,堆内存逻辑上分为新生区,老年区,永久代,1.8之后将永久代称之为元空间。新生区分为伊甸园区、s0区、s1区。新诞生的对象在伊甸园区,然后到s0或者s1,s0和s1只能有一个有内容另一个必定为空,再之后进入老年区。OOM异常就是堆内存溢出。...原创 2020-06-22 22:46:48 · 97 阅读 · 0 评论 -
读取数据的归一化处理
import numpy as npimport pandas as pd;f = open('流量异常指标集数据.csv')coman = pd.read_csv(f)coman.replace([np.inf, -np.inf], np.nan,inplace=True)coman = coman.fillna(0)def regularit(df): newDataFra...原创 2020-04-16 20:40:12 · 439 阅读 · 0 评论 -
数据写入计算模块
import numpy as np;import mathimport pandas as pd;import csvf = open('data.csv','w',newline='',encoding='utf-8-sig')csv_writer = csv.writer(f)csv_writer.writerow(["tableName","TcpCount","UdpCou...原创 2020-04-16 19:45:59 · 177 阅读 · 0 评论 -
python数据处理
遇到一个问题,需要读取一个csv文件,然后取其中一列,然后求这一列每个数据出现的概率,然后求其信息熵。import numpy as np;import mathimport pandas as pd;df=pd.read_csv("table10.csv") #读取文件h=df.loc[:,'firstSeenSrcIp'].value_counts(normali...原创 2020-04-01 16:57:17 · 101 阅读 · 0 评论 -
个人对于静态语言与动态语言的理解
静态语言对于数据类型定义比较严谨,所以日后维护会较为容易。动态语言写的时候会较为方便,可是日后记不住自己定义的数据类型,编译器无法报错,只有运行时会出来问题。就比如小学生写作文遇到不会的字会用O代替,老师在批作文的时候就要能智能识别出来圈的含义。比如一年级小朋友写PHP天下第O。老师看到之后会认定O就是1。可是当一篇文章中O多了,就不容易分辨了。比如写的文章是PHP天下第O,JAVA天下第O。这...原创 2020-03-07 23:54:22 · 173 阅读 · 0 评论 -
JVM虚拟机自学记录(本地方法接口和本地方法栈)
本地方法就是native关键字修饰的方法,因为方法是c语言描述的,所以方法体中没有。(native和abstract完全不一样)比如在thread类中,setPriority0方法就是由native修饰,需要操控系统的线程就是调用底层方法。Java虚拟机栈管理Java方法的调用,本地方法栈管理本地方法的调用。当线程调用一个本地方法,就进入了一个全新的并且不再受虚拟机限制的世界。拥有和虚拟机同...原创 2020-02-15 22:23:46 · 111 阅读 · 0 评论 -
JVM虚拟机自学记录(双亲委派机制+沙箱安全机制)
类加载器:根(启动)类加载器(bootstrap class loader)使用c/c++编写、扩展类加载器(extensions class loader)使用Java编写、系统类加载器(system class loader)使用Java编写。双亲委派机制:Java虚拟机对class文件采用按需加载的方式,需要的时候将class文件加载进内存生成Class对象。一个类的加载器想加载一个类的时...原创 2020-02-10 19:54:01 · 166 阅读 · 0 评论 -
编程的难点
本文转自知乎,大佬剖析的十分透彻,本人转载只为学习。编程的难分为两类,一种是工程上的难,一种是算法上的难。我先回答一下工程上的难:我们做一个比较, 就是开发一个大型软件, 和设计并建造一栋摩天大楼, 究竟哪个更难, 为什么?实际上这个比较一旦抛出, 软件开发的"难"就立马显现出来了。摩天大楼一旦盖起,将不再,也不可能“更新版本”,更不可能在建筑结构上进行“重构”,比如一个一百层的摩天大楼...转载 2019-08-26 18:23:26 · 675 阅读 · 0 评论 -
react使用心得
react生命周期之中自带了两种方法componentDidMount()和componentWillReceiveProps(nextProps)其中第一种方法componentDidMount()是页面整体加载完成之后就会执行的函数,适合用于一次初始赋值且不方便置于state中的参数。比如,今天实习用到一个需求就是用到单选框,将其默认初始值赋值1,在state中存值为undefined。就需...原创 2019-08-20 18:57:17 · 147 阅读 · 0 评论 -
mvc三层结构的个人理解
通过controler对数据进行处理,service实现业务,service方法写接口,用具体的类实现方法,dao层实现数据库的联通原创 2019-08-06 21:21:32 · 162 阅读 · 0 评论 -
自学Linux系统个人记录(二)
关于系统的安装可在网上找到相关教程参考视频链接:link出自兄弟连教学b站视频,在安装过程中重点在于分区与安装软件,分区需分出swap、boot、home和根区。在安装过程中可选择图形界面和文字界面。因为若在工作中搭建主机,工程师均使用命令行输入,不需要图形界面,还可优化性能。所以建议安装basic sever。在后续讲到了远程管理系统。分为三种连接方式:桥接、NAT和host only(仅主机模...原创 2018-11-28 00:10:31 · 86 阅读 · 0 评论 -
自学Linux系统个人记录(四)
最近由于期末课设等各个事情忙的几天没学习Linux了,深感愧疚。这几天就要把Java课设做完了,做完我就把源码放在网上,供大家参考一下。今天学习的主要是文件处理命令(所有操作未制定具体根目录,就认定在当前目录执行此操作)1.cd用于切换目录位置2.用pwd来显示当前目录位置3.用cp来复制 -r为复制目录,-p为复制属性(包括时间等等)4.mv用来剪切和重命名(剪切到本目录即为重命名)...原创 2018-12-06 00:06:25 · 89 阅读 · 0 评论 -
Java课设总结
在这次Java课设领到的题目是做一个通讯录,基于控制台输入输出。实现录入,查询,删除,展示等功能。我自己添加了一个类型输出。期间本来还想做一个排序功能,由于时间有限,做了一部分,懒得调试,就把剩下的代码注释掉了。有心人也可以自己写一下。主代码里面,我建立一个connect类用于存放方法函数。在主函数中对其进行调用,将功能传进去,即可实现功能。用switch…case…和scanner类的调用来进...原创 2018-12-12 23:50:38 · 3466 阅读 · 0 评论 -
自学Linux系统个人记录(五)
ln命令创建链接,软链接(.soft),类似Windows快捷方式,指向原文件,权限类型为所有用户可操作,且内存很小。硬链接(.hard),相当于是保存文件属性的拷贝,可以同步更新,源文件丢失,仍旧可以访问。与源文件使用同一个i节点,可以实时备份。不能跨分区,不能指向目录chmod命令,权限管理,{[uaoa] [+ -=] [文件或目录]}用数字表现权限 r——4 w——2 x...原创 2018-12-06 17:56:51 · 102 阅读 · 0 评论 -
自学Linux个人记录(九)
1.write+用户名 给用户发信息。(需用户在线)进入界面之后,ctrl+d即可保存结束2.wall+[message] 给全体人员发送信息包括本机也可以收到信息3.ping+选项+IP地址 最常见命令,建立链接 ,发送数据包并受到回应,即为建立链接。与Windows不同之处在于,Windows五次连接之后自动断开,而Linux会一直链接。、ping -c+次数指定连接的次数。链接结束之后...原创 2018-12-20 21:31:09 · 67 阅读 · 0 评论 -
MATLAB程序设计 2psk系统调制与解调
定义一个主函数,自定义一个一位数组,由零一组成,作为输入信号,先进行2psk调制,再进行2psk相干解调,然后经过低通滤波器,再经过抽样判决得出原波形。2psk信号只能使用相干解调,包络检波无法区分同相相位。主函数i=10;%基带信号码元数j=5000;t=linspace(0,5,j);%0-5之间产生5000个点行矢量,即将[0,5]分成5000份fc=5;%载波频率fm=i/5...原创 2019-01-04 13:39:36 · 16871 阅读 · 23 评论 -
tcp/ip协议详解——HTTP协议和POP3协议SSL加密协议
http协议有两大特点:1、哑服务:在链接进行之后,服务器不提示任何信息,所有命令需要客户端发出,服务器做出反应。2、瞬时协议:客户端对服务器发出命令之后,服务器立刻做出反应,传输超文本,tcp链接即时断开。既然是瞬时协议,那么是怎么进行连续的操作的呢。涉及到Cookie,使用Cookie进行保存,也就是为什么很多时候网页可以知道我们的爱好。...原创 2019-01-26 22:24:38 · 1345 阅读 · 0 评论 -
python深度学习——环境配置及工具安装
Python在深度学习中需要几个比较重要的库numpy、pandas。可以直接安装anaconda,安装的同时即可包含这些库。在官网下载即可,并且安装anaconda的时候可以同时安装Python。其中包含工具notebook,一个网页编译环境。在numpy库中,可以通过[]来定义一个一维数据,通过[[],[],[]]来定义多维数据,类似列表功能`import numpytext=numpy...原创 2019-01-30 00:57:54 · 1943 阅读 · 0 评论 -
python seaborn库之热度图
热度图用颜色深浅表示所代表的数据大小。data=np.random.rand(3,3)print(data)heatmap=sns.heatmap(data)先生成(3,3)的随机数,然后使用heatmap函数直接加数据进行表示。data=np.random.randn(3,3)print(data)heatmap=sns.heatmap(data,center=0)在选项...原创 2019-02-09 23:17:05 · 938 阅读 · 0 评论 -
深度学习之线性回归算法
在考虑问题的时候,如果给你一系列数据多个输入,产生一个输出,可以使用线性回归算法,将多个输入和一个输出,拟合成一个平面。假定有两个输入X1和X2是输入,Y1是输出。可以列出公式Y1=X0+θ1X1+θ2X2。其中X0项变为X0θ0为使其值不变,可让θ0=1,为方便运算,后续大多数矩阵计算时都会在其开始处加入一列1。然而使用上述公式,每个个体所获得数据之间一定存在误差。所有误差是独立具有相同...原创 2019-02-10 23:04:55 · 1079 阅读 · 0 评论 -
交叉验证和数据集分割
在实际的机器学习操作中,经常使用交叉验证操作,即将数据集分为训练集与测试集,再将训练集进行分割,例如,分割为三份,其中一与二建模,用三来验证效果。一三建模用二来验证效果。二三建模用一来验证效果。就这样,可以减少离群点产生的影响,时间里的模型更为有效。而Python有专门的函数进行分割。from sklearn.cross_validation import train_test_split...原创 2019-03-13 22:01:50 · 922 阅读 · 0 评论 -
在MATLAB上实现文件格式的转换
先前在网上下载了数据集,是pgm格式,一共分为四十个文件夹,每个文件夹有十张照片.在网上找了别人写的转换代码,稍加更改,在命令行中可以输出文件夹转换结束。文件名为s1,s2……s40。 for i=1:40for j=1:10 p_w_picpath=imread(strcat('C:\Users\acer\Documents\Tencent Files\501305866\FileRec...原创 2019-03-16 23:09:40 · 3554 阅读 · 0 评论 -
Java语言的gui聊天界面
主要应用UDP通信以下为效果窗口下方四个按钮也要加上相应的监听,可以写成相关的函数。事件函数包含定义按钮等等操作private void event() { this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { try {...原创 2019-05-30 23:35:16 · 2659 阅读 · 0 评论 -
Tomcat使用报错
1.在使用Tomcat的时候,如果报错Tomcat is using…表明在后台中tomcat未关闭,找到bin目录下的shutdown批处理进行关闭即可。2.Tomcat server at localhost failed to start这个错误表示Tomcat server相关并未卸载干净,首先将之前的涉及到tomcat的程序删除,在程序空间中删除,然后在window的show view...原创 2019-06-12 23:28:23 · 120 阅读 · 0 评论 -
代写课设心得体会
题目要求:综合作业目的利用面向对象的思想解决问题掌握类、封装、继承(抽象类)、多态(接口)、组合(对象成员)的基本使用方法了解GUI、异常处理内容(如下述内容或自选)(1)抽象图形类Geo,属性: string color颜色:属性Integer. x Integer y, Integer z表示图形坐标,其中二维图形的z=null抽象方法:平移图形的两个方法public abstract...原创 2019-06-02 23:49:47 · 546 阅读 · 0 评论 -
使用Java来进行数据分析,画图
在平时涉及到数据分析以及画图一般都是用MATLAB或者Python,在这两个之中都有封装好的库,可以直接使用造好的轮子。而在Java中自带jar包并没有相关功能,需要导入外部包jfreechart-1.0.13.jarjcommon-1.0.16.jargnujaxp.jar运行结果如下图柱形图1代码段package com.njue.testJFreeChart;impor...转载 2019-06-03 00:02:34 · 17778 阅读 · 2 评论 -
自学Linux系统个人记录(三)
上一篇博文里面写了关于远程管理的没说完,这次看完了。可以详细的讲讲。在虚拟机不联网状态下,网络设置为host only模式可以通过电脑本机去ping虚拟机先在命令行中输入ipconfig,查看本机IP然后在Linux中ping192.168.224.2(其中虚拟机VM1的地址为192.168.224.1)即可ping通。还可通过虚拟机的Linux系统去ping局域网。需要将虚拟机的网卡配置为网...原创 2018-11-28 23:37:31 · 153 阅读 · 0 评论