自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (4)
  • 问答 (2)
  • 收藏
  • 关注

原创 《Java并发编程的艺术》第十章——Executor框架

Executor框架的两级调度模型 在HotSpot VM的线程模型中,Java线程被一对一映射为本地操作系统线程。Java线程启动时会创建一个本地操作系统线程。当该Java线程终止时,这个操作系统线程也会被回收。操作系统会调度所有线程并将它们分配给可用的CPU。 在上层,Java多线程程序通常会把应用分解成若干个任务,然后使用用户级的调度器(Executor框架)将这些任务映射为固定数量的线

2018-01-26 16:16:05 363

原创 LeetCode之 AddTwoNumbers

给定两个非空链表,数字以相反的顺序存储,每个节点都包含一个数字。将相同位置数字相加,并将其作为链接列表返回。Example Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8 Explanation: 342 + 465 = 807.解法一:package com.lipeng.leetcode;/**

2018-01-25 10:53:21 276

原创 LeetCode之Two Sum

给定一个数组和一个目标值,返回数组中两个相加等于该目标值元素的索引。Example: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1]解法一:package com.lipeng.leetcode;import java.uti

2018-01-24 18:37:32 263

原创 《Java并发编程的艺术》第九章——Java中的线程池

Java中的线程池是运营场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池,在开发过程中,合理地使用线程池能够带来3个好处: - 降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 - 提高响应速度:当任务到达时,任务可以不需要等待线程创建就可以立即执行。 - 提高线程的可管理性:线程时稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统

2018-01-24 16:13:05 314

原创 反转链表Java实现

package cn.wangss.demo;/** * 反转链表 * @author LiPeng * */public class Test { public static Node Reverse(Node head){ Node current=head; Node nextTemp=null; Node prevTem

2018-01-24 11:30:57 802

原创 《Java并发编程的艺术》第八章——Java中的并发工具

在JDK的并发包里提供了几个非常有用的工具类。CountDownLatch、CyclicBarrier和Semaphore工具类提供了一种并发流程控制的手段,Exchanger工具类提供了在线程间交换数据的一种手段。 * 闭锁CountDownLatch* CountDownLatch允许一个或多个线程等待其他线程完成操作。 在JDK1.5之前,我们要达到类似目的,需要使用thread.jo

2018-01-23 15:04:50 210

原创 《Java并发编程的艺术》第七章——Java中的13个原子操作类

当一个线程更新一个变量时,程序如果没有正确的同步,那么这个变量对于其他线程来说是不可见的。我们通常使用synchronized或者volatile来保证线程安全的更新共享变量。在JDK1.5中,提供了java.util.concurrent.atomic包,这个包中的原子操作类提供了一种用法简单,性能高效,线程安全地更新一个变量的方式。 Atomic包里一共提供了13个类,有4种类型的原子更新方

2018-01-21 12:55:45 254

原创 《Java并发编程的艺术》第六章——Java并发容器和框架

知识点: 1. ConcurrentHashMap 2. ConcurrentLinkedQueue 3. Java中的阻塞队列 4. Fork/Join框架 1. ConcurrentHashMap ConcurrentHashMap是Java5后出现的,是线程安全且高效的HashMap。普通的HashMap在多线程下可能出现环形链接的问题,导致CPU飙升,程序挂死。而Ha

2018-01-18 16:48:36 379

原创 《Java并发编程的艺术》第五章——Java中的锁

知识点:Lock接口。 AQS队列同步器。 重入锁和读写锁。 LockSupport工具。 Condition接口。 1.Lock接口。 在Lock接口出现之前,Java程序靠synchronized关键字实现锁功能,而Java SE5之后,并发包中新增了Lock接口用来实现锁功能,他提供了与synchronized关键字类似的同步功能。但在使用时需要显示的获取和释放锁。虽然他缺少

2018-01-04 11:49:41 459

原创 《Java并发编程的艺术》第四章——Java并发编程基础

知识点:线程简介 。启动和终止线程 。线程间通信 。1.线程简介1.1 什么是线程? 要想明白什么是线程,必须先明白什么是进程!现在操作系统在运行一个程序时,会为其创建一个进程。而线程是操作系统调度的最小单元,也叫轻量级进程。一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈、和局部变量等属性,并能够访问共享的内存变量。处理器在这些线程上高速切换,让使用者感觉到

2017-12-22 12:31:14 395

原创 《Java并发编程的艺术》第三章·附一——双重检查锁定与延迟初始化

在Java多线程程序中,有时候需要采用延迟初始化来降低初始化类和创建对象的开销。双重检查锁定是常见的延迟初始化技术,但它是一个错误的用法。本文将分析双重检查锁定的错误根源,以及两种线程安全的延迟初始化方案。双重检查锁定的由来? 在Java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时,程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要

2017-12-20 17:04:25 528

原创 《Java并发编程的艺术》第三章——Java内存模型

Java内存模型知识点:Java内存模型的基础。 重排序规则。 Java内存模型的设计。同步原语(synchronized、volatile、final)的内存语义。 1.Java内存模型的基础。 在命令式编程中,线程之间的通信方式有两种: - 共享内存:即线程把数据写到内存,其他线程从内存读取,进行隐式的通信,但共享内存的同步必须依靠程序显式的指定,Java就采取这种方式。

2017-11-30 22:02:47 758

原创 《Java并发编程的艺术》第二章——Java并发机制的底层实现

《Java并发编程的艺术》各章知识点总结

2017-11-28 22:50:34 1216

原创 《Java并发编程的艺术》第一章——并发编程的挑战

《Java并发编程的艺术》各章知识点总结

2017-11-27 22:37:33 346

转载 SpringMVC Controller命名冲突的问题

SpringMVC conflicts with existing, non-compatible bean definition of same name and class 的解决办法,springmvc获取bean问题起因最近,项目组的里的同事遇到一个问题,他自己负责的模块,SpringMVC的Controller与其他模块的Controller 类名重名了,导致整个

2017-01-19 11:14:04 22274 2

转载 Java GC及堆内存

堆内存Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。

2017-01-16 10:59:40 1489

原创 Java注解

Java包含4个元注解,所谓元注解,就是定义自定义注解的注解,我们可以通过他们自定义我们的注解。下面首先讲解下4个元注解:@Target:@Target说明了Annotation所修饰的对象范围:Annotation可被用于packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、

2017-01-16 09:45:48 297

转载 Java中对象的深复制(深克隆)和浅复制(浅克隆)介绍

1.浅复制与深复制概念 ⑴浅复制(浅克隆)     被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。⑵深复制(深克隆)     被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原

2016-12-21 15:31:56 462

原创 流媒体服务器之Red5环境搭建

首先先介绍一下RED5,Red5的主要功能和Macromedia公司的FMS类似,提供基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。它由Java语言编写,使用RTMP作为流媒体传输协议,这与FMS完全兼容。它具有流化FLV、MP3文件,实时录制客户端流为FLV文件,共享对象,实时视频播放、Remoting等功能。用Red5替换FMS后,客户端不用更改可正常运行。所谓流媒体服务

2016-12-21 09:52:11 4946

《深入理解Java虚拟机:JVM高级特性与最佳实践》高清完整

《深入理解Java虚拟机:JVM高级特性与最佳实践》高清完整版 pdf

2017-11-13

swf文件反编译程序

swf文件反编译程序

2016-03-15

JAVA反编译程序,将已编译的java类还原成代码

JAVA反编译程序,将已编译的java类还原成代码

2016-03-15

基于jsp页面的在线报名管理系统

jsp页面开发的在线报名系统 内含完整代码和数据库文件

2015-06-19

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除