众所周知,在Java中由于反射的存在使其可以成为介于Python和C++之间的一直半自动的语言。反射可以强大到在运行时获取类的各种属性,并进行操作。但是在Java中泛型的实现其实是伪泛型,即在编译结束后会擦除实际的泛型类型,最终导致所有地方其实都是Object类型。那么当泛型遇上反射,还能否获取实际类型呢?
众所周知,在Java中由于反射的存在使其可以成为介于Python和C++之间的一直半自动的语言。反射可以强大到在运行时获取类的各种属性,并进行操作。但是在Java中泛型的实现其实是伪泛型,即在编译结束后会擦除实际的泛型类型,最终导致所有地方其实都是Object类型。那么当泛型遇上反射,还能否获取实际类型呢?
最近はAlibabaの面接準備してるけど、なんかやる気がぜんぜん出しなくて。俺どうしてそういうやる気がない理由が今までわからない。
そうして、この日記を書いて、日本語復習するために、気持ちをメモしておきましょう~
最近微信上有不少人加我好友说我文章写的不错,感谢大家的支持。张小凯会继续努力学习的,也希望能和大家一起交流❤
当然文章可能存在问题,希望大家在文章下面批评指正!
在Java开发中,并发编程是一个不可或缺的东西。甚至有不会并发就相当于不会编程的言论。传统并发模型中有进程和线程的概念,而熟悉Python的同学应该有过使用yield的经历,而yield关键字就使用了协程的概念;并且在现在golang大火的环境下,golang中也通过协程来解决了并发编程的问题;
本文内容包括:
最近相继面试了BAT(字节, 阿里, 腾讯)的实习生, 收获满满. 在这里总结一下
AQS全称为AbstractQueuedSynchronizer,它提供了一个FIFO队列,可以看成是一个用来实现同步锁以及其他涉及到同步功能的核心组件
本文内容包括:
前面讲解了线程池的原理, 而线程池任务的存储采用的是阻塞队列(需要的话要通过构造方法传入一个阻塞队列). 所以本篇介绍Java中的阻塞队列
在JUC包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题, 通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利
本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景
本文内容包括:
文章转自: Java 阻塞队列–BlockingQueue
有的人问我怎么在手机上看类似于电视台(甚至是国外电视台)的节目, 其实很简单哈. 只要有一个能接收数据源的软件和数据源链接就可以了
在访问网站的时候, 经常想知道这个网站是用什么技术实现的. 尤其是现在npm仓库的前端框架五花八门的今天;
所以推荐给大家一个查看网页开发用到的技术的浏览器插件Wappalyzer
如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯
内容和博客同步更新~
前面两篇文章分析了Java中几种常见的线程池, 下面我们通过源码来看一看他们究竟在最底层是怎么实现的
本文内容包括:
源代码分析基于JDK11.0.5
如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯
内容和博客同步更新~
系列文章入口: