背包问题
对于背包问题,我们需要使用动态规划的思想来解决问题。
例如一个问题, 选择n个物品重量w不超过n的最大价值v
首先是集合表示,可以表示为前 i 个物品 不超过 j 的重量的集合
集合的属性:最大/最小值
状态的计算: 对于 我们需要对此进行一个集合的划分
一般来说,取最后一部进行划分:
以01 背包为栗:每个物品 选择和不选 , 划分为2个集合 ...
ThreadLocal存储数据是使用ThreadLocalMap来存的,ThreadLocalMap基于Entry实现,存储数据时,本身ThreadLocal作为key来存取value数据。
key内存泄露:
ThreadLocal对象本事就是一个强引用,当方法弹栈后,因为线程池中线程还在,对ThreadLocal引用的Key还在,这会导致这个ThreadL...
创建 - 线程创建,分配地址
runnable - 就绪和运行统称Runnable
阻塞block - 没有拿到资源,synchronize等待
等待waiting - 挂起线程池,或者wait(),需要手动唤醒
time waiting - sleep(1000)睡眠的状态,到时间自动唤醒
终止terminated - 结束
public enum ...
使用docker部署
部署elasticsearch
# 拉取镜像
docker pull elasticsearch
# 创建容器
docker run --name es -p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64...
多线程
并发和并行
并发
并行
在同一时刻,有多个指令在多个cpu同时执行
多线程三种实现方式对比
线程常用的方法
优先级
java默认使用的线程调度是抢占式调度,是一种随机的形式,对此我们可以为一个线程设计优先级,默认值是5.
优先级越高,抢占到的cpu越大。
守护线程
当非守护线程运行结束之后,守护线程就会陆续结束。
应用场景: 比如 在聊天窗口...
给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums - nums| == k 。
|x| 的值定义为:
如果 x >= 0 ,那么值为 x 。
如果 x < 0 ,那么值为 -x 。
1 <= nums.length,k <= 100000,数组中每个数字的范围...
一、Java基础 44 道
解释下什么是面向对象?面向对象和面向过程的区别?
面向对象的三大特性?分别解释下?
JDK、JRE、JVM 三者之间的关系?
重载和重写的区别?
Java 中是否可以重写一个 private 或者 static 方法?
构造方法有哪些特性?
在 Java 中定义一个不做事且没有参数的构造方法有什么作用?
Java 中创建对象的几...
1.JVM、JRE 和 JDK 的关系
Jvm:java虚拟机,类似于一个小型的计算机,它能够将java程序编译后的.class 文件解释给相应平台的本地系统执行,从而实现跨平台。
jre:是运行java程序所需要的环境的集合,它包含了jvm的标准实现和java的核心类库。
jdk:是针对java开发的产品,其中包含了java运行环境jre和java的工具以...
SpringCloud的五大组件
Eureka
Ribbon
Hystrix
Zuul
Config
一、Eureka
作用是实现服务治理,即服务注册与发现。
Eureka服务器相当于一个中介,负责管理、记录服务提供者的信息。服务调用者不需要自己寻找服务 ,而是把需求告诉Eureka
,然后Eureka会把符合你需求的服务告诉你。同时,服务提供方与Eur...
题目
给你两个二维整数数组 items1 和 items2 ,表示两个物品集合。每个数组 items 有以下特质:
items = 其中 valuei 表示第 i 件物品的 价值 ,weighti 表示第 i 件物品的 重量 。
items 中每件物品的价值都是 唯一的 。
请你返回一个二维数组 ret,其中 ret = , weighti 是所有价值为 ...