
java
文章平均质量分 89
简洁是智慧的灵魂
广东工业大学计算机科学与技术学生
展开
-
java-类生命周期(一)
一个完整的java类生命周期经历加载、连接、初始化、使用、卸载的过程。了解java底层知识,有利于提升对java的理解,提升程序性能,减少内存消耗。原创 2014-05-15 08:29:43 · 1030 阅读 · 0 评论 -
java-多线程深入(三)happens-before介绍
多线程操作中,需注意互斥性和可见性,重点了解下可见性。(一)可见性问题来源1.cpu和内存速度相差过高,引入缓存(cache、寄存器等);一个线程由线程id、指令计数器PC、寄存器集合和堆栈构成,详见《程序员的自我修养》。每个线程有自己的工作内存,修改进程主内存的值,都需要拷贝到工作内存修改后,再回写,其他现场可能出现,读取到未回写的脏数据。2.原创 2015-01-27 11:18:37 · 1509 阅读 · 0 评论 -
java-多线程深入(四)Volatile分析
(一)volatile的使用1、使用场景(1)状态标识。用于实时指示某个重要性事件的发生,比如完成初始化或者停机。volatile boolean toShutdown; ...... public void shutdown() { toShutdown = true; } public void doWork() { while (!原创 2015-01-31 08:26:51 · 1353 阅读 · 0 评论 -
java-ThreadLocal简介
android中的Looper类,使用了ThreadLocal保存每个线程的Looperstatic final ThreadLocal sThreadLocal = new ThreadLocal();简单了解下ThreadLocal的概念和使用。(一)概念ThreadLocal为每个线程提供变量的副本,该变量线程间独立不影响。(二)使用/** * Thre原创 2014-12-30 20:03:40 · 926 阅读 · 0 评论 -
java-多线程深入(一)JMM
(一)java内存区域概况jvm运行java程序时把所管理的内存分成几个部分:方法区、java栈、本地方法栈、java堆、pc程序计数器。class字节码装载解析后,在多线程环境中,方法区和java堆数据共享,每个线程自带pc程序计数器和java栈,栈帧中包含方法的所有状态(局部变量、传参、返回值、运算中间结果等)。对共享数据需要考虑多线程并发问题。更详细内容可参考《深入理解JVM虚拟原创 2015-01-20 09:16:27 · 1234 阅读 · 0 评论 -
java-多线程深入(五)Atomic分析
(一)Atomic的使用java.util.concurrent中提供了atomic原子包,可以实现原子操作(atomic operation),即在多线程环境中,执行的操作不会被其他线程打断。/** * atomic简单demo * * @author peter_wang * @create-time 2014-6-9 上午9:29:58 */public c原创 2015-05-28 08:41:11 · 5681 阅读 · 2 评论 -
java-线程池(二)
继上一篇java-线程池(一)原创 2014-05-23 08:37:59 · 1224 阅读 · 0 评论 -
java-集合类(一)
概念理解1.集合类集合类用来存放动态变化的数据集合,因数组只能存储固定数量的数据集,集合类更灵活。2.各集合类简介 (1)接口 Iterable:实现集合遍历功能,每个集合类都实现,支持 foreach Collection:基本集合接口,支持增删查功能,包含 List、Set、Queue 接口。 List:可重复的数据集合,有索引方便增删改查。 Set:不可重复的数原创 2015-08-05 08:54:45 · 680 阅读 · 0 评论 -
java-集合类(二)
使用场景1.多线程(1)在jdk1.5之前原始的集合类中,只有vector、stack、hashtable、enumeration等是线程安全的,其他的都是非线程安全的。 非线程安全的集合在多线程操作中,会出现脏数据,如final List tickets = new ArrayList(); for (int i = 0; i 100000; i++) {原创 2015-08-18 10:18:56 · 730 阅读 · 0 评论 -
java-线程池(一)
性能优化中,其中一块是线程池的使用,初探线程池,从简单了解到源码分析,深入理解才能合理运用。(一)线程池的来源及优点单个异步任务,每次都需创建线程、销毁线程,当任务处理的时间短而请求数却巨大时,将导致资源消耗过多。比如,数据库连接,需消耗大量资源,建立线程池能重用数据库访问线程。使用线程池的优点:1.降低资源消耗。重用现有线程,减少线程创建销毁开销。2.提高原创 2014-05-23 08:13:54 · 1631 阅读 · 0 评论 -
java-多线程深入(二)互斥性和可见性
(一)互斥性互斥性,即原子性。原子,指最小的物质,具体不可再分性。CPU运算中,对多线程进行时间片分割执行,一个程序块执行时不可分割,即满足互斥性原子性。java中保证互斥性的方法:1.用sychronized锁住程序块,实行互斥synchronized (lock) { a++;}2.用Atomic对变量操作实行互斥public final stat原创 2015-01-26 10:12:35 · 3574 阅读 · 0 评论 -
java-异常详解
(一)异常出现的原因(二)异常分类(三)异常的使用原创 2014-09-28 05:55:07 · 1121 阅读 · 0 评论 -
java-类生命周期(二)
java-类生命周期(二),理论联系实际,例子剖析原创 2014-05-15 14:01:53 · 929 阅读 · 0 评论 -
java-内存管理
简单介绍java内存管理相关内容,讲述jvm内存结构和内存管理算法演进原创 2014-05-04 05:53:05 · 1519 阅读 · 0 评论 -
java-IO流
(一)IO概念原创 2014-05-03 21:47:17 · 727 阅读 · 0 评论 -
java-组合优于继承
组合和继承对比,及用例分析。原创 2014-05-21 05:59:12 · 6551 阅读 · 2 评论 -
java-IO操作性能对比
在软件系统中,IO速度比内存速度慢,IO读写在很多情况下会是系统的瓶颈。在java标准IO操作中,InputStream和OutputStream提供基于流的IO操作,以字节为处理单位;Reader和Writer实现了Buffered缓存,以字符为处理单位。从Java1.4开始,增加NIO(New IO),增加缓存Buffer和通道Channel,以块为处理单位,是双向通道(可读可写,类似RandomAccessFile),支持锁和内存映射文件访问接口,大大提升了IO速度。以下例子简单测试常见IO操作原创 2014-06-05 08:31:20 · 3354 阅读 · 0 评论 -
java-socket编程
先前有篇博文专门写了socket的基本概念,这里用java来实现简单的server-client的socket数据传输。原创 2014-09-07 06:56:00 · 1617 阅读 · 0 评论 -
java-反射深度剖析
Java反射是Java语言一个很重要的特征,简单剖析下反射的定义、原理、使用、性能及应用场景。原创 2014-06-16 08:01:39 · 1386 阅读 · 0 评论 -
java-HashMap分析
(一)哈希算法(二)java中的hashcode(三)hashmap源码分析原创 2014-09-23 07:27:18 · 1136 阅读 · 0 评论 -
java-字符串
字符串在开发中非常常见,了解String是非常有必要的,还能提升系统性能。原创 2014-09-16 08:30:15 · 1074 阅读 · 0 评论 -
java-多线程深入(六)锁
java多线程中提供的锁:synchronized和lock。(一)synchronized1、synchronized的使用每个对象都自带锁,锁可以同步实例方法(this是对象锁)、静态方法(class是对象锁)、方法块(synchronized参数是对象锁)原创 2015-08-19 07:48:35 · 846 阅读 · 0 评论