- 博客(132)
- 收藏
- 关注
原创 Demo
package com.huawei.crs.dataswitch.ui;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Image;import java.awt.Toolkit;import java.awt.event.Ac...
2014-10-19 21:10:35 184
原创 07.Oracle官方并发教程之不可变对象
一个对象如果在创建后不能被修改,那么就称为不可变对象。在并发编程中,一种被普遍认可的原则就是:尽可能的使用不可变对象来创建简单、可靠的代码。 在并发编程中,不可变对象特别有用。由于创建后不能被修改,所以不会出现由于线程干扰产生的错误或是内存一致性错误。 但是程序员们通常并不热衷于使用不可变对象,因为他们担心每次创建新对象的开销。实际上这种开销常常被过分高估,而且使用不可变对象所带来
2014-05-24 17:51:16 451
原创 06.Oracle官方并发教程之Guarded Blocks
多线程之间经常需要协同工作,最常见的方式是使用Guarded Blocks,它循环检查一个条件(通常初始值为true),直到条件发生变化才跳出循环继续执行。在使用Guarded Blocks时有以下几个步骤需要注意:假设guardedJoy()方法必须要等待另一线程为共享变量joy设值才能继续执行。那么理论上可以用一个简单的条件循环来实现,但在等待过程中guardedJoy方法不停
2014-05-24 17:43:46 378
原创 05.Oracle官方并发教程之活跃度
一个并发应用程序能及时执行的能力称为活跃性。本节将介绍最常见的活跃性问题:死锁(deadlock),以及另外两个活跃性问题:饥饿(starvation)和活锁(livelock)。死锁死锁描述了这样一种情景,两个或多个线程永久阻塞,互相等待对方释放资源。下面是一个例子。Alphone和Gaston是朋友,都很讲究礼节。礼节有一个严格的规矩,当你向一个
2014-05-24 16:36:10 470
原创 04.Oracle官方并发教程之同步
线程间的通信主要是通过共享域和引用相同的对象。这种通信方式非常高效,不过可能会引发两种错误:线程干扰和内存一致性错误。防止这些错误发生的方法是同步。不过,同步会引起线程竞争,当两个或多个线程试图同时访问相同的资源,随之就导致Java运行时环境执行其中一个或多个线程比原先慢很多,甚至执行被挂起,这就出现了线程竞争。线程饥饿和活锁都属于线程竞争的范畴。关于线
2014-05-24 16:05:10 428
原创 03.Oracle官方并发教程之线程对象
在Java中,每个线程都是Thread类的实例。并发应用中一般有两种不同的线程创建策略。直接控制线程的创建和管理,每当应用程序需要执行一个异步任务的时候就为其创建一个线程,将线程的管理从应用程序中抽象出来作为执行器,应用程序将任务传递给执行器,有执行器负责执行。这一节,我们将讨论Thread对象,有关Executors将在高级并发对象一节中讨论。定义并启动一个线程
2014-05-24 12:13:52 491
原创 01.Oracle官方并发教程之概述
标注:本文zhuanzhi原文地址:翻译地址:计算机的使用者一直以为他们的计算机可以同时做很多事情。他们认为当其他的应用程序在下载文件,管理打印队列或者缓冲音频的时候他们可以继续在文字处理程序上工作。甚至对于单个应用程序,他们任然期待它能在在同一时间做很多事情。举个例子,一个流媒体播放程序必须能同时完成以下工作:从网络上读取数字音频,解压缩数字音频,管理
2014-05-24 11:30:13 473
原创 Java并发教程
计算机的使用者一直以为他们的计算机可以同时做很多事情。他们认为当其他的应用程序在下载文件,管理打印队列或者缓冲音频的时候他们可以继续在文字处理程序上工作。甚至对于单个应用程序,他们任然期待它能在在同一时间做很多事情。举个例子,一个流媒体播放程序必须能同时完成以下工作:从网络上读取数字音频,解压缩数字音频,管理播放和更新程序显示。甚至文字处理器也应该能在忙于重新格式化文本和刷新显示的情况下同时响应键...
2014-05-24 11:18:43 124
原创 问题:为什么线程名称为Thread-1的线程没有被成功创建?
为什么线程名称为Thread-1的线程没有被成功创建?package com.hoonee.javase.thread;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/**...
2014-05-15 21:05:05 287
原创 Sqlite_命令行创建DB数据库文件
1. 下载sqlite-shell-win32-x86-3080403.zip,网址:http://www.sqlite.org/download.html2
2014-05-10 01:06:04 1805
原创 SQLite三种JDBC驱动的区别
SQLite Wrapper by Christianhttp://www.ch-werner.de/javasqlite/这个驱动其实是在本地C/C++的SQLite上用JDBC实现进行了包装。大小100K左右。优点:体积小;速度快缺点:依赖本地SQLite驱动SQLite Zentus Driverhttp://www.zentus.com/sqlitejdbc
2014-05-10 00:40:37 771
原创 JavaSE12_序列化
序列化概述:序列化是什么?就是将一个Java对象“流”化(转换成二进制数据流),流化后就能将对象保存到某种介质(磁盘、数据库等)或在某种介质(网络)上传送。简单的说就是 对象 --> 二进制数据,计算机就是处理二进制数据的专家,所以无论你存储,传输还是做某些操作(例如:加密、转换)都是可行的。序列化和反序列化序列化:对象 --> 二进制数据流反序列化:二进制数据流 -
2014-05-09 21:23:37 384
原创 JavaSE07_关键字之final
关键字之final概述:final:可用于修饰成员变量、方法、方法参数、类,代表最终态,不可变。final、finally、finalize1.final 本例已讲。2.finally 用于异常,无论异常与否,都需要执行的代码块,通常是做一些资源回收和善后工作。3.finalize 和垃圾回收机制有关。gc()后系统会执行finalize方法,它可能会拯救一些将被回收的
2014-05-09 00:29:12 456
原创 JavaSE07_关键字之static
关键字之static概述:修饰方法和成员变量,一旦修饰被修饰,就属类所有,可以通过类直接调用。静态代码块:主要功能是做一些初始化工作。代码块可以给变量赋初始值,但是千万不要把变量定义在代码块中。代码块不能接受参数,所以它初始化的应当是公共的相同的信息,每个类或每个对象都是一样的信息。静态成员(field、方法、代码块)不能访问非静态的成员,因为在他们运行的时候 非静态成
2014-05-09 00:23:34 489
原创 JavaSE07_关键字之this
关键字之this概述:this:指代当前对象自身,例如:this.name、this.show()等。几种使用this的情况:(具体见例子,注释写的很清楚)1.构造方法或者自定义方法的参数或局部变量和成员变量重名的时候。2.方法中调用当前对象(调用这个方法的对象)的成员变量或方法的时候。3.做一个方法(操作)链,每个方法执行后返回this。jquery中这样的例子常见。
2014-05-09 00:17:24 383
原创 JavaSE05_面向对象
面向对象概述:1.类和对象Java万物皆是对象,旨在将世界中的概念模拟到计算机程序中,它将现实世界中的所有事物视为对象。对象的描述是通过特征和行为来描述的,特征是对事物的静态描述,行为是对事务的动态描述。对应到程序中就是特征就是属性(成员变量)和行为就是方法。多个对象具有的相同特征和行为,我们将这样的特征和行为抽象出来,形成一个新的单元,这个单元称作是类。类是具
2014-05-09 00:04:59 601
原创 JavaSE17_多线程
多线程概述:什么是线程?os可以同时执行很多任务,这些任务就是进程,每个进程也可以同时执行很多任务,这个任务就是线程。为什么要多线程?1.线程协作提高效率:例如:经典的打印机例子、多线程下载等2.提供某种额外的相关服务:好比手机厂商提供周边产品生产,厂商不可能他能停下当前手机的生产而专注周边生产,所以会新产生一个部门去做周边设备。3.性能的提高:内存共享创建线程的2
2014-05-08 23:58:35 586
原创 JavaSE20_总结之Java变量类型识别的方式
总结之Java变量类型识别的方式/** * Java变量类型识别的方式 1.反射方式,成员变量的类型判断 2.isInstance用法 3.利用泛型识别类型 * * @author Hoonee * @mail hoonee@163.com */public class ObtainVarTypeDemo { private static int intVar
2014-05-08 18:50:42 401
原创 JavaSE10_异常
1.五个关键字 1.try:尝试捕获异常,具体的下面讲述 2.catch:当try捕获到异常了,系统会自动生成一个异常信息,这个异常信息就给catch,形象的说我抓住了这个异常。 3.throw:主动的抛出一个异常 情况一:我发现了一个我处理不了的 并且会导致我程序不正常运行的错误,于是我将这个异常抛出去了。(抛给谁了
2014-05-07 23:23:57 526
原创 JavaSE06_常用类之Runtime
常用类之Runtime简要说明 1.Runtime类是java程序的运行时环境 2.通过Runtime.getRuntime() 获得当前的运行环境实例 3.程序不能主动创建自己的Runtime实例 4.功能:能访问jvm相关信息,最重要的是它可以执行命令行
2014-05-05 00:58:03 524
原创 JavaSE06_常用类之System
常用类之System简要说明: 1.System类代表的是当前JAVA程序的运行平台2.System类提供了很多静态方法来做系统级的操作(具体见程序)
2014-05-05 00:56:58 383
原创 JavaSE06_常用类之String StringBuffer StringBuilder比较
常用类之String StringBuffer StringBuilder比较
2014-05-05 00:48:00 421
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人