随笔分类 -  Java&Spring

摘要:本文记录: 1,使用ScheduledExecutorService的 scheduleAtFixedRate 方法执行周期性任务的过程,讨论了在任务周期执行过程中出现了异常,会导致周期任务失败。 2,使用普通的Thread类来执行任务,在main线程中周期性创建线程,提交任务。然后,使用Uncau 阅读全文
posted @ 2017-09-30 20:29 大熊猫同学 阅读(5726) 评论(2) 推荐(0) 编辑
摘要:本文介绍如何向线程池提交任务,并获得任务的执行结果。然后模拟 线程池中的线程在执行任务的过程中抛出异常时,该如何处理。 一,执行具体任务的线程类 要想 获得 线程的执行结果,需实现Callable接口。FactorialCalculator 计算 number的阶乘,具体实现如下: 上面23行--2 阅读全文
posted @ 2017-09-26 21:57 大熊猫同学 阅读(34489) 评论(2) 推荐(2) 编辑
摘要:在实际应用中经常会比较两个对象是否相等,比如下面的Address类,它有两个属性:String province 和 String city。 在现实生活中我们认为若两个 Address 的 province 和 city 属性相同,则它们应该是同一个地址(省市都一样,当然就是同一个地区啦)。但下面 阅读全文
posted @ 2017-08-09 21:35 大熊猫同学 阅读(3789) 评论(0) 推荐(0) 编辑
摘要:本文主要记录JAVA中对象的初始化过程,包括实例变量的初始化和类变量的初始化以及 final 关键字对初始化的影响。另外,还讨论了由于继承原因,探讨了引用变量的编译时类型和运行时类型 一,实例变量的初始化 一共有三种方式对实例变量进行初始化: ①定义实例变量时指定初始值 ②非静态初始化块中对实例变量 阅读全文
posted @ 2016-10-04 20:20 大熊猫同学 阅读(24503) 评论(0) 推荐(1) 编辑
摘要:一,计算某个正数的二进制表示法中 1 的个数 算法思路:每次for循环,都将num的二进制中最右边的 1 清除。 为什么n &= (n – 1)能清除最右边的1呢?因为从二进制的角度讲,n相当于在n - 1的最低位加上1。举个例子,8(1000)= 7(0111)+ 1(0001),所以8 & 7 阅读全文
posted @ 2016-09-23 20:04 大熊猫同学 阅读(18449) 评论(0) 推荐(0) 编辑
摘要:Socket通信,主要是基于TCP协议的通信。本文从Socket通信(代码实现)、多线程并发、以及TCP协议相关原理方面 介绍 阻塞Socket通信一些知识。 本文从服务器端的视角,以“Echo Server”程序为示例,描述服务器如何处理客户端的连接请求。Echo Server的功能就是把客户端发 阅读全文
posted @ 2016-08-21 15:02 大熊猫同学 阅读(10713) 评论(2) 推荐(2) 编辑
摘要:一,JAVA线程是如何实现的? 同步,涉及到多线程操作,那在JAVA中线程是如何实现的呢? 操作系统中讲到,线程的实现(线程模型)主要有三种方式: ①使用内核线程实现 ②使用用户线程实现 ③使用用户线程加轻量级线程实现 二,JAVA语言定义了哪几种线程状态? JAVA语言定义了五种线程状态:①新建( 阅读全文
posted @ 2016-08-16 17:29 大熊猫同学 阅读(7042) 评论(0) 推荐(0) 编辑
摘要:本文主要记录:在JAVA中,(局部)内部类访问某个局部变量,为什么这个局部变量一定需要用final 关键字修饰? 首先,什么是局部变量?这里的局部是:在方法里面定义的变量。 因此,内部类能够访问某局部变量,说明这个内部类不是在类中定义的内部类,而是在方法中定义的内部类,称之为:局部内部类。 局部变量 阅读全文
posted @ 2016-08-06 17:21 大熊猫同学 阅读(12713) 评论(5) 推荐(2) 编辑
摘要:由于Netty,了解了一些异步IO的知识,JAVA里面NIO就是原来的IO的一个补充,本文主要记录下在JAVA中IO的底层实现原理,以及对Zerocopy技术介绍。 IO,其实意味着:数据不停地搬入搬出缓冲区而已(使用了缓冲区)。比如,用户程序发起读操作,导致“ syscall read ”系统调用 阅读全文
posted @ 2016-08-04 16:28 大熊猫同学 阅读(34564) 评论(14) 推荐(19) 编辑
摘要:本文主要学习JAVA多线程中的 wait()方法 与 notify()/notifyAll()方法的用法。 ①wait() 与 notify/notifyAll 方法必须在同步代码块中使用 ②wait() 与 notify/notifyAll() 的执行过程 ③中断 调用wait()方法进入等待队列 阅读全文
posted @ 2016-05-14 21:37 大熊猫同学 阅读(90900) 评论(12) 推荐(7) 编辑
摘要:一,volatile关键字的可见性 要想理解volatile关键字,得先了解下JAVA的内存模型,Java内存模型的抽象示意图如下: 从图中可以看出: ①每个线程都有一个自己的本地内存空间--线程栈空间???线程执行时,先把变量从主内存读取到线程自己的本地内存空间,然后再对该变量进行操作 ②对该变量 阅读全文
posted @ 2016-05-14 16:55 大熊猫同学 阅读(38719) 评论(7) 推荐(12) 编辑
摘要:一,介绍 本总结我对于JAVA多线程中线程之间的通信方式的理解,主要以代码结合文字的方式来讨论线程间的通信,故摘抄了书中的一些示例代码。 二,线程间的通信方式 ①同步 这里讲的同步是指多个线程通过synchronized关键字这种方式来实现线程间的通信。 参考示例: 由于线程A和线程B持有同一个My 阅读全文
posted @ 2016-05-14 15:41 大熊猫同学 阅读(172762) 评论(10) 推荐(19) 编辑
摘要:一,问题描述 假设有两个线程在并发运行,一个线程执行的代码中含有一个死循环如:while(true)....当该线程在执行while(true)中代码时,另一个线程会有机会执行吗? 二,示例代码(代码来源于互联网) 两个线程类的实现如下: 线程A执行methodA(),methodA()中有一个死循 阅读全文
posted @ 2016-05-07 11:11 大熊猫同学 阅读(18754) 评论(0) 推荐(2) 编辑
摘要:一,基础知识 计算机中数值的编码方式中,原码、反码、补码。 正数的补码与原码相同,负数的补码为:负数的原码符号位不变,其它位取反,再加1。 在计算机中,数值是以补码的形式存储的。补码的好处: ①用补码存储可以减化电路设计,因为它可以将减法转换成加法,简化运算规则,将加减法统一起来了。 ②还可以不用考 阅读全文
posted @ 2016-05-03 15:43 大熊猫同学 阅读(510) 评论(0) 推荐(0) 编辑
摘要:一,介绍 本文介绍JAVA多线程中的synchronized关键字作为对象锁的一些知识点。 所谓对象锁,就是就是synchronized 给某个对象 加锁。关于 对象锁 可参考:这篇文章 二,分析 synchronized可以修饰实例方法,如下形式: 这里,synchronized 关键字锁住的是当 阅读全文
posted @ 2016-05-02 17:19 大熊猫同学 阅读(16582) 评论(1) 推荐(4) 编辑
摘要:一,介绍 这篇文章主要记录使用 interrupt() 方法中断线程,以及如何对InterruptedException进行处理。感觉对InterruptedException异常进行处理是一件谨慎且有技巧的活儿。 由于使用stop()方法停止线程非常的暴力,人家线程运行的好好的,突然就把人家杀死了 阅读全文
posted @ 2016-05-01 17:09 大熊猫同学 阅读(28875) 评论(19) 推荐(2) 编辑
摘要:一,介绍 本文记录JAVA多线程中的中断机制的一些知识点。主要是stop方法、interrupted()与isInterrupted()方法的区别,并从源代码的实现上进行简单分析。 JAVA中有3种方式可以终止正在运行的线程 ①线程正常退出,即run()方法执行完毕了 ②使用Thread类中的sto 阅读全文
posted @ 2016-05-01 10:22 大熊猫同学 阅读(11948) 评论(0) 推荐(2) 编辑
摘要:一,介绍 本文讨论JAVA多线程中,使用 thread.suspend()方法暂停线程,使用 thread.resume()恢复暂停的线程 的特点。 先介绍二个关于线程的基本知识: ①线程的执行体是run()方法里面的每一条语句,main线程执行的则是main()方法里面的语句。 ②Thread.s 阅读全文
posted @ 2016-04-30 22:53 大熊猫同学 阅读(14188) 评论(0) 推荐(1) 编辑
摘要:一,数组的协变性(covariant array type)及集合的非协变性 设有Circle类和Square类继承自Shape类。 关于数组的协变性,看代码: 如果给 totalArray(Shape[] arr) 传递一个Circle[] 类型的数组,这是可以的,编译通过,也能正常运行。也就是说 阅读全文
posted @ 2016-04-09 16:27 大熊猫同学 阅读(2402) 评论(0) 推荐(0) 编辑
摘要:一,需求 文件服务器使用HTTP协议对外提供服务。用户通过浏览器访问文件服务器,首先对URL进行检查,若失败返回403错误;若通过校验,以链接的方式打开当前目录,每个目录或文件都以超链接的形式展现,可递归访问,并下载文件。 二,关键实现代码 ①文件服务器启动类 需要添加的通道处理器如下: 1) Ht 阅读全文
posted @ 2016-04-07 17:11 大熊猫同学 阅读(24197) 评论(10) 推荐(1) 编辑