自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

原创 还在JSP中写Java代码,是何居心?

前言第一次接触jsp是在初中,在学习他后做了一个个人博客,后来一直没使用过他,原因有很多,但是今天还是想记录一篇关于JSP的,多数是因为身边的小伙伴。我记得我也是从JSP学起的,而非Servlet,先学习了那几个内置对象,后来大概学了一半吧,学Servlet去了,是因为当时跟着教程,人家在JSP中写Java代码,写各种逻辑,写各种循环,当时我因为循环时一个%>忘写了,半天没找出了,有时又是}忘写了,调试半天。后来才知道一般都是Servlet中处理好逻辑,数据传递给JSP,在JSP中使用JSTL渲染

2020-06-28 15:34:56 871

原创 重回多线程、如何向女朋友解释死锁?

一、和女朋友发生僵持怎么办?那是一个安静祥和的一天,女盆友突然对我说:“去给我买杯奶茶”,我:“行,你给我钱我在帮你买。”女朋友:“你先买回来我在给你钱。”我:“你不给钱我怎么买?”女朋友:“说的你买回来我在给你钱嘛”我:“我去抢?”女朋友:“我不管”…结果最后发生僵持,我没得到钱,她也没得到奶茶。结果怎么办?除非某一方让出资源呗。但这似乎是不可能的,形容两个线程互相等待对方释放资源,然后各自做各自的事情,但问题是两个线程都在苦苦等待,资源始终拿不到,与此同时,两个线程心里在想”mmp的

2020-06-26 17:17:24 250

原创 一起来学学Linux C(一)文件写入

一、前言很久以前接触了VB,后来一直想学C,但是一直被Win API掐住手脚,也一直在用VB去实践WinAPI,所以对C也是一知半解,在后来又转到Linux下学习Java、Android,索性也就在Linux下学习C吧。下面的这个小例子是创建文件一个,并且在文件中写入数据。二、open()函数他的功能是打开一个指定的文件,或者创建一个新文件,并获得文件描述符。 int open(const char *pathname, int flags);参数 pathname是要打开的文件路径名称,fl

2020-06-22 17:55:46 1689

原创 int与byte那些事你确定知道?

前言最近在做一个远程屏幕共享软件,功能非常单一,只能通过Android端查看电脑的实时屏幕,一开始做法是电脑端不停捕获当前屏幕截图,压缩后上传到服务器,Android不停的刷新,但是结果有点不尽人意,效果太差了。其中并没有将捕获的屏幕保存成jpg,然后发送,而是直接将BufferedImage转换成 byte[]发送,当然服务器也没有存成文件,也是使用byte[]存最新的屏幕数据,Android通过给定接口将byte[]装换成图像。这里面有个将InputStream中的数据转换成BufferedImag

2020-06-21 12:48:37 1085

原创 Tomcat源码解析五部曲终章、扩展源码

一、前言距离前几篇Tomcat源码文章已经过去两个月了,但迟迟没有写做后一篇,直到今天,中途打算写Tomcat优化或者Cookie、Session原理,最后还是放弃了,原因是这类文章非常多,不想写了。正好前几个星期开学,并且有一门JavaWeb课,所以想的是做一个简单的数据库框架,和Tomcat源码整合一下,也就是扩展Tomcat源码,让他让他轻松实现CRUD。最终可以轻松应付各种毕设、作业。但由于又去学习其他东西,所以这个也耽误了些时间。二、用法示例其实这也不算扩展吧,只是改了小小小的一部分,先来展

2020-06-16 21:57:37 394

原创 你可知Windows不规则窗口如何实现?

什么是不规则窗口?我们常见桌面应用程序窗口都是方形的,但是有时我们也能见到非方形的(圆角、椭圆等),这种窗口称之为不规则窗口,但是在我的电脑中没有找出这类的窗口,没办法展示了,(下面我们会手动创建),这种窗口一般用来做启动页,比如那些XXX管理系统等等,通常在这个界面进行一些初始化,之后跳转到主界面。除了椭圆的启动页窗口,还有圆角矩形的主界面,也是比较好看的,Windows为我们提供的API能轻松完成这类窗口的创建,其中SetWindowRgn函数为主要函数。(但这不是绝对的实现方法,我不知道目前主流的

2020-06-13 14:12:30 410

原创 Android数据序列化方案你知道多少?

0、什么是序列化借用百度百科的一句话,序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。简单说就是将对象中所有字段信息以某种形式保存到磁盘中,这个过程称之为序列化,反序列化也就是把某种形式的数据根据规则转换成对象。下面介绍几种我所使用过的方案。一、Serializable这是Java中自带的一个序列化方案,同样Android中也可以使用,

2020-06-11 22:17:28 413

原创 深入理解Redis番外转、慢查询与监视器

一、什么是慢查询日志这个功能主要记录执行时间超过给定时长的命令请求,我们可以根据这个日志来进行监控或者优化查询速度。配置文件中主要有两个和慢查询日志有关的配置。slowlog-log-slower-than这个选项指定超过多长时间的命令请求会被记录到日志上,以微妙为单位,1秒等于1000000微妙。2. slowlog-max-len他指定了服务器最多可以保存多少条慢查询日志。服务器使用先进先出的方式保存慢查询日志,如果服务器存储的慢查询日志大小超过了slowlog-max-len配置的

2020-06-08 14:56:38 159

原创 遨游WindowsAPI之电池电量获取

GetSystemPowerStatus函数我们可以通过GetSystemPowerStatus函数来获取电池的有关信息,其中包括是否正在为电池充电等,如果函数成功,则返回值为非零值。他的参数很简单,只有一个SYSTEM_POWER_STATUS结构体,返回的数据都包含在此结构体中。BOOL GetSystemPowerStatus( LPSYSTEM_POWER_STATUS lpSystemPowerStatus);SYSTEM_POWER_STATUS如下,他的ACLineStatus

2020-06-08 14:54:46 1395

原创 深入理解Redis番外传、Pipeline技术

Pipeline技术Redis 是采用TCP协议来对外提供服务,也就是说,Redis 是基于Request/Reseonse的一种一问一答的模式,请求一次响应 一次。 客户端通过Socke连接发起请求,发送一条命令给服务器,等待服务器应答,进行处理后,返回结果。在这个过程中,每个请求在命令发出后会阻塞等待Redis服务器进行处理,处理完毕后才会将结果返回给客户端。每条命令在发送与接收的过程中都会占用两个网络传输,在业务量非常庞大的情况下,是不能满足我们的需求的,这将严重影响Redis的性能。比如在做大

2020-06-07 15:42:41 187

原创 Windows编程之虚拟桌面实现原理

虚拟桌面突然翻到以前的一个小软件,这个软件的作用是创建一个虚拟桌面,并切换到他,这还是在Win7时代时候的了,貌似那时候很多人用这种类似的软件在上班时玩游戏,但是在Win10中加入了虚拟桌面,这类软件不知道怎么样了。Win10中可以点击任务视图按钮,在最上面就可以创建,(虚拟桌面在Linux操作系统是一个标配,但是在Windows操作系统一直没有此功能,直到Win10才加入这项功能)。笔记本的话四个手指左右滑动触摸板就可以切换,或者Win + Ctrl + → |←切换。创建一个虚拟桌面需要Cr

2020-06-07 13:56:14 2347

原创 偶然间发现小米的一个bug

个人算是个米粉,高中那时候的红米Note3去年测试还能打王者,属实优秀,目前手持小米8,除了耗电就是耗电了,这好像是从更新到miui 10出现的问题。哎。在其中发现一个小小BUG,但也称不上,这是从红米Note3上发现的,至今小米8上还是可以复现,不知其他版本的是不是这样。复现:这是个桌面图标的bug,当下载APP时,桌面会显示下载的进度,APP此时的标题为"下载中"。之后是"安装中"。问题就在此时,当"安装中"即将要完成的瞬间长安图标,(也就是当"安装中"变"美团"的瞬间长安一下),桌面就会

2020-06-06 16:09:36 463

原创 深入理解Redis、被监控得主机-哨兵

什么是哨兵在此之前,在回顾以下主从复制,主从复制主要有两个作用,一是可以为主服务器提供一个备份,当主服务器发生故障后,在这个备份中会有一份完整得数据,二是对主服务器进行分流,比如实现读写分离,将写操作放在主节点上,将读操作放到从节点上,但是这种模式有个问题,就是如果主节点发送故障,那么故障转移就需要手工来完成,比如选出一个新的slave作为新的master节点。为了解决主从复制故障转移得问题,Redis就引入了高可用哨兵模式。哨兵模式是由一个或多个哨兵组成得哨兵系统,主要用于监控任意多台主服务器是否发生

2020-06-06 15:40:22 591

原创 服务器被黑,帮凶竟然是Redis

一、经过就在昨天,我像往常一样连接到一台云服务器中的Redis进行学习,当我执行keys *查看所有键的时候,却发现返回了(empty array),也就是代表没有任何数据在Redis中,可是Redis我也并没有手动停止过(没配置过持久化,也就是重启后数据就会消失),也保证没有执行过flushdb清空数据,可数据怎么就没了呢?这让我很是好奇。这没理由啊,后来在我的/usr/app目录下发现了一个readme.txt。我记得我并没有创建过这个文件,于是通过vim打开他,此时我一脸小朋友问号。让黑了

2020-06-03 11:25:49 659 3

原创 深入理解Redis、主从复制也如此简单

一、什么是主从复制在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他服务器,满足故障恢复和负载均衡的需求,Redis也是如此,可以通过SLAVEOF命令或者通过配置文件设置slaveof选项,可以让一台服务器去复制另一台服务器,其中被复制的服务器叫主服务器(master),而对主服务器进行复制的服务器叫从服务器(slave),从而实现主服务器中的数据更新后,根据配置和策略自动同步到从服务器,其中master以写为主,slave以读为主。二、建立复制每个从节点只能有一个主节点,而主节点可

2020-06-01 16:34:58 183

空空如也

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

TA关注的人

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