JAVA
文章平均质量分 53
_躬行_
c++/java/python,用分析数据来挣钱
展开
-
泛型<T>和 <?> 的区别
技术交流群里有小白问这个问题,并转发了一些blog给我看。 感觉写的不够通透,而且有错误的地方,特地写一下。1. Class<T> 表示一个定义了一个泛型 这个类型不确定, 但是不能同时变成两个类型 举个栗子 我们将两个不同类型的链表合并 public static <T> void merge1(Lis...原创 2020-02-16 01:04:49 · 346 阅读 · 0 评论 -
啥时候用interface,啥时候用abstract类? 就一句话
有初学者问interface和abstract类该怎样选择的问题,不扯面试题那些,其实就一句话:定义为abstract类,就是为了定义较多的已实现方法好让人继承;继承者就不用写这么多的实现了,可以直接拿来用;定义为interface,只是为了规定含有哪些方法,统一一个调用的模板。...原创 2019-09-27 02:29:16 · 664 阅读 · 0 评论 -
深入理解Java并发(3) 手写实现简单线程池
一、 架构分析 我们来实现一个简单的线程池,先看一下都需要实现哪些部分。 我们对需求进行一下简单的抽象分析,就可以发现这个跟生产者/消费者模型有点像,我们可以画个图,边分析边往上加 1. 以生产者/消费者模型为基础创建架构。需要一个队列taskQueue 用以缓存要执行的任务,通过execute()方法从外部向线程池提交任务,封装一个方法用来决策,是立即...原创 2019-08-25 18:23:36 · 398 阅读 · 1 评论 -
(转)线程池类ThreadPoolExecutor源码解读
目录一、任务的提交过程1.1 submit方法源码1.2 execute方法源码1.3、addWorker源码2、线程的执行过程2.1 线程池是从哪里启动的2.2、runWorker源码2.3、getTask 源代码3、 线程池的关闭过程3.1、shutdown源码3.2、interruptIdleWorkers 源码一、任务的提交过程1.1 s...转载 2019-08-10 01:43:24 · 219 阅读 · 0 评论 -
Dubbo的一种负载均衡算法(最大剩余线程数)
先贴上provider的性能要求 最小活跃数算法不靠谱(因为会将请求尽量多地分到small上),但是把最小活跃数换个角度,用线程池总线程数 - 占用线程数, 得到剩余线程数。然后按照最大剩余线程数来排序。 具体做法也很简单: 每次provider收到一个请求,就将占用线程数+1, 完成一个请求,就将占用线程数-1, 用线程池总线程数减去占用的数量,之后每次选最大的。 ...原创 2019-07-22 23:37:45 · 365 阅读 · 0 评论 -
深入理解Java并发(2) 线程池
目录一、 ThreadPoolExecutor1.构造函数:2.handler拒绝策略3.线程池的状态二、Executors1.马甲2.Executors里埋的坑线程的创建与销毁都是需要消耗资源的,为了减少线程的创建与销毁的开销以及产生过多线程带来的过分调度,我们通常使用线程池来管理线程。 线程池的创建有两种方式,一个是使用ThreadPoolExecu...原创 2019-08-07 02:24:23 · 199 阅读 · 0 评论 -
深入理解Java并发(1) 线程基础
1.线程的创建(1) 继承Thread类并实现run方法public class MyThread extends Thread{ @Override public void run(){ /* to do*/ } public static void main(String[] args) { Thread myThread = new MyThread(); m...原创 2019-06-30 23:50:05 · 245 阅读 · 0 评论 -
(转)Java中的Lambda表达式 图文详解轻松易懂
转自 程序媛晓晓 原文链接Lambda 表达式在 Java 中,有何用处?(附教程)1什么是Lambda?我们知道,对于一个Java变量,我们可以赋给其一个“值”。如果你想把“一块代码”赋给一个Java变量,应该怎么做呢?比如,我想把右边那块代码,赋给一个叫做aBlockOfCode的Java变量:在Java 8之前,这个是做不到的。但是Java 8问世之后,...转载 2019-06-30 19:04:33 · 1171 阅读 · 0 评论 -
(转)Java 包装器
原贴地址https://blog.csdn.net/xiamaocheng/article/details/82223629包装器实现包装器实现将所有实际工作委托给指定的集合,但在此集合提供的功能之上添加额外的功能。对于设计模式粉丝,这是装饰器模式的一个示例。虽然它看起来有点异国情调,但它真的很简单。这些实现是匿名的;该库提供静态工厂方法,而不是提供公共类。所有这些实现都可以在C...转载 2019-07-03 01:16:25 · 183 阅读 · 0 评论 -
(转)RednaxelaFX写的文章/回答的导航帖
这是一位专攻编译器、虚拟机的大神,他对自己的文章/回答的整理。以前在知乎上关注的一位神级人物,保存一下他的文章以便查阅学习。 见贤思齐![资料合集] RednaxelaFX写的文章/回答的导航帖(work in progress)https://www.zhihu.com/people/rednaxelafx/answershttp://hllvm.group.iteye....转载 2019-06-21 01:38:36 · 884 阅读 · 0 评论