- 博客(18)
- 问答 (1)
- 收藏
- 关注
原创 Mysql中必须掌握的JOIN各种连接!
JOIN 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。常见的有以下三种。1.INNER JOIN (内连接或等值连接),获取两个表中字段匹配关系的记录。2.LEFT JOIN(左连接),获取左表中的所有记录,即使在右表没有对应匹配的记录。3.RIGHT JOIN(右连接),与 LEFT JOIN 相反,用于获取右表中的所有记录,即使左表没有对应匹配的记录。新建两张表,tb_a...
2020-03-29 13:43:12 219
原创 超详细Redis总结(一)
redis现在是火的一塌糊涂,面试不知道redis怎么能行,各个云都提供了对redis的支持,如以下的阿里云。什么是RedisRedis 是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 支持多种类型的数据结构,如string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(sorted set:有序集合)。首先redis是将数据保存到内...
2020-03-28 11:43:58 581
原创 知道该选哪款Linux吗?别犹豫了,就他
Linux发行版非常之多,有Ubuntu、Redhat、Manjaro、Debian、CentOS等,如果你是一个选择困难户,简直是崩溃的状态,到底该选那一个又不得不看一些推荐文章,最终可能同我以前一样,选择Ubuntu,因为每一篇文章都首先讲Ubuntu,不得不让你相信Ubuntu有多大魅力。确实,我也使用过一段时间Ubuntu,但它总是出现内部错误对话框,这让我难受,由于不是资深玩家,尝试一...
2020-03-25 18:33:12 200
原创 是时候了解Java Socket底层实现了
在Java中,提供了一系列Socket API,可以轻松建立两个主机得连接、读取数据,那底层到底怎么实现,很少人去关心。这其实最终还是通过调用操作系统提供得Socket接口完成(TCP/IP是由操作系统来实现)。拿Windows举例,提供了socket、bind、listen、accept、connect、send、recv等函数,如果了解过Socket编程得伙伴应该一眼能看出这些函数是干什么得...
2020-03-20 13:38:38 1088 1
原创 你竟然用Integer作为synchronized的锁对象?
在使用多线程编程时,往往会使用一些手段保证线程安全,也就是加锁,但是加锁也必须合理,如使用synchronized对对象加锁时,如果不注意,还可能发生错误的加锁。先看一段小测试,在这个小测试中,启动了1000个线程,每个线程在对integer加1前都先获得integer的锁,这看似是线程安全的,并且预期可能会得到1000这个值,而然并不然,在运行多次之后他总是输出<=1000的值,那么,这...
2020-03-18 11:32:29 2555 3
原创 位运算那些骚操作,HashMap容量为什么是2的次幂?
位运算那些骚操作,数不甚数,就拿HashMap来说,在求出元素位置时候通过h & (length-1) 来计算,h是key的hash值,length是数组长度。但是这个length大小是有限制的,必须是2的次幂。那为什么是2的次幂呢?其实这个还算好理解。首先要知道&的规则,也就是双方都为1,结果才为一,如下:接着要知道2的次幂的二进制规律,发现开头都为1,剩余全为0。 pu...
2020-03-16 13:49:17 306
原创 好好的Timer居然有坑?
在做定时任务时,可能会使用到Timer+TimerTask类,但是这两个小小的类,却有大坑。先来复现一下问题,如下,可能预期的是第一个PrintTask从1一直往后打印,直到为5时抛出异常,第二个PrintTask从100往后不间断打印。public class Main12 { public static void main(String[] args) { Time...
2020-03-14 10:26:08 220
原创 Android自定义滑动进度条
一、效果图二、实现过程实现过程很简单,只要自定义一个TextView,在onTouchEvent中的移动事件中不断重新绘制即可。为了方便使用,首先自定义几个属性。<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="SlideView"> ...
2020-03-12 14:32:53 1207 1
原创 Linux下数据库可视化软件推荐
在Windows中,常用的可能就是Navacat,但是这玩意还收费,又的想办法破解,非常麻烦,但是总有一款软件能代替它。DBeaverdbeaver是一款免费开源为开发人员和数据库管理员提供的通用数据库工具。不亚于Navacat。并且DBeaver也支持三大操作系统。官方网站:https://dbeaver.io/支持多种数据库。数据表视图。表编辑视图。ER视图SQL编...
2020-03-09 16:37:56 5396
原创 被刷百万点赞背后的故事,是颜值的支撑还是技术的提升?
小伙伴们是否已经直播上课?是否为你们可爱的老师点赞,又是否破了百万呢?至少我们是这样 [此处手动狗头]。毫无疑问这不可能纯手破百万的,这仅仅三十多人而已。无非就是些鼠标连点器在不停的模拟点击,本文就介绍下鼠标连点器的实现原理。一、mouse_event实现连点器的关键,就是mouse_event函数,但是这个函数和其他函数有一个不同点,那就是命名格式,一般Win API很少出现这种风格,...
2020-03-09 16:09:24 258 1
原创 这个神奇的网站,竟让我学会了所有数据结构
在无意中发现了一个神奇的数据结构演示网站。他以动画的形式演示数据的存储、查找、删除过程,相信配合上动画,各种数据结构也会轻松拿下。https://www.cs.usfca.edu/~galles/visualization/Algorithms.html一、栈二、各种排序三、红黑树四、队列...
2020-03-08 19:41:08 289
原创 AndroidStudio 3.6都发布了,别用你那2.x了
AndroidStudio在2019年8月月发布,而近期又发布了3.6.1,赶紧下载来体验一下.地址:下载地址很多人都给出https://developer.android.com/studio和自己百度网盘的地址,大可不必,https://developer.android.google.cn/studio是不被墙的.下载速度还快一、安装安装就不必说了,这启动界面,显的又大气了不少...
2020-03-05 15:49:31 1382
原创 带有过期特性的队列DelayQueue
DelayQueue是一个无界阻塞的队列,队列中的每个元素都有一个过期时间,当要从队列中取出数据时,只有过期元素才会出队。DelayQueue内部使用PriorityQueue存放元素,又用ReentrantLock实现线程同步。因为DelayQueue内部要获取元素的剩余时间,所以我们的数据类需要继承Delayed接口,Delayed又继承Comparable接口,实现排序,而自身只有一个ge...
2020-03-03 20:30:03 1385
原创 集群session共享的两种解决方案
一、什么是集群及Session共享集群是一组相互连接并且拥有相同功能的服务器,每个服务器在集群中叫做节点。通过负载均衡服务器的调度,使客户端请求均衡的访问到这些节点中。但是此时会出现一个问题,比如session问题,用户A初次在节点A中进行登录,下一次被负载均衡服务器调度到节点B,而节点B并不没有用户A的session信息,接着又进行重新登录。解决办法也有很多,如使用Redis,但是Tomcat...
2020-03-02 16:22:23 859
原创 大学三年,我靠每天在这些网站学习,进入了梦寐以求的大厂
国内1.慕课网(https://www.imooc.com/)慕课网的资源还是比较丰富的,而且免费的不少,初次踏进编程这坑就是从他开始。里面还有很多大佬的录制,如Android大佬郭霖。2.极客学院(https://www.jikexueyuan.com/)极客学院收费的居多,但是也从中学到些东西,不如慕课网。3.掘金(https://juejin.im/)掘金无论是手机端端还是网...
2020-03-01 09:46:53 569
空空如也
Linux c下char[2]为什么能输入9个字符
2021-10-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人