后端
五步搭建自己的低代码平台
前言
平时开发项目时,总会写很多crud代码,开发过程基本一个套路,定义controller、service、dao、mapper、dto,感觉一直在repeat yourself
也接触过很多快速开发框架,定义一个sql就可以生成接口,或者定义一个框架脚本自动生成接口,但感觉这些框架没有说太成熟广泛使用的,出了问题也很难解决
本文重点研究一下如何只通过定义sql就自动生成接口,但是只是简单实现,
Java锁相关概念的简单理解
Java中锁的概念
自旋锁:是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环
乐观锁:假定没有冲突,在修改数据时如果发现数据和之前获取的不一致,则读最新数据,修改后重试修改
悲观锁:假定会发生并发冲突,同步所有对数据的相关操作,从读数据就开始上锁
独享锁(写):给资源加上写锁,线程可以修改资源,其他线程不能
dex、vdex、.odex与.oat
转自:
dex、vdex、.odex与.oat文件介绍
1、dex文件
在我们写Java代码的时候,生成的文件是.java文件。
对于PC上的java虚拟机(JVM)运行的是.class。
.java文件转成.class文件,需要jdk工具,转换命令:
javac xxxx.java
关
HashMap源码解析
数据结构
//一个Node数组,Node是一个单向链表
transient Node<K,V>[] table;
//Node内部类
static class Node<K,V> implements Map.Entry<K,V> {
// hash值
final int hash;
// key
Wireshark:又一个可以查看https消息内容的工具
我们在接口测试和故障诊断调试时,需要查看消息里边的内容,如果是http消息可以通过wireshark抓包分析软件看到,但https消息内容在传输过程中是加密的,怎样才能看到https加密后的消息呢?
从技术上来说,需要拿到密钥,通过密钥对消息内容进行解密。
从难易程度上来说,有两个难题:获取密钥和密钥解密。密钥是不会在交互过程中传输的,对于第3方,拿到密钥的可能性不大或者非常难。对于密钥解密,非专
温习 6+2 种排序方式
堆排序(实现难易:⭐⭐⭐)
① 将序列生成堆,调整成最大堆
② 弹出堆顶,生成新序列,重复 ① 。
快速排序(实现难易:⭐⭐⭐)
(a)先移动 j 找到 <= low 的数,再移动 i 找到>= low 的数:
① 若 i < j ,两者交换,继续移动。 ② 若 i >= j,j 与 low 交换。
(b)交换后数列划分,分别令各
ScyllaDB初体验
感觉 发现了宝藏,学到老活到老吧。
一. Scylla的前世今生
在学习任何源码前,我们都需要了解它的背景,它的架构。
ScyllaDB可以算得上是数据库界的奇葩,它用c++改写了java版的Cassandra。
为什么奇葩呢?因为大部分用其它语言改写的,都很难匹敌原系统。而它却相当成功,引起来了片欢呼。
它的成功来源于JVM GC的无止尽的噩梦,另一部分来自于大名顶顶的KVM团队开发成员!