- 浏览: 62233 次
- 性别:
- 来自: 深圳
最新评论
文章列表
oracle数据类型和对应的java类型
- 博客分类:
- 数据库连接池
SQL数据类型
JDBC类型代码
标准的Java类型
Oracle扩展的Java类型
1.0标准的JDBC类型:
CHAR
java.sql.Types.CHAR
java.lang.String
oracle.sql.CHAR
VARCHAR2
java.sql.Types.VARCHAR
java.lang.String
oracle.sql.CHAR
LONG
java.sql.Types.LONGVARCHAR
java.la ...
1、创建java程序
create or replace and compile java source named sms as
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class SMS
{
public static String ent ...
http://sishuok.com/forum/blogPost/list/5337.html
Oracle性能调优
- 博客分类:
- 数据库连接池
前言
这次,我们将在Linux下来动手完成Oracle数据库的安装与使用。
Oracle本身是可以免费下载的包括 它的企业版以及被它收购的Weblogic和Sun中的几乎任何东西你都可以拿来下载和使用,不像IBM和Tibco一些其它厂商,只有“试用版”给你下载,Oracle的东西没有时间限制,你拿来做练习,搭实验环境都是没有任何的问题的。
但是,如果你出了问题,需要用到Oracle的补丁或者是Oracle的技术支持,这就开始收费。
Oracle就是这种“卖Service”的模式。
还有就是你安装了Oracle后,你的应用是给另一家企业用的或者是带有商业用途,那对不起Oracle ...
性能测试的目标
性能测试不同于功能测试,不是对与错的检验,而是快与慢的衡量。在进行真正的性能测试之前要先搞清楚目标:
1. 在确定的硬件条件下,可以支持的并发数越大越好,响应时间越快越好。具体需要达到的并发数是多大,要求的响应时间是多快,由产品经理来提出。
2. 在确定的硬件条件下,测试得到最大并发数和相应的响应时间之后。如果增加硬件投入,可以得到怎样的性能提升回报? (系统扩展性和伸缩性测试,Scalability)
这里的硬件条件包括:cpu,memery,I/O,network bandwidth。
性能测试中的基准测试 Benchmarking
与功能测试相似,性能测试也要 ...
java 堆和栈的区别
- 博客分类:
- JVM
Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等 指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也 ...
一.概述
定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。类加载和连接的过程都是在运行期间完成的。
二. 类的加载方式
1):本地编译好的class中直接加载
2):网络加载:java.net.URLClassLoader可以加载url指定的类
3):从jar、zip等等压缩文件加载类,自动解析jar文件找到class文件去加载util类
4):从java源代码文件动态编译成为class文件
深入JVM系列(二)之GC机制、收集器与GC调优
- 博客分类:
- JVM
一、回顾JVM内存分配
需要了解更多内存模式与内存分配的,请看 深入JVM系列(一)之内存模型与内存分配
1.1、内存分配:
1、对象优先在EDEN分配2、大对象直接进入老年代 3、长期存活的对象将进入老年代 4、适龄对象也可能进入老年代:动态对象年龄判断
动态对象年龄判断:
虚拟机并不总是要求对象的年龄必须达到MaxTenuringThreshold才能晋升到老年代,当Survivor空间的相同年龄的所有对象大小总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,无需等到MaxTenuringThreshold中指定的年龄
深入JVM系列(一)之内存模型与内存分配
- 博客分类:
- JVM
一、JVM内存区域划分
大多数 JVM 将内存区域划分为 Method Area(Non-Heap),Heap,Program Counter Register, Java Method Stack,Native Method Stack 和Direct Memomry(注意 Directory Memory 并不属于 JVM 管理的内存区域)。前三者一般译为:方法区、堆 ...
Java多线程(十二)之线程池深入分析(下)
- 博客分类:
- java线程
一、数据结构与线程构造方法
由于已经看到了ThreadPoolExecutor的源码,因此很容易就看到了ThreadPoolExecutor线程池的数据结构。图1描述了这种数据结构。
图1 ThreadPoolExecutor 数据结构
其实,即使没有上述图形描述ThreadPoolExecutor的数据结构,我们根据线程池的要求也很能够猜测出其数据结构出来。
线程池需要支持多个线程并发执行,因此有一个线程集合Collection<Thread>来执行线程任务;
涉及任务的异步执行,因此需要有一个集合来缓存任务队列Collection<Runnable ...
Java多线程(十一)之线程池深入分析(上)
- 博客分类:
- java线程
线程池是并发包里面很重要的一部分,在实际情况中也是使用很多的一个重要组件。
下图描述的是线程池API的一部分。广义上的完整线程池可能还包括Thread/Runnable、Timer/TimerTask等部分。这里只介绍主要的和高级的API以及架构和原理。
大多数并发应用程序是围绕执行任务(Task)进行管理的。所谓任务就是抽象、离散的工作单元(unit of work)。把一个应用程序的工作(work)分离到任务中,可以简化程序的管理;这种分离还在不同事物间划分了自然的分界线,可以方便程序在出现错误时进行恢复;同时这种分离还可以为并行工作提供一个自然的结构,有利于提高程序的并发性。下 ...
一、ReentrantLock 类
1.1 什么是reentrantlock
java.util.concurrent.lock 中的 Lock 框架是锁定的一个抽象,它允许把锁定的实现作为 Java 类,而不是作为语言的特性来实现。这就为 Lock 的多种实现留下了空间,各种实现可能有不同的 ...
一、ReentrantReadWriteLock与ReentrantLock
说到ReentrantReadWriteLock,首先要做的是与ReentrantLock划清界限。它和后者都是单独的实现,彼此之间没有继承或实现的关系。
ReentrantLock 实现了标准的互斥操作,也就是一次只能有一个线程持有锁,也即所谓独占锁的概念。前面的章节中一直在强调这个特点。显然这个特点在一定程度上面减低了吞吐量,实际上独占锁是一种保守的锁策略,在这种情况下任何“读/读”,“写/读”,“写/写”操作都不能同时发生。但是同样需要强调的一个概念是,锁是有一定的开销的,当并发比较大 ...
一、引言
Semaphore :一个计数信号量
CountDownLatch :一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
CyclicBarrier :一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点
Exchanger :方便了两个共同操作线程之间的双向交换
二、Semaphore
一、什么是同步器
多线程并发的执行,之间通过某种 共享 状态来同步,只有当状态满足 xxxx 条件,才能触发线程执行 xxxx 。
这个共同的语义可以称之为同步器。可以认为以上所有的锁机制都可以基于同步器定制来 ...