算法有五种: 分治,动态规划,贪心,回溯,分支限界
2019年8月4日18:01:02 八皇后问题: @see EightQueen.java https://blog.csdn.net/Hackbuteer1/article/details/6657109 大致思路:
public void queen(int[] arr, int n, int row) {
if (row == n) {
printQueen(arr, n);//求解成功,打印结果
} else {
for (int i = 0; i < n; i++) { // 循环当行 每个格子是否可以落子
if (canPlace(arr, n, row * n + i)) { // 判断是否可落子
arr[row * n + i] = 1; // 落子
queen(arr, n, row + 1); // 递归到下一行
arr[row * n + i] = 0; // 回退,说明此处落子后面某行可能无法落子
}
}
}
}
/**
*判断是否可以落子
*/
public canPlace(int[] arr, int n, int i){
int row = i/n;
int col = i%n;
for(int j=0;j<row;j++ ){// 从第0行看是否有子
if(a[j*n+col]>0) return false;
if(col-(row-j)>=0 && a[j*n+col-(row-j)]>0) return false;
if(col+(row-j)<n && a[j*n+col+(row-j)]>0) return false;
}
for(int j=0;j<col;j++){
if(a[j+row*n]) return false; // 第row行不能落子
}
return ture;
}
CGLIB(Code Generation Library)是一个基于ASM的字节码生成库,它允许我们在运行时对字节码进行修改和动态生成。CGLIB通过继承方式实现代理; Enhancer:来指定要代理的目标对象、实际处理代理逻辑的对象,最终通过调用create)方法得到代理对象,对这个对象所有非final方法的调用都会转发给Methodlnterceptor; Methodlnterceptor:动态代理对象的方法调用都会转发到intercept方法进行增强;
2019年8月17日17:25:14 ##kafka
###消息:Record。 Kafka 是消息引擎嘛,这里的消息就是指 Kafka 处理的主要对象。 ###主题:Topic。 主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。 ###分区:Partition。 一个有序不变的消息序列。每个主题下可以有多个分区。 ###消息位移:Offset。 表示分区中每条消息的位置信息,是一个单调递增且不变的值。 ###副本:Replica。 Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。副本还分为领导者副本和追随者副本,各自有不同的角色划分。副本是在分区层级下的,即每个分区可配置多个副本实现高可用。 ###生产者:Producer。 向主题发布新消息的应用程序。 ###消费者:Consumer。 从主题订阅新消息的应用程序。 ###消费者位移:Consumer Offset。 表征消费者消费进度,每个消费者都有自己的消费者位移。 ###消费者组:Consumer Group。 多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。 ###重平衡:Rebalance。 消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。
// java8学习笔记: 集合和流的对比 //1. 集合的循环是外部迭代,流是内部迭代.迭代器也是内部迭代 (集合是像命题作文,流像完形填空) //2. 集合关注数据与数据存储本身, 流关注数据的计算. // 3. 流与迭代器都无法重复使用或消费的
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。