weixin_30800807的博客

私信 关注
weixin_30800807
码龄6年
  • 383,793
    被访问量
  • 暂无
    原创文章
  • 49,816
    作者排名
  • 51
    粉丝数量
  • 于 2015-08-23 加入CSDN
获得成就
  • 获得56次点赞
  • 内容获得0次评论
  • 获得362次收藏
荣誉勋章
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

LintCode入门题目

37.反转一个3位整数反转一个只有3位数的整数。样例样例 1:输入: number = 123输出: 321样例 2:输入: number = 900输出: 9注意事项你可以假设输入一定是一个只有三位数的整数,这个整数大于等于100,小于1000。class Solution {publ...
转载
84阅读
0评论
0点赞
发布博客于 2 年前

识别各种不同的网页编码/加密方式【不定期更新】

2019/9/28 由于平时遇到的编码比较多且杂 记性实在太差 决定起草记录之一,基础知识1、ASCII码美国标准信息交换码:ASCII ( American Standard Code for Information Interchange )A在ascii中定义为01000001,也就是十进制65,有了这个标准后,当我们输入A时,计算机就可以通过ascii...
转载
242阅读
0评论
0点赞
发布博客于 2 年前

ZJCTF预赛一个.py的逆向题

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 from hashlib import sha256 4 def xor(a,b): 5 result = [] 6 for (i, j) in zip(a, b): 7 result.append(chr(ord(i) ^ ...
转载
91阅读
0评论
0点赞
发布博客于 2 年前

if(a)是什么意思

if(a)等价于 if(a!=0)if(!a)等价于 if(a==0)转载于:https://www.cnblogs.com/tqing/p/11575109.html
转载
650阅读
0评论
8点赞
发布博客于 2 年前

整理OD一些快捷键和零碎知识点

第一次记录:2019.9.15 完成了近期基本知识点的记录第二次记录:2019.9.16 更新VB和的Delphi的汇编代码特点介绍几个快捷键:Alt+B 断点编辑器,空格键可切换断点状态ctrl+C 当位于某个call中时,用此快捷键返回调用这个CALL的地方Alt+F9 当位于系统API领空时,用此快捷键返回程序领空 (小地址一般是可执行文件领空 如:00...
转载
102阅读
0评论
0点赞
发布博客于 2 年前

CTF实验吧——证明自己吧

题目地址:http://www.shiyanbar.com/ctf/28没有壳 ,vc++ 写的拖进OD观察观察,发现代码很短哟,先来看这俩个call 怀疑他们其中有正确的flag和我们输入的东西对比 强行爆破完寄存器里是没有正确的flag出现的,肯定是在某个函数里算出来的。再进IDA里 main 空格,发现 关键函数就是sub_401060...
转载
59阅读
0评论
0点赞
发布博客于 2 年前

NSCTF-Reverse02 超级详细且简单的办法搞定

没有壳 VC写的观察界面 一个编辑框 一个按钮拖进IDA 在导入表里找到GetDlgItemTextA为什么找这个函数 因为这个函数的作用就是 获取我们输入编辑框的内容双击进入 ctrl+X 交叉引用,然后F5看伪C代码 就一个自定义函数 其他都是系统函数 我们直接进去进去之后 发现就是把我们输入的值分成两队 分别和 4030XX 这一串对0xx7异或...
转载
217阅读
0评论
0点赞
发布博客于 2 年前

CTF-Keylead(ASIS CTF 2015)

将keylead下载到本地用7-ZIP打开,发现主要文件 keylead~在ubuntu里跑起来,发现是个游戏,按回车后要摇出3,1,3,3,7就能获得flag。拖进IDA直接开启远程调试,跑起来。发现关键的地方就是这个 loc_4010D5函数 他会告诉flag 想办法执行到这里回车摇完之后,发现第一个jnz关键的跳转 下断在判断之前把jnz l...
转载
56阅读
0评论
0点赞
发布博客于 2 年前

Beat our dice game and get the flag 击败我们的骰子游戏拿到旗子

文件名:ebCTF-Teaser-BIN100-Dice.exe话不多说 用PEID一看没壳 拖进OD让我们摇出31337这五个数字才能拿到正确的flagcmp dword ptr ss:[ebp-0x5C],0x3原来就是用我们摇出的数字和 他要的数字做比较 如果结果不相等 标志位ZF就=0 ,jnz的判断条件就是 ZF=0的话 就跳转,所以不就把我们的y...
转载
74阅读
0评论
0点赞
发布博客于 2 年前

Redis入门(九)——Jedis的基本使用

Redis入门(九)——Jedis的基本使用目录Jedis简介与安装Jedis的常用APIJedis事物Jedis连接池1.Jedis简介与安装Jedis简介:Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对redis各类API进行封装调用。Jedis的安装:Java操作Redis之前,首先需要确保已经...
转载
42阅读
0评论
0点赞
发布博客于 2 年前

Redis入门(五)——Redis持久化AOF

Redis入门(五)——Redis持久化AOF目录:AOF持久化简介如何配置AOF启动/修复/恢复1..AOF持久化简介以日志的方式来记录每个写操作,将redis执行过程所有写指令记录下来(读操作不做记录),只允许追加文件但是不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容...
转载
74阅读
0评论
0点赞
发布博客于 2 年前

Redis入门(六)——Redis事务

Redis入门(六)——Redis事务目录:redis事务简介redis事务的使用小结1.redis事务简介事务指的是可以一次执行多个命令,本质是一组命令集合,一个事务中的所有命令都会序列化,按顺序的串行化执行而不会被其他命令插入。银行转账就是最经典的事务场景之一。redis事务用于一个队列中,一次性,顺序性。排他性的执行一系列命令。传统的关...
转载
57阅读
0评论
0点赞
发布博客于 2 年前

Redis入门(八)——Redis的主从复制

Redis入门(八)——Redis的主从复制目录Redis主从复制简介如何配置测试复制复制原理哨兵模式1.Redis主从复制简介当系统的访问量越来越大,一台redis服务器已经支撑不了如此大的访问量时,为了解决这个问题,通常会采取的一种方式是主从架构Master/Slave,Master 以写为主,Slave 以读为主,Master 主节点更新...
转载
56阅读
0评论
0点赞
发布博客于 2 年前

Redis入门(七)——Redis发布订阅

Redis入门(七)——Redis发布订阅目录:Redis发布订阅简介Redis发布订阅命令1.Redis发布订阅简介Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户...
转载
49阅读
0评论
0点赞
发布博客于 2 年前

Redis入门(一)——Redis的简介与安装

Redis入门(一)——Redis的简介与安装目录Redis简介redis安装启动与关闭基本系统命令1.Redis简介REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于...
转载
48阅读
0评论
0点赞
发布博客于 2 年前

Redis入门(四)——Redis持久化RDB

Redis入门(四)——Redis持久化RDB目录:redis持久化简介RDB持久化简介自动触发手动触发1.redis持久化简介Redis 是一个内存数据库,也就是将数据库中的内容保存在内存中,因此它的读写速度会远远大于传统的MySQL,Oracle等关系型数据库(直接将内容保存到硬盘中)。但是保存在内存中也随之带来了一个缺点,一旦断电或者宕...
转载
106阅读
0评论
0点赞
发布博客于 2 年前

Redis入门(三)——Redis基本数据类型

Redis入门(三)——Redis基本数据类型Redis 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。目录string数据类型list数据类型set数据类型hash数据类型zset数据类型1.string数据类型string是redis中最简单的一种数据结构,是一种key-...
转载
43阅读
0评论
0点赞
发布博客于 2 年前

linux下安装java8

linux中安装jdk其实非常简单,只需要将下载好的java在系统中解压,然后配置环境变量即可。一、环境软件准备操作系统:centos 64位软件:jdk1.8下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html下载压缩包:jdk-8u221-linux-x64.tar.g...
转载
41阅读
0评论
0点赞
发布博客于 2 年前

python中list、tuple、dict、set的区别

list有序的列表,用[]括起来,可以改变;tuple有序的列表,用()括起来,不可改变;dict键值对列表,无序,键不可变;set无序不重复元素集,可以计算交集、差集和并集等;转载于:https://www.cnblogs.com/wx-mm/p/11527743.html...
转载
34阅读
0评论
0点赞
发布博客于 2 年前

git使用及代码上传

git是一个远程代码管理软件,创建本地git库可以进行软件版本管理,另外也可以链接到远程git实现代码的备份管理。下面简单记录一下使用方法;1、注册github账号,并创建一个Repositories箭头指的地方是url,有https和ssh两种(目前不了解其区别),相当于远程仓库地址,远程链接时需要2、本地下载git软件,网上能找到,然后随便找一个...
转载
38阅读
0评论
0点赞
发布博客于 2 年前

springbootHelloWorld

//pom.xml<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1...
转载
22阅读
0评论
0点赞
发布博客于 2 年前

改变windows锁屏时间

“锁屏界面设置"->"屏幕保护程序设置"->调整”等待"时间转载于:https://www.cnblogs.com/simple-raxit/p/11269583.html
转载
450阅读
0评论
0点赞
发布博客于 2 年前

Spring-Features

Core technologies: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.Testing: mock objects, TestContext framework, Spring MVC Test,Web...
转载
53阅读
0评论
0点赞
发布博客于 2 年前

StringUtils

StringUtils.isEmpty()--null,长度为零StringUtils.isBlank()--null,长度为零,空串转载于:https://www.cnblogs.com/simple-raxit/p/11308185.html
转载
14阅读
0评论
0点赞
发布博客于 2 年前

解决C#连接Mongo报Unable to authenticate using sasl protocol mechanism SCRAM-SHA-1错误

最近做一个基于ABP的.net Core的项目,数据库选了MongoDB,但是返现无法给数据库设置认证,只要设置了账号密码连接就报错连接串如下:mongodb://root:rootpassword@192.168.100.1/Webdev已经给了root用户"__system"角色,使用Robo3T登录一切正常。但是代码就是报错An unhandled except...
转载
1146阅读
0评论
0点赞
发布博客于 2 年前

将Jexus+mono和网站一起通过Dockerfile打包到docker镜像

上次使用别人打包好的docker镜像,往里边加入文件,最终asp.net的docker容器化运行。这次决定直接全新打包一个jexus+asp.net网站的docker包。进入root目录,并在root目录下建立一个名称为docker的目录作为我们这次打包项目的基础目录。#cd /root#mkdir docker#cd docker首先准备.Net运行环...
转载
99阅读
0评论
0点赞
发布博客于 2 年前

Mac 下 brew的卸载 插件

brew 又叫 Homebrew,是 Mac OSX 上的软件包管理工具,能在 Mac 命令行中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便brew 类似 ubuntu 系统下的 apt-get 功能安装brewbrew 的官方网站: http://brew.sh/ 在官方网站对brew的用法进行了详细的描述使用 brew 安装软件brew install w...
转载
196阅读
0评论
0点赞
发布博客于 2 年前

[转发]Android视频技术探索之旅:美团外卖商家端的实践

美团技术团队2019-09-12 20:02:11背景2013年美团外卖成立,至今一直迅猛发展。随着外卖业务量级与日俱增,单一的文字和图片已无法满足商家的需求,商家迫切需要更丰富的商品描述手段吸引用户,增加流量,进而提高下单转化率和下单量。商品视频的引入,在一定程度上可以提升商品信息描述丰富度,以更加直观的方式为商家引流,增加收益。为此,商家端引入了视频功能,进行了一系...
转载
89阅读
0评论
0点赞
发布博客于 2 年前

Mac 内存清理

1、清理前后的对比清理前:清理后: 内存多了20G2、思路首先,我先看了很多人的经验贴,按照他们的路子查到最后,并没有找到他们指出的大文件。很显然,Mac的使用方式不同,其内存分配肯定也会不同。在这个过程中,他们教会了我进行内存分析的基本思路和一些有用的命令。接下来,就是查出我的Mac里的大文件了。3、清理工具:iTerm2命令:cd ../ ...
转载
200阅读
0评论
0点赞
发布博客于 2 年前

iOS-VideoToolbox硬编码H264

前言VideoToolBox是iOS8之后,苹果开发的用于硬解码编码H264/H265(iOS11以后支持)的API。对于H264还不了解的童鞋一定要先看下这边的H264的简介。编码流程我们实现一个简单的Demo,从摄像头获取到视频数据,然后再编码成H264裸数据保存在沙盒中。1. 创建初始化VideoToolBox核心代码如下...
转载
80阅读
0评论
0点赞
发布博客于 2 年前

H264基础简介

前言H264是属于视频的编码层的标准格式,视频编码显然是为了压缩大小。我们看下一个完全没压缩的视频数据大小。假设视频是高清(1280 * 720),每秒30帧,也就是每秒的数据1280 * 720 *30 / 8(字节) /1024(KB)/1024(MB) = 3.11MB那么90分钟的电影就要16.7GB,这个数据量显然在当前网络下是不现实的。视频...
转载
44阅读
0评论
0点赞
发布博客于 2 年前

iOS (APP)进程间8中常用通信方式总结

1 URL Scheme2 Keychain3 UIPasteboard4 UIDocumentInteractionController5 local socket6 AirDrop7 UIActivityViewController8 App GroupsiOS系统是相对封闭的系统,App各自在各自的沙盒(...
转载
6阅读
0评论
0点赞
发布博客于 2 年前

浅述不同版本ios系统有什么特点 ios 1 -ios 12

版本记录版本号时间V2.02019.08.20前言到目前为止,ios的版本已经发到了ios11的测试版,今年正式版马上就会出来,ios发布了这么多的版本,到底每个版本都有什么显著的特点?用户最钟情于哪一个版本呢?带着这些问题,我想总结一下ios这些版本的特点。iOS 1增加了触屏功能,捏拉缩放滚动等交互很完美,使用户...
转载
323阅读
0评论
0点赞
发布博客于 2 年前

ios 修饰词作用

copy: NSString\NSMutableString\Block weak: 代理、UI控件(weak)strong: 其他OC对象 assign: 基本数据类型(int\float)、枚举、结构体一般都是在ARC中,对于ARC来说,对象释放的最终根据还是根据引用计数为0时去释放。而weak与strong的根本区别是在set方法中,weak的set方法...
转载
21阅读
0评论
0点赞
发布博客于 2 年前

iOS App的几种安全防范

虽然公司的项目目前还不算健壮,安全问题对于大部分小公司来说似乎并没什么必要,不过要攻击的话,我有十足的把握,我们是无法承受冲击的。嘿嘿嘿~不过带着一颗入坑iOS的心思,搜集了一下资料后,还是做了一些尝试。iOS App安全防范总结:1.防止抓包篡改数据2.防止反编译3.阻止动态调试4.防止二次打包关键检测:越狱检测OK,下面是正文开始。...
转载
32阅读
0评论
0点赞
发布博客于 2 年前

从三层架构迈向领域驱动设计(转载)

三层架构严格分层架构模式的特点是上层只能访问相邻的下层,其他层次间的调用都不允许。三层架构就是一种严格分层模式,它把职责划分为界面展示、业务逻辑、数据访问三层,还有一个业务实体,前面三层都要依赖它,所以它并不构成一个层。三层架构的特点是一种面向过程的编程思想,特点如下:a. 业务实体类中基本上只有属性没有方法。b. 业务逻辑层的类基本上只有方法没有属性。c. 将数据表结构映射...
转载
36阅读
0评论
0点赞
发布博客于 2 年前

MySQL数据库设计规范

MySQL数据库设计规范目录1. 规范背景与目的2. 设计规范2.1 数据库设计2.1.1 库名2.1.2 表结构2.1.3 列数据类型优化2.1.4 索引设计2.1.5 分库分表、分区表2.1.6 字符集2.1.7 程序DAO层设计建议2.1.8 一个规范的建表语句示例2.2 SQL编写2.2.1 DML语句2.2.2 多表连接2.2.3 事务2.2....
转载
35阅读
0评论
0点赞
发布博客于 2 年前

RestTemplate相关组件:ClientHttpRequestInterceptor【享学Spring MVC】

每篇一句做事的人和做梦的人最大的区别就是行动力前言本文为深入了解Spring提供的Rest调用客户端RestTemplate开山,对它相关的一些组件做讲解。Tips:请注意区分RestTemplate和RedisTemplate哦~ClientHttpRequestFactory它是个函数式接口,用于根据URI和HttpMethod创建出一个ClientHttpReq...
转载
968阅读
0评论
0点赞
发布博客于 2 年前

为何一个@LoadBalanced注解就能让RestTemplate拥有负载均衡的能力?【享学Spring Cloud】...

每篇一句你应该思考:为什么往往完成比完美更重要?前言在Spring Cloud微服务应用体系中,远程调用都应负载均衡。我们在使用RestTemplate作为远程调用客户端的时候,开启负载均衡极其简单:一个@LoadBalanced注解就搞定了。相信大家大都使用过Ribbon做Client端的负载均衡,也许你有和我一样的感受:Ribbon虽强大但不是特别的好用。我研究了一番,其...
转载
182阅读
0评论
0点赞
发布博客于 2 年前

为何Spring MVC可获取到方法参数名,而MyBatis却不行?【享学Spring MVC】

每篇一句胡适:多谈些问题,少聊些主义前言Spring MVC和MyBatis作为当下最为流行的两个框架,大家平时开发中都在用。如果你往深了一步去思考,你应该会有这样的疑问:在使用Spring MVC的时候,你即使不使用注解,只要参数名和请求参数的key对应上了,就能自动完成数值的封装在使用MyBatis(接口模式)时,接口方法向xml里的SQL语句传参时,必须(当然不是1...
转载
37阅读
0评论
0点赞
发布博客于 2 年前

你知道@RequestMapping的name属性有什么用吗?【享学Spring MVC】

每篇一句牛逼架构师:把复杂问题简单化,把简单问题搞没菜逼架构师:把简单问题复杂化前言不知这个标题能否勾起你的好奇心和求知欲?在Spring MVC的使用中,若我说@RequestMapping是最为常用的一个注解你应该没啥意见吧。若你细心的话你能发现它有一个name属性(Spring4.1后新增),大概率你从来都没有使用过且鲜有人知。我本人搜了搜相关文章,也几乎没有一篇文章...
转载
402阅读
0评论
0点赞
发布博客于 2 年前

HandlerMethodArgumentResolver(二):Map参数类型和固定参数类型【享学Spring MVC】

每篇一句黄金的导电性最好,为什么电脑主板还是要用铜?飞机最快,为什么还有人做火车?清华大学最好,为什么还有人去普通学校?因为资源都是有限的,我们现实生活中必须兼顾成本与产出的平衡前言上文 介绍了Spring MVC用于处理入参的处理器:HandlerMethodReturnValueHandler它的作用,以及介绍了最为常用的两个参数处理器子类:PathVariableM...
转载
26阅读
0评论
0点赞
发布博客于 2 年前

@Qualifier高级应用---按类别批量依赖注入【享学Spring】

每篇一句罗斯:选秀状元可能有水货,但MVP绝对没有前言在上篇文章(讲解@LoadBalanced负载均衡)的末尾,我抛出了一个很重要的问题,建议小伙伴自己深入思考一番;本文主要针对此问题,作出一个统一的答复和讲解。由于本人觉得这块知识点它属于Spring Framework的核心内容之一,非常的重要,因此单拎出来作专文讲述,希望对你有所帮助。背景案例说到@Qualifie...
转载
135阅读
0评论
1点赞
发布博客于 2 年前

HandlerMethodArgumentResolver(一):Controller方法入参自动封装器【享学Spring MVC】

每篇一句你的工作效率高,老板会认为你强度不够。你代码bug多,各种生产环境救火,老板会觉得你是团队的核心成员。前言在享受Spring MVC带给你便捷的时候,你是否曾经这样疑问过:Controller的handler方法参数能够自动完成封装(有时即使没有@PathVariable、@RequestParam、@RequestBody等注解都可),甚至在方法参数任意位置写Http...
转载
33阅读
0评论
0点赞
发布博客于 2 年前

RestTemplate的使用和原理你都烂熟于胸了吗?【享学Spring MVC】

每篇一句人圆月圆心圆,人和家和国和---中秋节快乐前言在阅读本篇之前,建议先阅读开山篇效果更佳。RestTemplate是Spring提供的用于访问Rest服务的客户端工具,它提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。弱弱呼吁一句:对于那些在Spring环境下还在使用HttpClient(或其它Client)的同学,今儿看完本文后,建议切换到Re...
转载
47阅读
0评论
0点赞
发布博客于 2 年前

Spring MVC内置支持的4种内容协商方式【享学Spring MVC】

每篇一句十个光头九个富,最后一个会砍树前言不知你在使用Spring Boot时是否对这样一个现象"诧异"过:同一个接口(同一个URL)在接口报错情况下,若你用rest访问,它返回给你的是一个json串;但若你用浏览器访问,它返回给你的是一段html。恰如下面例子(Spring Boot环境~):@RestController@RequestMappingpublic cl...
转载
36阅读
0评论
0点赞
发布博客于 2 年前

从原理层面掌握@InitBinder的使用【享学Spring MVC】

每篇一句大魔王张怡宁:女儿,这堆金牌你拿去玩吧,但我的银牌不能给你玩。你要想玩银牌就去找你王浩叔叔吧,他那银牌多前言为了讲述好Spring MVC最为复杂的数据绑定这块,我前面可谓是做足了功课,对此部分知识此处给小伙伴留一个学习入口,有兴趣可以点开看看:聊聊Spring中的数据绑定 --- WebDataBinder、ServletRequestDataBinder、WebBi...
转载
118阅读
0评论
0点赞
发布博客于 2 年前

ModelAndViewContainer、ModelMap、Model详细介绍【享学Spring MVC】

每篇一句一个开源的技术产品做得好不好,主要是看你能解决多少非功能性问题(因为功能性问题是所有产品都能够想到的)前言写这篇文章非我本意,因为我觉得对如题的这个几个类的了解还是比较基础且简单的一块内容,直到有超过两个同学问过我一些问题的时候:通过聊天发现小伙伴都听说过这几个类,但对于他们的使用、功能定位是傻傻分不清楚的(因为名字上都有很多的相似之处)。那么书写本文就是当作一篇科普...
转载
51阅读
0评论
0点赞
发布博客于 2 年前

从原理层面掌握@ModelAttribute的使用(核心原理篇)【一起学Spring MVC】

每篇一句我们应该做一个:胸中有蓝图,脚底有计划的人前言Spring MVC提供的基于注释的编程模型,极大的简化了web应用的开发,我们都是受益者。比如我们在@RestController标注的Controller控制器组件上用@RequestMapping、@ExceptionHandler等注解来表示请求映射、异常处理等等。使用这种注解的方式来开发控制器我认为最重要的优势是...
转载
30阅读
0评论
0点赞
发布博客于 2 年前

HandlerMethodArgumentResolver(三):基于消息转换器的参数处理器【享学Spring MVC】

每篇一句一个事实是:对于大多数技术,了解只需要一天,简单搞起来只需要一周。入门可能只需要一个月前言通过 前面两篇文章 的介绍,相信你对HandlerMethodArgumentResolver了解已经很深刻了。但是你或许和我一样还有一种感觉,似乎还缺点什么:我们使用非常频繁的@RequestBody是怎么封装请求体的呢???这块使用非常广泛的地方却还木有讲解到,因为它的处理方...
转载
22阅读
0评论
0点赞
发布博客于 2 年前

为何Spring MVC可获取到方法参数名,而MyBatis却不行?【享学Spring MVC】

每篇一句胡适:多谈些问题,少聊些主义前言Spring MVC和MyBatis作为当下最为流行的两个框架,大家平时开发中都在用。如果你往深了一步去思考,你应该会有这样的疑问:在使用Spring MVC的时候,你即使不使用注解,只要参数名和请求参数的key对应上了,就能自动完成数值的封装在使用MyBatis(接口模式)时,接口方法向xml里的SQL语句传参时,必须(当然不是1...
转载
24阅读
0评论
0点赞
发布博客于 2 年前

内容协商在视图View上的应用【享学Spring MVC】

每篇一句人生很有意思:首先就得活得长。活得长才能够见自己,再长就可以见众生前言在经过 前两篇 文章了解了Spring MVC的内容协商机制之后,相信你已经能够熟练的运用Spring MVC提供的这项能力,配合RESTful发挥它的功效了。这其实也就达到了我们目的的80%,也达到了我书写这块知识点的目的。为何说是80%呢?因为我认为在前后端完全分离的今天,绝大部分使用场景都是这...
转载
56阅读
0评论
0点赞
发布博客于 2 年前

Spring MVC内容协商实现原理及自定义配置【享学Spring MVC】

每篇一句在绝对力量面前,一切技巧都是浮云前言上文 介绍了Http内容协商的一些概念,以及Spring MVC内置的4种协商方式使用介绍。本文主要针对Spring MVC内容协商方式:从步骤、原理层面理解,最后达到通过自己来扩展协商方式效果。首先肯定需要介绍的,那必然就是Spring MVC的默认支持的四大协商策略的原理分析喽:ContentNegotiationStrate...
转载
44阅读
0评论
0点赞
发布博客于 2 年前

解决多字段联合逻辑校验问题【享学Spring MVC】

每篇一句不要像祥林嫂一样,天天抱怨着生活,日日思考着辞职。得罪点说一句:“沦落”到要跟这样的人共事工作,难道自己身上就没有原因?前言本以为洋洋洒洒的把Java/Spring数据(绑定)校验这块说了这么多,基本已经算完结了。但今天中午一位热心小伙伴在使用Bean Validation做数据校验时上遇到了一个稍显特殊的case,由于此校验场景也比较常见,因此便有了本文对数据校验补充...
转载
385阅读
0评论
0点赞
发布博客于 2 年前

从原理层面掌握@SessionAttribute的使用【一起学Spring MVC】

每篇一句不是你当上了火影大家就认可你,而是大家都认可你才能当上火影前言该注解顾名思义,作用是将Model中的属性同步到session会话当中,方便在下一次请求中使用(比如重定向场景~)。虽然说Session的概念在当下前后端完全分离的场景中已经变得越来越弱化了,但是若为web开发者来说,我仍旧强烈不建议各位扔掉这个知识点,so我自然就建议大家能够熟练使用@SessionAtt...
转载
43阅读
0评论
0点赞
发布博客于 2 年前

从原理层面掌握@ModelAttribute的使用(使用篇)【一起学Spring MVC】

每篇一句每个人都应该想清楚这个问题:你是祖师爷赏饭吃的,还是靠老天爷赏饭吃的前言上篇文章 描绘了@ModelAttribute的核心原理,这篇聚焦在场景使用上,演示@ModelAttribute在不同场景下的使用,以及注意事项(当然有些关联的原理也会涉及)。为了进行Demo演示,首先得再次明确一下@ModelAttribute的作用。@ModelAttribute的作用虽...
转载
20阅读
0评论
0点赞
发布博客于 2 年前

从原理层面掌握@RequestAttribute、@SessionAttribute的使用【一起学Spring MVC】

每篇一句改我们就改得:取其精华,去其糟粕。否则木有意义前言如果说知道@SessionAttributes这个注解的人已经很少了,那么不需要统计我就可以确定的说:知道@RequestAttribute注解的更是少之又少。我觉得主要有如下两个原因:@RequestAttribute这个注解很新,Spring4.3后才有我们可以使用API调用的方式(ServletRequest...
转载
56阅读
0评论
0点赞
发布博客于 2 年前

从深处去掌握数据校验@Valid的作用(级联校验)

每篇一句NBA里有两大笑话:一是科比没天赋,二是詹姆斯没技术相关阅读【小家Java】深入了解数据校验:Java Bean Validation 2.0(JSR303、JSR349、JSR380)Hibernate-Validation 6.x使用案例【小家Spring】让Controller支持对平铺参数执行数据校验(默认Spring MVC使用@Valid只能对JavaBe...
转载
124阅读
0评论
0点赞
发布博客于 2 年前

从原理层面掌握HandlerMethod、InvocableHandlerMethod、ServletInvocableHandlerMethod的使用【一起学Spring MVC】...

每篇一句想当火影的人没有近道可寻,当上火影的人同样无路可退前言HandlerMethod它作为Spring MVC的非公开API,可能绝大多数小伙伴都对它比较陌生,但我相信你对它又不是那么的生疏,因为你可能没用过但肯定见过。比如Spring MVC的拦截器HandlerInterceptor的拦截方法的第三个入参Object handler,虽然它是Object类型,但其实绝...
转载
94阅读
0评论
0点赞
发布博客于 2 年前

@Validated和@Valid的区别?校验级联属性(内部类)

每篇一句NBA里有两大笑话:一是科比没天赋,二是詹姆斯没技术相关阅读【小家Java】深入了解数据校验:Java Bean Validation 2.0(JSR303、JSR349、JSR380)Hibernate-Validation 6.x使用案例【小家Spring】让Controller支持对平铺参数执行数据校验(默认Spring MVC使用@Valid只能对JavaBe...
转载
157阅读
0评论
0点赞
发布博客于 2 年前

Bean Validation完结篇:你必须关注的边边角角(约束级联、自定义约束、自定义校验器、国际化失败消息...)...

每篇一句没有任何技术方案会是一种银弹,任何东西都是有利弊的相关阅读【小家Java】深入了解数据校验:Java Bean Validation 2.0(JSR303、JSR349、JSR380)Hibernate-Validation 6.x使用案例【小家Spring】Spring方法级别数据校验:@Validated + MethodValidationPostProcess...
转载
170阅读
0评论
0点赞
发布博客于 2 年前

Spring方法级别数据校验:@Validated + MethodValidationPostProcessor

每篇一句在《深度工作》中作者提出这么一个公式:高质量产出=时间*专注度。所以高质量的产出不是靠时间熬出来的,而是效率为王相关阅读【小家Java】深入了解数据校验:Java Bean Validation 2.0(JSR303、JSR349、JSR380)Hibernate-Validation 6.x使用案例【小家Java】深入了解数据校验(Bean Validation):...
转载
153阅读
0评论
0点赞
发布博客于 2 年前

让Controller支持对平铺参数执行@Valid数据校验

每篇一句在金字塔塔尖的是实践,学而不思则罔,思而不学则殆(现在很多编程框架都只是教你碎片化的实践)相关阅读【小家Java】深入了解数据校验:Java Bean Validation 2.0(JSR303、JSR349、JSR380)Hibernate-Validation 6.x使用案例【小家Spring】@Validated和@Valid的区别?教你使用它完成Control...
转载
69阅读
0评论
0点赞
发布博客于 2 年前

详述Spring对数据校验支持的核心API:SmartValidator

每篇一句要致富,先修路。要使用,先...基础是需要垒砌的,做技术切勿空中楼阁相关阅读【小家Java】深入了解数据校验:Java Bean Validation 2.0(JSR303、JSR349、JSR380)Hibernate-Validation 6.x使用案例【小家Java】深入了解数据校验(Bean Validation):基础类打点(ValidationProvid...
转载
28阅读
0评论
0点赞
发布博客于 2 年前

Apache和Spring提供的StopWatch执行时间监视器

相关阅读【小家java】java5新特性(简述十大新特性) 重要一跃【小家java】java6新特性(简述十大新特性) 鸡肋升级【小家java】java7新特性(简述八大新特性) 不温不火【小家java】java8新特性(简述十大新特性) 饱受赞誉【小家java】java9新特性(简述十大新特性) 褒贬不一【小家java】java10新特性(简述十大新特性) 小步迭代【小家...
转载
37阅读
0评论
0点赞
发布博客于 2 年前

Ubuntu密码忘记更改操作

第一步,重启ubuntu;第二步,长按shift进入grub菜单(有的不用按直接进入如下菜单);点击高级选项;第三步,选中recovery mode(如下图第2个);按"e"键进入编辑页面;第四步,进入编辑界面后;找到如下图标记位置将ro 替换为 rw...
转载
35阅读
0评论
0点赞
发布博客于 2 年前

Android进阶-Android APK安装过程

APK安装的主要步骤为了学习这个过程,真的是陷入了pms的源码很久,也看了很多前人的博文,才算是有了些思路,所以此处先把主要步骤列出来,后面再慢慢分析细节。将apk文件复制到data/app目录解析apk信息dexopt操作更新权限信息完成安装,发送Intent.ACTION_PACKAGE_ADDED广播下面将具体步骤列张图出来:由图可见安装...
转载
19阅读
0评论
0点赞
发布博客于 2 年前

Android进阶-Android MVP模式详解

一、MVP概述MVP,全称 Model-View-Presenter,即模型-视图-层现器。提到MVP,就必须要先介绍一下它的前辈MVC,因为MVP正是基于MVC的基础发展而来的。两个之间的关系也是源远流长。MVC,全称Model-View-Controller,即模型-视图-控制器。View:对应于布局文件Model:业务逻辑和实体模型Controllor:对应...
转载
23阅读
0评论
0点赞
发布博客于 2 年前

Android进阶-Android内存泄漏总结

Android内存泄露总结内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收我会从 java 内存泄漏的基础知识开始,并通过具体例子来说明 Android 引起内存泄漏的各种原因,以及如何利用工具来分析应用内存泄漏,最后再做总结。...
转载
22阅读
0评论
0点赞
发布博客于 2 年前

Android进阶-一个APP从启动到主页显示经过了哪些过程?

一、流程概述启动流程:①点击桌面App图标,Launcher进程采用Binder IPC向System_server进程发起startActivity请求;②system_server进程收到请求后,向zygote进程发送创建进程的请求;③zygote进程fork出新的子进程,即App进程;④App进程,通过Binder IPC向system_server进程发起...
转载
35阅读
0评论
0点赞
发布博客于 2 年前

Android基础-Android Context详解

Activity mActivity =new Activity()作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢?估计很多人说不清道不明。Android程序不像Java程序一样,随便创建一个类,写个main()方法就能运行,Android...
转载
11阅读
0评论
0点赞
发布博客于 2 年前

Android基础-Android动画总结

一、动画分类总的来说,Android动画可以分为两类,最初的传统动画和Android3.0 之后出现的属性动画;传统动画又包括 帧动画(Frame Animation)和补间动画(Tweened Animation)。二、传统动画帧动画帧动画是最容易实现的一种动画,这种动画更多的依赖于完善的UI资源,他的原理就是将一张张单独的图片连贯的进行播放,从而在视觉上产生...
转载
29阅读
0评论
0点赞
发布博客于 2 年前

Android基础-Android Bitmap高效加载策略

关于图片的加载,现在已经有很多主流的框架,如Glide,Volley等帮我们快速实现。其实这其中都包含了图片高效加载的策略,缓存策略等。本篇文章主要介绍Bitmap是如何实现高效加载的?一、为什么Bitmap需要高效加载?现在的高清大图,动辄就要好几M,而Android对单个应用所施加的内存限制,只有小几十M,如16M,这导致加载Bitmap的时候很容易出现内存溢出。如下异常信息...
转载
15阅读
0评论
0点赞
发布博客于 2 年前

经典排序算法总结(含JAVA代码实现)

0、排序算法说明0.1 排序的意义对一序列对象根据某个关键字进行排序0.2 术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度:一...
转载
23阅读
0评论
0点赞
发布博客于 2 年前

Android单例模式

一、单例模式1.定义作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。2.特点单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。二、创建单例模式的方法1.懒汉式,线程不安全懒汉式其实是一种比较形象的称谓。既然懒,那么在创建对象实例的时候就不着...
转载
21阅读
0评论
0点赞
发布博客于 2 年前

Android基础-Android虚拟机及编译过程

一、什么是Dalvik虚拟机?Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的Java应用程序的运行。ex格式是专门为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Google对其进行了特定的优化,使得Dalvik具有高效、简洁、节省资源的特点。...
转载
60阅读
0评论
0点赞
发布博客于 2 年前

Android进阶-Android性能优化总结

一、Android性能优化的方面针对Android的性能优化,主要有以下几个有效的优化方法:1.布局优化2.绘制优化3.内存泄漏优化4.响应速度优化5.ListView/RecycleView及Bitmap优化6.线程优化7.其他性能优化的建议下面我们具体来介绍关于以上这几个方面优化的具体思路及解决方案。二、布局优化关于布局优化的思想很简...
转载
20阅读
0评论
0点赞
发布博客于 2 年前

Android基础-View测量、布局及绘制原理

一、View绘制的流程框架View的绘制是从上往下一层层迭代下来的。DecorView-->ViewGroup(--->ViewGroup)-->View ,按照这个流程从上往下,依次measure(测量),layout(布局),draw(绘制)二、Measure流程顾名思义,就是测量每个控件的大小。调用measure()方法,进行一...
转载
18阅读
0评论
0点赞
发布博客于 2 年前

Android进阶-Android权限处理

一、权限处理分类由上图可以看出,主要分为四类。下表逐一介绍各类对应的一些情况。二、动态权限申请虽然总的来说分为四类,但是只需要处理一种情况,即动态申请权限。其他三种情况,要么默认实现,要么系统定制,无法从代码角度进行调整。那么下面先来看下那些权限需要动态申请。(1)权限列表Android6.0以上把权限分为普通权限和危险权限,所以危险权限是需要动态申...
转载
21阅读
0评论
0点赞
发布博客于 2 年前

Android基础-Android进程优先级

在安卓系统中:当系统内存不足时,Android系统将根据进程的优先级选择杀死一些不太重要的进程,优先级低的先杀死。进程优先级从高到低如下。前台进程处于正在与用户交互的activity与前台activity绑定的service调用了startForeground()方法的service正在执行oncreate(),onstart(),ondestroy方法的 ...
转载
40阅读
0评论
0点赞
发布博客于 2 年前

Android基础-Window、Activity、DecorView以及ViewRoot之间的关系

一、职能简介ActivityActivity并不负责视图控制,它只是控制生命周期和处理事件。真正控制视图的是Window。一个Activity包含了一个Window,Window才是真正代表一个窗口。Activity就像一个控制器,统筹视图的添加与显示,以及通过其他回调方法,来与Window、以及View进行交互。WindowWindow是视图的承载器,内部持有一个...
转载
109阅读
0评论
0点赞
发布博客于 2 年前

Android基础-LruCache原理解析

一、Android中的缓存策略一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的。当缓存满了之后,再想其添加缓存,这个时候就需要删除一些旧的缓存并添加新的缓存。因此LRU(Least Recently Used)缓存算法便应运而生,LRU是最近最少使用...
转载
16阅读
0评论
0点赞
发布博客于 2 年前

Android基础-Android进程间通信方式

  IPC为进程间通信或跨进程通信,是指两个进程进行进程间通信的过程。在PC和移动设备上一个进程指的是一个程序或者一个应用,所以我们可以将进程间通信简单理解为不同应用之间的通信,当然这种说法并不严谨。  在Android中,为每一个应用程序都分配了一个独立的虚拟机,或者说每个进程都分配了一个独立的虚拟机,不同虚拟机在内存分配上有不同的地址空间,这就导致了在不同的虚拟机间访问数据需要借...
转载
72阅读
0评论
0点赞
发布博客于 2 年前

Android基础-AsyncTask详解

一、Android中的线程在操作系统中,线程是操作系统调度的最小单元,同时线程又是一种受限的系统资源,即线程不可能无限制地产生,并且线程的创建和销毁都会有相应的开销。当系统中存在大量的线程时,系统会通过会时间片轮转的方式调度每个线程,因此线程不可能做到绝对的并行。如果在一个进程中频繁地创建和销毁线程,显然不是高效的做法。正确的做法是采用线程池,一个线程池中会缓存一定数量的线程,通...
转载
21阅读
0评论
0点赞
发布博客于 2 年前

Android基础-IntentService详解

一、定义IntentService是Android里面的一个封装类,继承自四大组件之一的Service二、作用处理异步请求,实现多线程三、工作流程注意:若启动IntentService多次,那么每个耗时操作则以队列的方式在IntentService的onHandleIntent回调方法中依次执行,执行完自动结束。四、实现步骤步骤...
转载
27阅读
0评论
0点赞
发布博客于 2 年前

Android基础-HanderThread详解

我们知道在Android系统中,我们执行完耗时操作都要另外开启子线程来执行,执行完线程以后线程会自动销毁。想象一下如果我们在项目中经常要执行耗时操作,如果经常要开启线程,接着又销毁线程,这无疑是很消耗性能的?那有什么解决方法呢?使用线程池使用HandlerThread本篇文章主要讲解一下问题HandlerThread的使用场景以及怎样使用HandlerThre...
转载
16阅读
0评论
0点赞
发布博客于 2 年前

Android基础-Fragment详解

一、目录什么是FragmentFragment的生命周期Fragment的使用方式什么是Fragment的回退栈?【重要】Fragment与Activity之间的通信【难点】Fragment与Activity通信的优化【超难点】如何处理运行时配置发生变化【以屏幕翻转为例】二、Fragment详解1.什么是Fragment?你可以简单的...
转载
13阅读
0评论
0点赞
发布博客于 2 年前

Android基础-事件分发机制

一、基础认知1.事件分发的对象是谁?答:事件当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件(Touch事件)。Touch事件相关细节(发生触摸的位置、时间、历史记录、手势动作等)被封装成MotionEvent对象主要发生的Touch事件有如下四种MotionEvent.ACTION_DOWN:按下View(所...
转载
40阅读
0评论
0点赞
发布博客于 2 年前

Android基础-ContentProvider全方位解析

一、定义ContentProvider,即内容提供者属于Android的四大组件之一。二、作用进程间进行数据交互&共享,即跨进程通信三、原理ContentProvider的底层是采用Android中的Binder机制。详解Android Binder机制四、具体使用关于ContentProvider的使用主要介绍以下内容:...
转载
42阅读
0评论
0点赞
发布博客于 2 年前

Android基础-Service全方位解析

一、Service简介Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件。Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要求长期运行的任务。Service默认并不会运行在子线程中,它也不运行在一个独立的进程中,它同样执行在UI...
转载
27阅读
0评论
0点赞
发布博客于 2 年前

Java网络编程:Java网络编程基础

转自:https://www.cnblogs.com/midiyu/p/7875574.html关于网络网络协议如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间能够进行相互通信是因为它们都共同遵守一定的规则,即网络协议。网络体系结构计算机网络是个复杂的系统,按照人们解决复杂问题的方法,把计算机网络实现的功能分到不同的层次上,层与层之间用接口连接。通信的双方...
转载
11阅读
0评论
0点赞
发布博客于 2 年前

(三十一)、Java IO流总结

IO流概述在这一小节,我会试着给出Java IO(java.io)包下所有类的概述。更具体地说,我会根据类的用途对类进行分组。这个分组将会使你在未来的工作中,进行类的用途判定时,或者是为某个特定用途选择类时变得更加容易。输入和输出术语“输入”和“输出”有时候会有一点让人疑惑。一个应用程序的输入往往是另外一个应用程序的输出那么OutputStream流到底是一个输出...
转载
12阅读
0评论
0点赞
发布博客于 2 年前

Android基础-Activity全方位解析

一、Activity的生命周期本节内容将生命周期的情况分为两部分介绍,第一部分先了解典型的生命周期的7个部分及Activity的状态。第二部分会介绍Activity在一些特殊情况下的生命周期的经历过程。1.典型的生命周期的了解先上经典图关于这张图,我们可能在初学Android时就有接触,今天我们继续回顾一下。在正常情况下,一个Activity从启动到结束会以...
转载
18阅读
0评论
0点赞
发布博客于 2 年前

Android基础-BroadCastReceiver全方位解析

一、定义BroadcastReceiver(广播接收器),属于Android四大组件之一在Android开发中,BroadcastReceiver的应用场景非常多广播,是一个全局的监听器,属于Android四大组件之一Android广播分为两个角色:广播发送者、广播接收者二、作用用于监听 / 接收 应用发出的广播消息,并做出响应应用场景...
转载
78阅读
0评论
0点赞
发布博客于 2 年前

Android基础-Android消息机制

目录:消息机制概述消息机制的源码解析总结一、消息机制概述1.消息机制的简介在Android中使用消息机制,我们首先想到的就是Handler。没错,Handler是Android消息机制的上层接口。Handler的使用过程很简单,通过它可以轻松地将一个任务切换到Handler所在的线程中去执行。通常情况下,Handler的使用场景就是更新UI。...
转载
11阅读
0评论
0点赞
发布博客于 2 年前

Android面试算法篇(java)

Q:怎么理解数据结构?技术点:数据结构思路:数据结构的定义、分类参考回答:研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。按照逻辑结构分类线性结构:线性表、栈、队列非线性结构:树、图按照存储结构分为顺序结构、链式结构、索引结构、哈希结构...
转载
21阅读
0评论
0点赞
发布博客于 2 年前

Java集合(七)、Map集合 HashMap(常用)方法

HashMap的存值import java.util.*;public class test{ public static void main(String[] args) { HashMap<Integer, String> map = new HashMap<>(); map.put(1...
转载
26阅读
0评论
0点赞
发布博客于 2 年前

python3判断输入的数是否为素数

首先,需要明确什么是素数?  素数:又称质数,指在大于1的自然数中,除了1和该数本身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。  举个例子:5---除了能被1或5整除外,再也找不到第三个可以整除它的自然数了。那么5就是素数。那么,如果用程序如何来判断它是不是素数?实现思路:1 需要先输入一个被判断的数字并赋值给 Number2 判...
转载
508阅读
0评论
0点赞
发布博客于 2 年前

python3求两个数的最大公约数

啥叫公约数呢?  公约数:它是一个能被若干个整数同时均整除的整数。如果一个整数同时是几个整数的约数,称这个整数为它们的“公约数”;公约数中最大的称为最大公约数  举个栗子:12和18的公约数有 1、2、3、6 因为12和18能同时被这几个数整除。其中6是最大的公约数程序实现思路:1 两个数的最大公约数肯定不会大于两个数中较小的数2 如果较大的数能整除较小的数,那较...
转载
433阅读
0评论
0点赞
发布博客于 2 年前

报错:TypeError: 'tuple' object is not callable以及解决办法之一

最近在学习一点新东西,被各种坑折磨的简直苦不堪言:背景:  我是看着书上代码学习的,书上的是用python2.7版本语言写的,而我是用的python3.6写的。对于这个报错,也划分在语法的差异吧 。因为在python2.7中的确实可以执行且没有报错。报错代码 :报错内容:就是这样的一个报错,各种百度解决方法,其实没有找到靠谱的,最终还是东拼...
转载
400阅读
0评论
0点赞
发布博客于 2 年前