摘要: 关系型数据库的表在设计时,我们常常需要考虑哪些业务字段应该放哪张表,字段是否应该拆分,表与表之间该怎么关联。那有没有相应的规范或者原则来指导我们去设计表呢?数据库设计三范式;三范式主要是解决表之间的关联关系,和字段冗余问题 阅读全文
posted @ 2021-03-14 15:34 潜行前行 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 上次朋友关于TCP/IP面试的后续,主要是https的相关面试要点 阅读全文
posted @ 2021-03-14 15:32 潜行前行 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 和前端进行数据交互时或者和第三方商家对接时,需要对隐私数据进行加密。单向加密,对称加密,非对称加密,其对应的算法也各式各样。java提供了统一的框架来规范 阅读全文
posted @ 2021-03-14 15:30 潜行前行 阅读(1538) 评论(0) 推荐(0) 编辑
摘要: 数据序列化存储,或者数据通过网络传输时,会遇到不可避免将数据转成字节数组的场景。字节数组的读写不会太难,但又有点繁琐,为了避免重复造轮子,jdk推出了ByteBuffer来帮助我们操作字节数组;而netty是一款当前流行的java网络IO框架,它内部定义了一个ByteBuf来管理字节数组,和ByteBuffer大同小异 阅读全文
posted @ 2021-03-14 15:24 潜行前行 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 前言 各位随意看 关注公众号,一起交流,微信搜一搜: 潜行前行 Commons BeanUtils 针对Bean的一个工具集。由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装。 一个比较常用的功能是Bean Copy,也就是copy bean的属性。如果做 阅读全文
posted @ 2021-01-06 23:22 潜行前行 阅读(126) 评论(1) 推荐(0) 编辑
摘要: 前言 在使用多线程并发编程的时,经常会遇到对共享变量修改操作。此时我们可以选择ConcurrentHashMap,ConcurrentLinkedQueue来进行安全地存储数据。但如果单单是涉及状态的修改,线程执行顺序问题,使用Atomic开头的原子组件或者ReentrantLock、CyclicB 阅读全文
posted @ 2021-01-06 23:21 潜行前行 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 前言 平时操作集合数据,我们一般都是for或者iterator去遍历,不是很好看。java提供了Stream的概念,它可以让我们把集合数据当做一个个元素在处理,并且提供多线程模式 流的创建 流的各种数据操作 流的终止操作 流的聚合处理 并发流和CompletableFuture的配合使用 关注公众号 阅读全文
posted @ 2020-12-07 10:16 潜行前行 阅读(1414) 评论(0) 推荐(0) 编辑
摘要: 前言 以前需要异步执行一个任务时,一般是用Thread或者线程池Executor去创建。如果需要返回值,则是调用Executor.submit获取Future。但是多个线程存在依赖组合,我们又能怎么办?可使用同步组件CountDownLatch、CyclicBarrier等;其实有简单的方法,就是用 阅读全文
posted @ 2020-12-05 15:52 潜行前行 阅读(548) 评论(1) 推荐(1) 编辑
摘要: 前言 最近和一同学聊天,他想换工作,然后去面了一家大厂。当时,他在简历上写着精通TCP/IP,本着对TCP协议稍有了解,面试官也不会深问的想法,就写了精通二字。没想到,大意了 关注公众号,一起交流,微信搜一搜: 潜行前行 github地址,感谢star 开场 朋友约的是十点半的面试,提前了十分钟到, 阅读全文
posted @ 2020-11-29 18:46 潜行前行 阅读(1044) 评论(0) 推荐(0) 编辑
摘要: 前言 网络I/O,可以理解为网络上的数据流。通常我们会基于socket与远端建立一条TCP或者UDP通道,然后进行读写。单个socket时,使用一个线程即可高效处理;然而如果是10K个socket连接,或者更多,我们如何做到高性能处理? 基本概念介绍 网络I/O的读写过程 linux下的五种网络I/ 阅读全文
posted @ 2020-11-08 19:44 潜行前行 阅读(762) 评论(0) 推荐(0) 编辑