![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java
文章平均质量分 83
java技术栈内容,不记录数据结构和算法.
@lonely
二本渣渣,知识的搬运工
展开
-
java泛型笔记4-擦除的补偿
如果我们想要创建泛型数组,来看一下下面这个泛型类class Generic<T>{}如果我们要实例化一个Generic 的数组,比如static Generic<Integer>[] gia;编译器将接受这个程序,而不会产生任何警告.但是,永远都不能创建这个确切类型的数组.来看下面的例子:public class ArrayOfGeneric { static final int SIZE = 100; static Generic<Intege原创 2021-04-19 15:13:48 · 185 阅读 · 0 评论 -
java随笔-多线程(3)
文章目录线程通信死锁线程通信为了更好地理解线程的api的用途,我们通过一个模型来实现线程通信,这便是著名的"生产者-消费者模型".它的基本实现原理是:有一个仓库类,用来存放商品,它有两个方法,一个是生产,一个是消费.有两个线程,分别是生产者线程和消费者线程.假设仓库类最大容量为10个商品.当商品数量达到10时,生产者线程停止生产,消费者线程开始消费;当商品数量达到0时,消费者线程停止消费,生产者线程开始生产.通过一个while true循环,让这个过程一直持续下去.由于这个过程涉及两个线程之间执行的选原创 2021-04-17 00:29:03 · 192 阅读 · 0 评论 -
泛型笔记3-下界通配符
上一节讨论了上界通配符的作用以及它的使用事项.今天将讨论下界通配符.下界通配符当我们需要动态地传入类对象及其超类类型的时候,由于擦除性质,编译器并不能确定所传入的对象是否是某一个对象的超类,而将它们都视作Object对象.当我们需要一个能使编译器识别这种关系的一种通配符,所以我们就有了下界通配符这一概念.它的格式为:<? super 类名>.它告诉编译器,你所要传入的参数类型只能是这个类及其超类类型.我们来看下面的一个关系图.如果我们以水果为基类(作为super后面的类名),那么水果原创 2021-04-15 16:12:09 · 315 阅读 · 2 评论 -
java泛型笔记2--上界通配符
在前面我们了解到上下界通配符可以让容器类之间存在诸如对象之间的继承关系.本次将详细解释这一点.擦除特性当我们声明两个List类型,同时声明其元素泛型为两个不同的包装类时,java并不能分辨它们.换句话说,如果仅仅是两个泛型不同的同类型集合对象,它们的类型其实是一样的.不仅仅是包装类是如此,任何类型的对象都是如此.public class GenericTest3 { public static void main(String[] args) { Class c1 = new原创 2021-04-15 01:59:45 · 562 阅读 · 0 评论 -
java泛型笔记
基本概念通常情况下集合可以存放不同类型的对象,是因为将所有对象多看作Object类型放入的.因此从集合中取出元素时它是Object类型.为了表达该元素真实的数据类型,则需要强制类型转换,而强制类型转换可能引发类型转换的异常.为了避免上述情况的发生,从Java5开始增加了泛型机制,也就是在集合名称的右侧使用<数据类型>的方式来明确要求该集合中可以存放的元素类型,若放入其他类型的元素,则编译报错.泛型只在编译时期有效,在运行时期不区分什么类型.这个特点可以通过反射机制以验证.packa原创 2021-04-14 22:00:12 · 134 阅读 · 0 评论 -
java泛型实践准则
Java之泛型——实践准则 简介 主要摘抄Efficient Java中关于泛型的实践准则。 准则 Don’t use raw types in new code 请不要在代码中使用原生态类型1 这个很容易理解,泛型给我们带来了类型上的安全检查机制,可以使得异常在编译器...转载 2021-04-14 17:02:26 · 128 阅读 · 0 评论 -
java随笔-多线程(2)
文章目录1.线程池线程池的工作原理线程池的工作流程5种常用的线程池2.锁synchronizedsynchronized作用范围ReentrantLock1.线程池线程池的工作原理Java线程池主要用于管理线程组及其运行状态,以便Java虚拟机更好地利用CPU资源.其工作原理为:JVM先根据用户的参数创建一定数量的可运行的线程任务,并将其放入队列中,在线程创建后启动这些任务,如果正在运行的线程数量超过了最大线程数量,则超出数量的线程排队等候,在有任务执行完毕后,线程池调度器会发现有可用的线程,进而再次原创 2021-03-10 00:26:11 · 132 阅读 · 0 评论 -
java随笔-多线程(1)
本篇博客是对本人学习多线程的知识点的总结,这是第一部分.文章目录1.多线程的意义2.多线程的实现3.多线程的生命周期4.线程的基本方法sleep方法yield方法join方法5.终止线程的4种方式1.正常运行结束2.使用退出标志退出线程3.使用interrupt方法终止线程4.使用stop方法终止线程:不安全1.多线程的意义相对于传统的单线程,多线程能够在操作系统多核配置的基础上,能够更好地利用服务器的多个CPU资源,使得程序运行起来更加高效.Java通过提供对多线程的支持,在一个进程内并发执行多个线原创 2021-03-07 14:26:36 · 218 阅读 · 2 评论