随笔分类 -  Java

摘要:文章链接出处: 详解native方法的使用 自己实现一个Native方法的调用 JNI 开始本篇的内容之前,首先要讲一下JNI。Java很好,使用的人很多、应用极 广,但是Java不是完美的。Java的不足体现在运行速度要比传统的C++慢上许多之外,还有Java无法直接访问到操作系统底层如硬件系统, 阅读全文
posted @ 2019-10-19 15:02 myseries 阅读(5337) 评论(1) 推荐(4) 编辑
摘要:在现实社会中,有些类的实例对象是固定的。例如季节,只有春夏秋冬。如果你创建了一个season类,你当然有义务维护这个类的实例对象只能是春(SPRING)、夏(SUMMER)、秋(AUTUMN)、冬(WINTER)这四个。这个时候就体现出枚举类的作用了,java中枚举类型就是针对这样的场景需求所设计的 阅读全文
posted @ 2019-09-18 15:46 myseries 阅读(6353) 评论(0) 推荐(4) 编辑
摘要:前言 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开始,就提供了Cal 阅读全文
posted @ 2019-08-30 18:34 myseries 阅读(279) 评论(0) 推荐(0) 编辑
摘要:摘要: Executor作为灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程解耦开发,基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务的线程相当于消费者,并用Runnable来表示任务,Executor的实现还提供了对生命周期的 阅读全文
posted @ 2019-08-30 17:19 myseries 阅读(661) 评论(0) 推荐(0) 编辑
摘要:1. 为什么要用线程池 减少资源的开销 减少了每次创建线程、销毁线程的开销。 提高响应速度 ,每次请求到来时,由于线程的创建已经完成,故可以直接执行任务,因此提高了响应速度。 提高线程的可管理性 ,线程是一种稀缺资源,若不加以限制,不仅会占用大量资源,而且会影响系统的稳定性。 因此,线程池可以对线程 阅读全文
posted @ 2019-08-29 17:10 myseries 阅读(354) 评论(0) 推荐(0) 编辑
摘要:认识字符集 对于计算机而言,它仅认识两个0和1,不管是在内存中还是外部存储设备上,我们所看到的文字、图片、视频等等“数据”在计算机中都是已二进制形式存在的。不同字符对应二进制数的规则,就是字符的编码。字符编码的集合称为字符集。 在早期的计算机系统中,使用的字符是非常少的,他们只包括26个英文字母、数 阅读全文
posted @ 2019-08-07 18:13 myseries 阅读(1528) 评论(0) 推荐(0) 编辑
摘要:在不同的服务器或系统之间通过API接口进行交互时,两个系统之间必须进行身份的验证,以满足安全上的防抵赖和防篡改。 通常情况下为了达到以上所描述的目的,我们首先会想到使用非对称加密算法对传输的数据进行签名以验证发送方的身份,而RSA加密算法是目前比较通用的非对称加密算法,经常被用于数字签名及数据加密, 阅读全文
posted @ 2019-08-07 16:18 myseries 阅读(4794) 评论(0) 推荐(0) 编辑
摘要:RSA加密算法简介 SA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到 阅读全文
posted @ 2019-07-30 14:56 myseries 阅读(6955) 评论(0) 推荐(0) 编辑
摘要:首先看看官方说明: interrupt()方法 其作用是中断此线程(此线程不一定是当前线程,而是指调用该方法的Thread实例所代表的线程),但实际上只是给线程设置一个中断标志,线程仍会继续运行。 interrupted()方法 作用是测试当前线程是否被中断(检查中断标志),返回一个boolean并 阅读全文
posted @ 2019-06-29 18:23 myseries 阅读(10124) 评论(0) 推荐(3) 编辑
摘要:CyclicBarrier使用: 输出: CountDownLatch例子 输出: FutureTask、Callable例子 输出: thread.join() 例子 输出: wait()、notify() 例子: 输出: Condition 例子(生产消费): 输出: ....... 阅读全文
posted @ 2019-06-25 18:59 myseries 阅读(412) 评论(0) 推荐(0) 编辑
摘要:出处:https://www.cnblogs.com/imzhudi/p/7161770.html 一、什么是回调 回调,回调。要先有调用,才有调用者和被调用者之间的回调。所以在百度百科中是这样的: 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。 回调 阅读全文
posted @ 2019-06-05 16:51 myseries 阅读(3759) 评论(0) 推荐(1) 编辑
摘要:先看完理解这篇:Java hashCode() 和 equals()的若干问题解答 使用==操作符检查“参数是否为这个对象的引用”; 使用instanceof操作符检查“参数是否为正确的类型”; 对于类中的关键属性,检查参数传入对象的属性是否与之相匹配; 编写完equals方法后,问自己它是否满足对 阅读全文
posted @ 2019-06-05 09:43 myseries 阅读(14380) 评论(0) 推荐(4) 编辑
摘要:1.定义 super:当前对象的父类对象 this :当前对象,谁调用this所在的方法,this就是哪一个对象。 2.内存分析 另一个例子: public static void main(String[] args) { A test = new B(); System.out.println( 阅读全文
posted @ 2019-06-04 14:46 myseries 阅读(4119) 评论(0) 推荐(1) 编辑
摘要:1:BlockingQueue的继承关系 java.util.concurrent 包里的 BlockingQueue是一个接口, 继承Queue接口,Queue接口继承 Collection BlockingQueue >Queue-->Collection BlockingQueue即阻塞队列, 阅读全文
posted @ 2019-05-29 16:25 myseries 阅读(796) 评论(0) 推荐(0) 编辑
摘要:一、DelayQueue是什么 DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期时间最长。注意:不能将null元素放置到这种队列中。 二、DelayQueue能做什么 阅读全文
posted @ 2019-05-29 15:43 myseries 阅读(41131) 评论(4) 推荐(10) 编辑
摘要:中断 中断(Interrupt)一个线程意味着在该线程完成任务之前停止其正在进行的一切,有效地中止其当前的操作。线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序。虽然初次看来它可能显得简单,但是,你必须进行一些预警以实现期望的结果。你最好还是牢记以下的几点告诫。 首先,忘掉Thre 阅读全文
posted @ 2019-05-24 16:23 myseries 阅读(37833) 评论(4) 推荐(19) 编辑
摘要:1. 引言 java 类被虚拟机编译之后成为一个 Class 的字节码文件,该字节码文件中包含各种描述信息,最终都需要加载到虚拟机中之后才能运行和使用。那么虚拟机是如何加载这些 Class 文件?Class 文件中的信息进入虚拟机之后会发生什么变化?接下来我们一个一个探讨。 2. 类加载的时机 类的 阅读全文
posted @ 2019-05-23 17:47 myseries 阅读(296) 评论(0) 推荐(0) 编辑
摘要:一:什么是异常 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lan 阅读全文
posted @ 2019-05-22 19:17 myseries 阅读(1117) 评论(0) 推荐(0) 编辑
摘要:一. 线程池简介 1. 线程池的概念: 线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下 阅读全文
posted @ 2019-05-20 16:55 myseries 阅读(14200) 评论(1) 推荐(15) 编辑
摘要:TimeUnit是什么? TimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段 主要作用 时间颗粒度转换 延时 常用的颗粒度 1、时间颗粒度转换 例子 2、延时 一般的写法 TimeUnit 写法 优先使用TimeUnit类中的sleep() TimeU 阅读全文
posted @ 2019-05-20 14:34 myseries 阅读(2978) 评论(0) 推荐(1) 编辑