Java 8 是從 Java 5 後再一次最有衝擊性的更新,有 lambda expression 帶來的程式撰寫方式上的變革,以及支援 ARM embedded 裝置以讓各種 Java 應用程式可以在更多平台上完整執行。在本次的發表中,你會看到現場展示嵌入式裝置上執行 Java 8,例如 Raspberry Pi 和 Lego Mindstorms EV3,讓 Java 應用程式支援無處不在的末端裝置。尤其在越來越多低成本裝置進入市場,存取這些嵌入裝置也跟著變得越來越可行。隨著Java的進化,開發者可以很簡單的在這些裝置上開發更多有創意的應用。歡迎與會者參與聆聽未來的 Java 開發。
Java 8 將推出大家期待已久的Lambda語法,Lambda將大大改變開發者撰寫程式的方式,有了Lambda,大家可以在Java撰寫以往無法支援的functional programming model,這將大大提升Java語言的豐富性。在這個議程,將會教大家如何使用Lambda在Java FX的平台上撰寫一個骨灰遊戲,包含最佳實踐並展示串流(streaming) API. 此外,本議程也涵蓋加強版的Collection API, functional interfaces,更簡化的事件處理方式(even handler),以及新的串流API。大家快來學習這些Java 8將推出的重要功能,爲將來升級Java 8做好準備!
JavaFX 8 是開發桌面應用程式的下一個革命性的 Rich Client Platform。8 帶來了許多進步,例如更豐富的文字顯示元件,列印功能和 支援3D。但真正厲害的是它可以在手持裝置和嵌入裝置上執行。從小型ARM的Raspeberry Pi到由社群發起的OpenJFX和RoboVM支援iPhone跟Android。歡迎參與並看看JavaFX執行在你從未想到可行的裝置上。
本議程將透過一個貨物追蹤的應用程式, 為大家介紹Java 7所推出的重要功能. 這個應用程式是java.net上的一個新的專案. 這個應用程式採用許多大家熟悉的Java EE的pattern. 包含下列Java EE7的功能:
1.Web Sockets
2.JSON-P
3.Java RESTful API (JAX-RS)
4.Java Server Faces (JSF)
5.Contexts and Dependency Injection (CDI)
6.Bean Validation
7.Expression Language
這將是您學習如何在一個實際範例中使用Java EE 7的功能,有興趣的來賓可以在下列網址下載原始碼 http://cargotracker.java.net/. (MIT授權)
HTML 5 的重大改變很有可能會讓大家從重視精簡型客戶端 (thin client) 的框架 (例如 Struts, JSF) 轉向以 JavaScript 為主的完整客戶端 (rich cient) 方案。對於 REST, WebSocket 和 JSON 有完整支援的 JavaEE 已經準備好要擁抱這項改變了。藉由大量的程式碼,此議程將會教您如何使用目前最普遍的 JavaScript 完整客戶端框架 (例如 Angular JS, Backbone, Knockout 和 Ember),搭配 JAX-RS, JSR 356/WebSocket, JSON-P, CDI 以及 Bean Validation 來發揮 JavaEE 的核心優勢,我們也會介紹 Oracle 自己的 JavaScript 完整客戶端專案 Avatar。
此議程為探索各種 NoSQL解決方案,例如 MongoDB, Cassandra, Neo4j、HBase和CouchDB在Java EE應用程式中使用JPA或沒有用JPA 主的利用方式。雖然主要的內容將會著重在EclipseLink NoSQL,但也會涵蓋Hibernate OGM、EasyCassandra、Morphia等等,以及看看直接透過CDI注入來利用 NoSQL。
我們已經進入網路的時代十多年了,靠著摩爾定律,我們成功提升許多日常生活裝置的運算與連結的能力,並且同時降低製造成本,也就是集成電路上可容納的電晶體數量,每隔24個月就會增加一倍;但程式碼的數量卻也同時增加一倍!簡言之,開發嵌入式系統上的程式是困難的,需要許多專長,尤其是對低階語言的了解,Embedded Java出現的目的就是為了讓開發者能更容易,更快速地撰寫嵌入式系統上的應用程式,另外,也能利用Java跨平台的優勢, 大幅降低在異質系統上的整合與開發,對嵌入式系統有興趣的學員,歡迎到場聆聽。
大部份的文章都在介紹如何使用關聯式資料庫系統, 但卻很少人解釋關聯式資料庫系統內部如何運作. 在本議程將介紹講者如何使用JDK 8建置一個關聯式資料庫系統, 包含如何使用Jparser來解析SQL查詢, 以及如何使用Lambda的最佳實踐.
介紹 Java ME Embedded 8 的技術概要,包括 GPIO、UART、SPI 等,並且展示運用 Raspberry Pi 來收集處理 Sensors 的資料。
Optional、Function、Stream … 這些搭配 JDK8 Lambda 的 API,背後代表的是什麼樣的概念?瞭解如何運用這些 API,就瞭解了 Functional Programming 的概念如何經由適當地調整,以程式庫的形式融入 JDK8,也能進一步得知這些 Functional API 適用的情境!
兩年前我們為大家簡單介紹過 Hadoop。兩年之後,Hadoop 不只本身有著蠻大的改變,整個 Hadoop Ecosystem也不斷開枝散葉,衍生出許多新的子計畫,與現有的 IT 系統整合的更為密切,同時也激發出大家的創意,透過其他不同的想法與作法,共同面對 Big Data 這個議題。演講內容預計涵蓋:
1. 進擊的 Hadoop - Hadoop 2.x 的改進
2. Hadoop 戰隊 - Hadoop 重要家族成員介紹
3. Hadoop 聯盟 - 與 Hadoop 一起解決 Big Data 的重要夥伴介紹
4. 喝咖啡騎大象的行前建議
全文搜尋引擎已經是許多應用系統不可或缺的一部份,在過去的Java Developer Day / JavaTwo專業技術大會活動中,曾經介紹過開放原始碼的全文搜尋引擎 Lucene,以及相關的基礎觀念及實作。而在這一次,將探討實務上的進階需求及應用。
Guava 是一個由Google所維護的開源專案,它讓Java的開發更加舒適、更易維護、更有生產力。Guava 只是一個工具包,不需設定立即可用,而且好用。
1. Collections:極受歡迎的擴展,提供更多元的實用集合物件
2. Base:最常用的功能擴充,與讓人驚豔的Ordering
3. Range:處理區間數據資料的工具
4. Strings:更完整的字串組合與分割處理
5. Functions and Predicates:轉換集合資料型態與篩選
ElasticSearch 是一款基於 Lucene 的分散式搜尋與分析引擎,提供靈活與即時的搜尋界面。本議程將介紹如何利用 ElasticSearch,搭配 LogStash (Log Management) 與 Kibana (Visualization Engine), 打造一個靈活、scalable 的即時 Log 分析應用。
Spock是一個建構於Groovy語言之上的測試框架,它充分運用了Groovy的特性,讓原本難以讓人理解的測試程式碼搖身一變成為了優雅清晰的設計文件。Spock極具表達性的語法使它受到越來越多開發者的喜愛。本議程首先將介紹Spock測試框架,包含設計理念、基本工具以及與其他測試工具的比較。接著將根據一般實務中常見的測試撰寫需求示範如何利用Spock撰寫簡潔優美的測試,同時也將探討如何以Spock實現TDD(Test Driven Development)開發。
JavaFX之所以特殊,除了提供豐富的GUI物件與CSS樣式之外,最重要的是JavaFX提供物件的特殊效果(Effect),透過特殊效果更能突顯物件的立體感與層次感,特殊效果分為陰影、漸層、模糊、反射、高光與深褐色調等。此外,JavaFX並提供處理動畫(Animation)的類別,讓物件產生如同動畫般的移動效果,動畫效果分為時間軸(Timeline)與轉換(Transition)兩類。本議題介紹以JavaFX開發遊戲程式之基礎,依序說明JavaFX程式架構、事件、繪圖、特殊效果與動畫等主題,並介紹相關遊戲。
使用 Groovy 相關工具及技術,讓現代 Java 軟體開發更省時省力,是 Java 程式設計師提升工作效率的捷徑。本次議程分享的內容包括:
(1)撰寫 Groovy Script 的妙用;
(2)自動化的 Gradle 專案建置;
(3)認識 Grails 敏捷網站開發框架;
(4)利用 Geb 進行網頁自動化測試;
(5)部署 Amazon Web Services 雲端應用
Java的Garbage Collection(GC)是Java非常重要的功能之一,它可以減輕開發者的工作,但如果對它沒有一定程度的理解,也有可能讓Java系統陷入不知名的效能瓶頸。本議題將以深入淺出的方式來介紹Java GC的基本原理,並且給予簡單的效能調教以及Java GC演算法選擇上的建議。最後再介紹新的Java GC演算法G1,讓大家了解Java GC未來的發展方向。
VoltDB 是 in-memory 的 NewSQL database,相容 SQL 語法以及 ACID 一致性外,還具有分散式架構(高可擴充性、高可靠度、高性能)的特性,既不是 NoSQL database 與傳統的 relational database 也不盡相同,in-memory 運作解除 IO 瓶頸,由 k-safety(synchronous replication)提供高可靠度,以 Snapshots 和 command logging 確保耐久度(故障還原);VoltDB 與 Java 有密不可分的關係,底層由 Java 實做且提供 JDBC Interface ,大幅提昇 Java 程式開發的便利性,本議題將簡介 VoltDB 的基本特性,再以實例展示對 SQL 的支援程度。
行動裝置的普及為「推播技術(Push/Pull)」掀起革命性的應用,小至軟體更新、報價提示,大至群組廣播、社群互動,現代人「機不離手」,更大幅增強雲端服務的使用者黏度。軟體生命週期輪動速度越來越快,「創意」將是軟體工程師提升自我價值與差異化的不二法門。在技術瞬變及群眾嗜鮮的時代,突破重圍並提高應用程式的能見度,便是當前重要課題。4G/5G時代即將來臨,IoT與M2M是必然趨勢,推播技術的創新將在商業應用中成為亮點,您準備好了嗎?同場加映「Air Stamp 聲波通信控制技術」,千萬別錯過!
湯米(TomEE)來了!谁?誰是湯米?
懷念在湯姆貓(Tomcat)上那種快速開發、建置、部署、測試一氣呵成的快感嗎?嚮往JavaEE 6超級便利的Web Profile及CDI的機制嗎?唉!魚與熊掌不可兼得,湯姆貓偏偏就沒有實作Java EE 6 Web Profile相關的規格,真是悟卒呀!難道非得要搞個好幾百妹嘎的App Server才能玩得起這種高檔規格嗎?不不不…好消息!好消息!!湯米來了!湯米來了!誰是湯米(TomEE)呢?湯米以湯姆貓為核心,並將阿帕契(Apache)上Java EE相關的OpenSource實作(例如OpenEJB、OpenJPA、OpenWebBeans(CDI))整合在一起,藉以成就Java EE 6的Web Profile規格為主要目的。快速、羽量、低油耗…嘿嘿!可不是在說汽車喔!湯米這傢伙帶來的便利和敏捷性還真不是蓋的!
網路應用程式開發是十分有趣的主題,尤其在網際網路的領域中。
而Java NIO 於JDK 1.4起對於I/O設計,出現的新的處理方式,採用非堵塞式(no-blocking)進行資料接收,此議題將淺談NIO與socket的運行關係。分享的內容包括:
(1)Java NIO概述
(2)Channel NIO機制
(3)NIO客戶端程式
(4)NIO 伺服器