DTrace Analysis

Similar documents

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

Java 1 Java String Date

Learning Java

Chapter 9: Objects and Classes

untitled

EJB-Programming-4-cn.doc

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

《大话设计模式》第一章

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

D C 93 2

Microsoft Word - 01.DOC

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

2 Java 语 言 程 序 设 计 教 程 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

RUN_PC連載_12_.doc

chp6.ppt

Chapter 9: Objects and Classes

RunPC2_.doc

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

untitled

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

epub 61-2

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

基于CDIO一体化理念的课程教学大纲设计

附录J:Eclipse教程

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

EJB-Programming-3.PDF

epub83-1

FileMaker 16 ODBC 和 JDBC 指南

Java

FileMaker 15 ODBC 和 JDBC 指南

untitled

提纲 1 2 OS Examples for 3

mvc

计 算 机 系 统 应 用 年 第 25 卷 第 4 期 线 程 的 复 用 [2,3]. 通 常 情 况 下, 服 务 器 端 程 序 在 启 动 时 创 建 若 干 数 量 的 线 程 对 象 并 缓 存 起 来, 此 时 它 们 处 于

IoC容器和Dependency Injection模式.doc

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

JavaIO.PDF

无类继承.key

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

Hive:用Java代码通过JDBC连接Hiveserver

Swing-02.pdf

ebook

JBuilder Weblogic

(6) 要 求 付 款 管 理 员 从 预 订 表 中 查 询 距 预 订 的 会 议 时 间 两 周 内 的 预 定, 根 据 客 户 记 录 给 满 足 条 件 的 客 户 发 送 支 付 余 款 要 求 (7) 支 付 余 款 管 理 员 收 到 客 户 余 款 支 付 的 通 知 后, 检

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

untitled

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

Microsoft PowerPoint - 09Future

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

目 录 1. 前 言 为 什 么 要 用 ESB 技 术 发 展 业 务 需 求 IT 需 求 IT 与 业 务 一 致 性 要 求 TongIntegrator ESB v5 简 介..

建模与图形思考

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

(Microsoft Word - \272\364\263q\245|\244A_ _\304\254\253\330\336\263__\272\353\302\262\263\370\247i.doc)

基于ECO的UML模型驱动的数据库应用开发1.doc

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

Microsoft Word - Broker.doc

java2d-4.PDF

PowerPoint Presentation

在 ongodb 中实现强事务

Microsoft Word - ch04三校.doc

软件工程文档编制

untitled

BPS6.0 Web服务集成和短流程功能使用手册

javaexample-02.pdf

目次 

untitled

建模与图形思考

LiveBOS产品白皮书

Microsoft Word - PHP7Ch01.docx

1

Adobe® Flash® 的 Adobe® ActionScript® 3.0 程式設計

LiveBOS产品白皮书

CC213

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

建立Android新專案

输入 project name 选择完成

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

4.1 AMI MQSeries API AMI MQI AMI / / AMI JavaC C++ AMI / AMI AMI - / /

untitled

untitled

(CIP) Web /,. :, ISBN X.W T P393.4 CIP (2004) Web ( ) ( / ) : * 787


untitled

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

PowerPoint Presentation

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

Oracle 4

Transcription:

Java SE 6 特性 Sun Microsystems

升级到 Java SE 6 的十大理由 简单的 Web Service 开发 脚本语言的集成 JDBC 4.0 和内嵌 Java DB 新的桌面开发 API JMX 扩展和一系列管理监控工具 访问 Javac 编译器的编程接口 Annotation 处理器插件接口 新的安装下载界面, 更好的 Native Look&Feel 支持

升级到 Java SE 6 的十大理由 ( 续 ) 提供 PKI, Java GSS, Kerberos, LDAP 服务支持 更好的性能和稳定性

Web Service 开发 J AX-WS 2.0 > J AXB 2.0 > SAAJ 3.0

Web Service 开发 package hello; import javax.jws.webservice; @WebService public class CircleFunctions { public double getarea(double radius) { return java.lang.math.pi * (r * r); public double getcircumference(double radius) { return 2 * java.lang.math.pi * r;

Web Service 开发 package hello; import javax.jws.webservice; @WebService public class CircleFunctions { public double getarea(double radius) { return java.lang.math.pi * (r * r); public double getcircumference(double radius) { return 2 * java.lang.math.pi * r;

Web Service 开发 生成相关 Stub 等文件 > wsgen 工具 部署创建的 Web Service import javax.xml.ws.endpoint; public static void main(string[] args) { Endpoint.publish( "http://localhost:8080/webserviceexam ple/circlefunctions", new CircleFunctions());

脚本语言的集成 J ava 不仅是一种语言, 同时是一个平台 > VM > 核心 Java 类库 对其它语言的支持 JSR-223 插件式的脚本语言引擎 javax.script 包

脚本集成 API 脚本引擎 ScriptContext, Bindings ScriptEngineFactory ScriptEngineManager

脚本引擎 ScriptEngine 接口 ( 必须 ) > 运行脚本文件 eval() 方法 > 将 Java 对象映射到脚本变量 (put() 方法 ) Invocable 接口 ( 可选 ) > 调用脚本方法 / 函数 > 通过脚本方法实现 Java 接口 Compilable 接口 ( 可选 ) > 把脚本编译成为中间结果, 多次执行

ScriptContext, Bindings ScriptContext 是宿主程序界定的脚本环境 ScriptContext 含有一个或者多个 Binding Binding 是 Map<String, Object> 的子类型 引擎范围的 Binding > 脚本变量 => 宿主程序对象 全局 Binding > 在多个引擎间共享

ScriptEngineFactory 与 ScriptEngine 一一对应 Factory 方法 :getscriptengine() 其它方法 > 脚本文件扩展名 > 脚本引擎版本 >...

ScriptEngineManager 实体类 脚本引擎查找 > Jar 文件的 META-INF/services 机制 > 文件后缀名 > 脚本语言名称 指定类型装载器的查找 绑定全局 Binding

例程 HelloWorld import javax.script.*; public class Main { public static void main(string[] args) throws ScriptException { // create a script engine manager ScriptEngineManager factory = new ScriptEngineManager(); // create JavaScript engine ScriptEngine engine=factory.getenginebyname("javascript"); // evaluate JavaScript code from String engine.eval("print('hello world')");

例程 从文件运行脚本 // create script engine manager ScriptEngineManager manager = new ScriptEngineManager(); // create JavaScript engine ScriptEngine engine = manager.getenginebyname( JavaScript ); // evaluate a file (or any java.io.reader) engine.eval(new FileReader( test.js ));

例程 脚本变量 // create script engine manager ScriptEngineManager manager = new ScriptEngineManager(); // create JavaScript engine ScriptEngine engine = manager.getenginebyname( JavaScript ); File f = new File( test.txt ); // expose File object as variable to script engine.put( file, f); // evaluate a script string // script accesses file variable and calls method on it engine.eval( print(file.getabsolutepath()) );

例程 调用脚本方法 // JavaScript code in a String String script = "function hello(name) { print('hello, ' + name); "; // evaluate script engine.eval(script); // JavaScript engine implements Invocable interface Invocable inv = (Invocable) engine; // invoke a global function called hello inv.invoke("hello", new Object[] {"Scripting!!" );

例程 脚本实现 Java 接口 // JavaScript code in a String String script = "function run() { print('run called\n'); "; // evaluate script engine.eval(script); // JavaScript engine implements Invocable interface Invocable inv = (Invocable) engine; Runnable r = inv.getinterface(runnable.class); r.run();

JDBC 4.0 和内嵌 JavaDB private Connection connect(string user, String passwd) throws SQLException { String url = "jdbc:mysql://javadb.sfbay/jplan"; String driver = "com.mysql.jdbc.driver"; try { Class.forName(driver); return DriverManager.getConnection(url, user, passwd); catch (ClassNotFoundException x) { throw new SQLException("Can't load Driver " + x);

JDBC 4.0 和内嵌 JavaDB private Connection connect(string user, String passwd) throws SQLException { String url = "jdbc:mysql://javadb.sfbay/jplan"; String driver = "com.mysql.jdbc.driver"; try { Class.forName(driver); return DriverManager.getConnection(url, user, passwd); catch (ClassNotFoundException x) { throw new SQLException("Can't load Driver " + x);

新的桌面 API Splash 屏幕 JTable 排序过滤 SwingWorker Desktop API

Splash 屏幕 命令行参数 > Java -splash:hello.png HelloWorld Jar 文件中参数设置 > SplashScreen-Image: MyImage.png 在程序中通过 SplashScreen 类访问图形上下文 > SplashScreen.getSplashScreen() > Graphics2D creategraphics()

JTable 排序过滤 根据 TableModel 创建 Sorter, 然后将 Sorter 设置到 Table 中 //create JTable JTable table = new Jtable(model); //create RowSorter RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model); //set Sorter table.setrowsorter(sorter);

JTable 排序过滤 通过向 TableRowSorter 设置 RowFilter 来实现对于 J Table 和 J List 的过滤 > andfilter > orfilter > datefilter > notfilter > numberfilter > regexfilter

SwingWorker Swing 的事件分派线程负责所有事件的调度和响应 费时的工作应该放在子线程中完成而不阻塞事件分派 > doinbackground(): 后台处理函数, 负责处理较为复杂的计算 > FirePropertyChange(): 通知监听的线程状态变化 > execute(): 从 Worker 线程上启动任务

SwingWorker final JLabel label; class MeaningOfLifeFinder extends SwingWorker<String, Object> { @Override public String doinbackground() { return findthemeaningoflife(); @Override protected void done() { try { label.settext(get()); catch (Exception ignore) { (new MeaningOfLifeFinder()).execute();

Desktop API 在 java 程序中启动系统本地的应用程序 > 浏览器, Email 客户端, 打印 //get Desktop instance Desktop desktop = Desktop.getDesktop(); //launch system browser with URI desktop.browse(new URI("http://www.sun.com")); //launch mail client with an email address filled //in desktop.mail(new URI("mailto:joey.shen@sun.com"));

为应用程序创建 TrayIcon TrayIcon 创建时的三个参数 TrayIcon icon = new TrayIcon(img, "My App", popmenu); > 图标 > ToolTip 显示 > 弹出菜单 创建一个 ActionListener icon.addactionlistener(mylistener); 将创建的 TrayIcon 加入到系统的 Tray 中 SystemTray tray = SystemTray.getSystemTray(); tray.add(icon);

JMX 扩展和检测管理工具 MXBean > CompositeData 对于复杂属性的自动包装 Descriptors > 关于得到各属性的附加信息 各种工具用于监测管理 J VM 和应用程序的运行状况 > 基于 JMX: Jconsole > 基于 JVMTI: jmp,hotspot provider

JConsole 通用的 JMX 客户端 连接本地和远程的 JVM 实例 监视和管理系统信息 > 内存使用情况 > 线程运行情况, 死锁检测 > 类的装载和卸载 > VM 的参数和基本信息 > 系统中各种 MBean 和 MXBean 提供的属性和操作

Jps, Jinfo, Jstat JPS: 列出所有 Java 进程和 ID > $jps -l -m > $jps -v -V Jinfo: 得到或改变某一个 Java 进程运行参数和系统属性 ( 在 Windows 上功能有限 ) > $jps -flags [jid] > $jps -sysprops [jid] Jstat: 统计 JVM 运行过程中的各种信息 > $jstat -gcutil [jid]

HPROF Heap Profiler 作为 JVMTI 的一个演示程序, 源代码在 <JAVA_HOME>/demo/jvmti/hprof 下 观测 Heap 内存分配 > $java -agentlib:hprof=heap=sites <Program> > $java -agentlib:hprof=heap=dump <Program> 观测 CPU 时间 > $java -agentlib:hprof=cpu=samples <Program> > $java -agentlib:hprof=cpu=times <Program>

Jmap 从运行的 JVM 进程, 或者 Core 文件中提取内存使用的统计信息 > $jmap -heap <jid> > $jmap -histo <jid> > $jmap -permstat <jid> > $jmap -dump:format=b,file=filename <jid>

Jhat & OQL 将 heap 中的对象通过 Web 的形式表现出来并且提供各种查询手段 > 对于 Heap 上各个对象实例的统计显示 > 显示活动对象实例到 root 对象的路径 > 现实 Pending Finalization 对象 OQL(Object Query Language) > 定制查询条件 > 语法类似于 JavaScript

Dtrace hotspot Provider 提供各种观测 JVM 运行的探针 > Vm 生命周期 > 线程生命周期 > 类装载 > 垃圾回收 > 方法编译 hotspot_jni Provider 提供观测 JNI 代码的探针

访问 Javac 编译器的编程接口 import javax.compiler.*; Compiler c = Compiler.newInstance(); c.setoutputdirectory(new File("build/classes")); c.setsourcepath(new File("src"), new File("gensrc")); c.setoption("xlint", "all"); c.run(new File("src/Main.java"));

Annotation 处理器接口 public class ToDoProcessor implements AnnotationProcessor {... public void process() { AnnotationTypeDeclaration tododecl = atds.iterator().next(); for(declaration decl : env.getdeclarationsannotatedwith(tododecl)) { System.out.format("% 16s %s%n", decl.tostring(); decl.getannotation(todo.class);

资源和链接 http://jdk.dev.java.net http://jcp.org http://java.sun.com/

Java SE 6 特性 Sun Microsystems