SlideShare a Scribd company logo
Java 7 new features
Java User Group Latvia
www.jug.lv
Java 7
Project began in August 2006
JDK7 is done via Open JDK effort
Major release – JVM, language and library changes
Current status – milestone M10, build b115, planned
release Mid 2011
Initially planned features
Closures – Project Lambda
Small language changes – Project Coin
Modularity for Java platform – Project Jigsaw
Support for dynamically-typed languages
Core and IO library extensions
Swing and UI related changes
Support for updated standards - Unicode, localization,
security, cryptography, XML and JDBC
Two release plans
Plan A
All features, release in Mid 2012
Plan B
JDK 7 minus Lambda, Jigsaw and part of Coin,
release in Mid 2011
JDK 8, release in late 2012

Recommended for you

Files and streams
Files and streamsFiles and streams
Files and streams

The document discusses file input and output streams in C++. It covers key topics like: - Opening files using constructors and the open() function - Using input and output streams like ifstream and ofstream to read from and write to files - Controlling file pointers using functions like seekg(), seekp(), tellg(), and tellp() - Performing sequential and random access file I/O using functions like put(), get(), read(), and write() - Handling errors during file operations using functions in the ios class like fail(), eof(), bad(), and good()

c++oopsfile handling in c++
ROracle
ROracle ROracle
ROracle

ROracle is an R package that enables connectivity to Oracle Database, allowing users to execute SQL statements from R and interface with Oracle databases. It provides a high-performance Oracle driver based on OCI. ROracle reads and writes data between R and Oracle databases much faster than other R database connectors. It is open source and available on CRAN.

connectdbar
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code

This document provides 10 lines of Java code examples for working with files and images in IBM Notes/Domino. It discusses reading and writing files using different methods like FileChannel and BufferedReader. It also demonstrates how to create a thumbnail image from a file attachment and embed it in a rich text field as a MIME object rather than a file attachment. The document emphasizes using try/finally blocks to properly close streams and considers server permissions and memory usage implications.

javaxpagesconnected
Plan B selected
Plan A
All features, release in Mid 2012
Plan B
JDK 7 minus Lambda, Jigsaw and part of Coin,
release in Mid 2011
JDK 8, release in late 2012
Approved feature list
JSR 292: Support for Dynamically-Typed Languages
(“InvokeDynamic”)
Small Language Enhancements (Project Coin)
Concurrency and Collections Updates (including the Fork/Join
Framework)
Upgrade Class-Loader Architecture
Unicode 6.0
JSR 203: More New I/O APIs (“NIO 2”)
Updated cryptography
JDBC 4.1
Translucent & Shaped Windows
Heavyweight/Lightweight Component Mixing
Swing: Nimbus Look-and-Feel, JLayer Component
Update the XML Stack (JAXP, JAXB, & JAX-WS)
Language enhancements - Project Coin
Strings in switch statement
GregorianCalendar c = new GregorianCalendar();
int monthNameToDays(String s, int year) {
switch (s) {
case "April": case "June":
case "September": case "November":
return 30;
case "January": case "March":
case "May": case "July":
case "August": case "December":
return 31;
case "February":
return 28 + (c.isLeapYear(year) ? 1 : 0);
default:
return -1;
}
}

Recommended for you

BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...

Don’t be afraid of Java! Many IBM Notes/Domino developers, both new and seasoned, have an irrational fear of learning and using Java because it seems overwhelming. Julian and Kathy will help you over this stumbling block with several short, understandable, and useful examples of Java that you can learn from. All of the examples will be ten lines of code or less, making them approachable and easy to understand. And we will show you how to integrate the Java code with an XPages application so you can get started right away.

ibmconnected2015ibmconnect2015
Python mongo db-training-europython-2011
Python mongo db-training-europython-2011Python mongo db-training-europython-2011
Python mongo db-training-europython-2011

This document provides an overview of using Python and MongoDB together. It discusses MongoDB concepts and architecture, how to get started with MongoDB using the interactive console, and basic CRUD operations. It then covers installing and using PyMongo, the main Python driver for MongoDB, and some popular high-level Python frameworks built on top of PyMongo like MongoEngine and MongoAlchemy.

python mongodb
Spring data presentation
Spring data presentationSpring data presentation
Spring data presentation

Spring Data provides a unified model for data access and management across different data access technologies such as relational, non-relational and cloud data stores. It includes utilities such as repository support, object mapping and templating to simplify data access layers. Spring Data MongoDB provides specific support for MongoDB including configuration, mapping, querying and integration with Spring MVC. It simplifies MongoDB access through MongoTemplate and provides a repository abstraction layer.

Improved Type Inference for Generic
Instance Creation
Map<Integer, List<String>> map =
new HashMap<Integer, List<String>>();
New “diamond” operator:
Map<Integer, List<String>> map = new HashMap<>();
List<?> l = new ArrayList<>();
Try-with-resources
void copy(String src, String dest) throws IOException {
InputStream in = new FileInputStream(src);
try {
OutputStream out = new FileOutputStream(dest);
try {
byte[] buf = new byte[8 * 1024];
int n;
while ((n = in.read(buf)) >= 0)
out.write(buf, 0, n);
} finally {
out.close();
}
} finally {
in.close();
}
}
Try-with-resources
void copy(String src, String dest) throws IOException {
try (InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dest)) {
byte[] buf = new byte[8192];
int n;
while ((n = in.read(buf)) >= 0)
out.write(buf, 0, n);
}
}
Try-with-resources
void copy(String src, String dest) {
try (InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dest)) {
byte[] buf = new byte[8192];
int n;
while ((n = in.read(buf)) >= 0)
out.write(buf, 0, n);
} catch (IOException e) {
e.printStackTrace();
}
}

Recommended for you

Session 23 - JDBC
Session 23 - JDBCSession 23 - JDBC
Session 23 - JDBC

In this session you will learn: 1. File IO Continued 2. Intro to JDBC (Java Database Connectivity)

file io continuedintro to jdbc (java database connectivity)
Adventures in TclOO
Adventures in TclOOAdventures in TclOO
Adventures in TclOO

This was a presentation I gave at the 17th Tcl Conference, in Oakbrook Terrace, IL, in 2010. It describes some of the more sophisticated things that it is possible to do with the new Tcl object system, TclOO.

tclobject orientation
Session 22 - Java IO, Serialization
Session 22 - Java IO, SerializationSession 22 - Java IO, Serialization
Session 22 - Java IO, Serialization

In this session, you will learn: 1. Java IO 2. Files 3. Streams 4. Byte-based 5. Character-based 6. Object Serialization

java iojava files i/ocharacter-based
Try-with-resources
package java.lang;
public interface AutoCloseable {
void close() throws Exception;
}
package java.io;
public interface Closeable extends AutoCloseable {
void close() throws IOException;
}
Multi-catch
try {
String.class.newInstance();
} catch (final IllegalAccessException |
InstantiationException e) {
e.printStackTrace();
throw e;
} catch (Exception e) {
// handle exception
}
Integer and binary literals
byte b = 0b00100101;
int phoneNumber = 123_456_7890;
long creditCardNumber = 1234_5678_9012_3456L;
int hexBytes = 0xFF_EC_DE_5E;
Simplified Varargs Method Invocation
List<String> a = new ArrayList<String>(),
b = new ArrayList<String>(),
c = new ArrayList<String>();
// Warning: [unchecked] unchecked generic array
// creation for varargs parameter of type
// List<String>[]
return Arrays.asList(a, b, c);

Recommended for you

Advance Java Programs skeleton
Advance Java Programs skeletonAdvance Java Programs skeleton
Advance Java Programs skeleton

The document provides templates and examples for creating Swing-based GUI applications, servlets, Java Server Pages (JSP), Java Database Connectivity (JDBC), Java Server Faces (JSF), Enterprise Java Beans (EJB), Hibernate, Struts, and web services in Java. It includes templates for common GUI components, servlets, JSP tags, database queries, managed beans, navigation rules, entity beans, Hibernate mappings, actions, and web service providers/consumers.

advance javasemester 5mumbai university
System Programming and Administration
System Programming and AdministrationSystem Programming and Administration
System Programming and Administration

This is the fourteenth (and last for now) set of slides from a Perl programming course that I held some years ago. I want to share it with everyone looking for intransitive Perl-knowledge. A table of content for all presentations can be found at i-can.eu. The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse

sysadminprogrammingperl
Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!

Spring Data provides a consistent programming model for data access while retaining store-specific features. It supports common repositories and query languages across relational, document, and graph databases. Spring Data includes sophisticated mapping support, template classes, query methods in repository interfaces, and integration of Querydsl for complex queries. It allows for cross-store persistence while also enabling specialized features like geospatial queries for MongoDB.

persistencenosqlspring
Language enhancements postponed
until Java 8
Language enhancements in Java 8
Collection literals and indexing
List<String> cities = ["Riga", "London", "Tokio"];
Set<String> countries = { "LV", "LT", "EE" };
Map<String, Double> atomicWeights = { "H" : 1.0079,
"He" : 4.0026, "Li" : 6.941 };
String city = cities[0];
Double weight = atomicWeights["H"];
Language enhancements in Java 8
Closures
#{ int x -> x + 1 }
#{ System.out.println("Hello, World!") }
list.forEach(#{ e -> System.out.println(e) });
Arrays.sort(array, #{ a, b -> a.compareToIgnoreCase(b) });
Language enhancements in Java 8
Method references
class Person {
public static int compareByAge(Person a, Person b) { ... }
}
Person[] people = ...
Arrays.sort(people, #Person.compareByAge);
Arrays.sort(people, #Person.compareByAge(Person, Person));
Arrays.sort(people, #comparatorHolder.comparePersonByAge);

Recommended for you

Lambda Chops - Recipes for Simpler, More Expressive Code
Lambda Chops - Recipes for Simpler, More Expressive CodeLambda Chops - Recipes for Simpler, More Expressive Code
Lambda Chops - Recipes for Simpler, More Expressive Code

While the new Streams API has been a great showcase for lambda methods, there are many other ways this new language feature can be used to make friendlier APIs and more expressive code. Lambdas can be used for a number of tasks which historically required significant boilerplate, type-unsafe constructs, or both. From new ways to express metedata, to emulating Groovy's null-safe navigation operator, we'll take a look at a myriad of ways, big and small, that you can use lambdas to improve APIs and streamline your code. We'll also look at some of the limitations of lambdas, and some techniques for overcoming them.

javaonejavaone2017
Session 24 - JDBC, Intro to Enterprise Java
Session 24 - JDBC, Intro to Enterprise JavaSession 24 - JDBC, Intro to Enterprise Java
Session 24 - JDBC, Intro to Enterprise Java

This document provides an overview of JDBC and introduces Java Enterprise Edition. It begins with a continued discussion of JDBC, explaining the purpose of databases and how JDBC drivers connect Java applications to databases. It then demonstrates how to connect to an Oracle database using JDBC and perform basic operations like queries, inserts, updates and deletes. The document concludes by introducing Java EE and noting that hands-on examples will use the HR schema in Oracle.

jdbcintroduction to java enterprise edition (java ee)
4 sesame
4 sesame4 sesame
4 sesame

Sesame is an open source Java framework for storing and querying RDF data. It provides a repository API for programmatic access and tools like a command line console and web-based workbench. The repository API offers methods for adding, querying, and deleting RDF data through repository connections. Sesame supports various repository implementations including in-memory, native on-disk, and remote repositories accessed over HTTP. Transactions allow grouping operations and rolling back on failure.

JSR 292 – Support for Dynamically-
Typed languages
JSR 292 - Overview
Dynamic languages on the JVM
JSR 223 implemented in JDK6
JVM initially designed for statically-typed language
4 bytecode instructions available for method invocations
Invokestatic
Invokevirtual
Invokespecial
Invokeinterface
new bytecode instruction "invokedynamic“ and Method
Handles
java.dyn package
JSR 292 – Method Handles
Method handle is a lightweight pointer or reference to a
method
java.dyn.MethodHandle
Example
public void testMethodHandle() throws Throwable {
MethodHandle hndl = MethodHandles.lookup().findVirtual(
PrintStream.class, "println",
MethodType.methodType(void.class, String.class));
hndl.<void>invokeGeneric(System.out, "Hello, MethodHandle!");
}
JSR 292 Invokedynamic – how it works?
JVM encounters invokedynamic instruction
JVM invokes the bootstrap method
The Bootstrap method resolves the method handle
The Bootstrap method must be previously registered in
JVM
Future calls don't require the Bootstrap method
invocation

Recommended for you

EuroPython 2015 - Big Data with Python and Hadoop
EuroPython 2015 - Big Data with Python and HadoopEuroPython 2015 - Big Data with Python and Hadoop
EuroPython 2015 - Big Data with Python and Hadoop

Big Data - these two words are heard so often nowadays. But what exactly is Big Data ? Can we, Pythonistas, enter the wonder world of Big Data ? The answer is definitely “Yes”. This talk is an introduction to the big data processing using Apache Hadoop and Python. We’ll talk about Apache Hadoop, it’s concepts, infrastructure and how one can use Python with it. We’ll compare the speed of Python jobs under different Python implementations, including CPython, PyPy and Jython and also discuss what Python libraries are available out there to work with Apache Hadoop.

pigjythonpypy
JDBC
JDBCJDBC
JDBC

The document discusses Structured Query Language (SQL) and Java Database Connectivity (JDBC). It provides examples of using SQL statements like SELECT, INSERT, UPDATE, DELETE to query and manipulate data in database tables. It also demonstrates how to connect to databases like MySQL from Java using JDBC, execute SQL queries to retrieve and manipulate data, handle transactions and exceptions. Key classes discussed are Connection, Statement, PreparedStatement, CallableStatement and their methods.

jdbcsunil ossunil sahu
InvokeDynamic at #shikadriven 2012
InvokeDynamic at #shikadriven 2012InvokeDynamic at #shikadriven 2012
InvokeDynamic at #shikadriven 2012
jvm
JSR 292 InvokeDynamic, Java example
public void testDynamic() throws Throwable {
InvokeDynamic.<void>greet("World");
}
static {
Linkage.registerBootstrapMethod("bootstrap");
}
public static void greet(String str) {
System.out.println("Hello, dynamic " + str);
}
private static CallSite bootstrap(Class caller, String name,
MethodType type) {
CallSite site = new CallSite(caller, name, MethodType.make(void.class));
site.setTarget(MethodHandles.lookup().findStatic(Test.class, name,
MethodType.make(void.class, String.class)));
return site;
}
NIO.2
NIO.2 – Paths
java.nio.file.Path – a replacement for java.io.File
File file = new File("index.html");
Path path = Paths.get("index.html");
Path path = new File("index.html").toPath();
All Path methods throw exceptions in case of errors
if (!file.delete()){
...
}
try {
path.delete();
} catch (IOException e) {
...
}
NIO.2 – FileSystem
Provides interface to file system
Default file system is local/platform file system
FileSystem local = FileSystems.getDefault();
Path p = local.getPath(“filename");
Path p2 = Paths.get(“filename”);
Jar and Zip file systems included

Recommended for you

Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C.
Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C. Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C.
Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C.

Steven Halliwell, General Manager, Amazon Web Services, will provide an Introduction to AWS, Why Organizations are choosing AWS, What Workloads are appropriate on AWS, and How Organizations are getting started with AWS. Steven will discuss what many AWS public sector customers and partners are doing with and saying about AWS. Lastly, Steven will talk about various strategies for how customers and partners can get started with AWS.

awscloudamazon web services
Charles nutter star techconf 2011 - jvm languages
Charles nutter   star techconf 2011 - jvm languagesCharles nutter   star techconf 2011 - jvm languages
Charles nutter star techconf 2011 - jvm languages

The document discusses building programming languages for the Java Virtual Machine (JVM). It begins by introducing the speaker, Charles Oliver Nutter, and his background working with JRuby and the JVM. It then explores reasons for creating and implementing languages, focusing on the benefits of the JVM like cross-platform support, libraries, and memory management. A case study of JRuby is presented, showing how it allows Ruby programming on the JVM with full interoperability with Java. In the conclusion, the document emphasizes benefits of the JVM like tools, open source culture, and how it influenced language implementation.

startechconf
Evolving Operations for BBC iPlayer
Evolving Operations for BBC iPlayerEvolving Operations for BBC iPlayer
Evolving Operations for BBC iPlayer

The document summarizes the evolution of the BBC iPlayer video factory operations from a traditional monolithic model to a more modern and scalable architecture in the cloud. The new architecture uses many small independent components with stateless and scalable design, continuous delivery, AWS services like CloudFormation, and tools for monitoring and automation. This has improved supportability, increased release frequency, and enabled more scalable video storage and delivery of over 24 terabytes of video per day across multiple regions and locations.

awseventcloud
NIO.2 – DirectoryStream
DirectoryStream to iterate over the entries
Scales to large directories
Filter using glob, regex, or custom filter
try (DirectoryStream<Path> stream =
dir.newDirectoryStream("*.{c,h,cpp,hpp,java}")) {
for (Path entry : stream) {
...
}
}
NIO.2 - Files.walkFileTree
Walks a file tree rooted at a given starting file
Invoke FileVisitor method for each file/directory
interface FileVisitor<T> {
FileVisitResult preVisitDirectory(T dir);
FileVisitResult visitFile(T file, BasicFileAttributes attrs);
FileVisitResult visitFileFailed(T file, IOException exc);
FileVisitResult postVisitDirectory(T dir, IOException exc);
}
SimpleFileVisitor – a default implementation
NIO.2 - File change notifications
Current approach – polling the file system
WatchService – watch registered objects (Watchables) for changes
WatchService watcher =
path.getFileSystem().newWatchService();
path.register(watcher, ENTRY_CREATE, ENTRY_MODIFY);
for (;;) {
WatchKey watchKey = watcher.take();
for (WatchEvent event : watchKey.pollEvents()) {
System.out.println(event.kind() + " : “
+ event.context());
}
watchKey.reset();
}
Fork/Join framework

Recommended for you

Large scale-olap-with-kobayashi
Large scale-olap-with-kobayashiLarge scale-olap-with-kobayashi
Large scale-olap-with-kobayashi

This document summarizes a presentation about performing large-scale OLAP (online analytical processing) using Kobayashi. It discusses storing network monitoring data from millions of meters at minute intervals in Riak and using FastBit indexes to enable arbitrary OLAP queries. It provides an example query to retrieve traffic data from specific meters over a 45 minute period broken down by traffic type. The presentation concludes by discussing future work, such as archiving expired data, outputting results at arbitrary resolutions, and open sourcing the data cubing and querying code.

kobayashiboundaryolap
Going Cloud First at the FT
Going Cloud First at the FTGoing Cloud First at the FT
Going Cloud First at the FT

The Financial Times has adopted a cloud-first approach, moving their data warehouse to AWS which reduced costs by 80% and processing time by 98%. They leverage AWS services and automation tools like Puppet to deploy and manage environments. Their FT Platform acts as an interface and aims to simplify using AWS through roles, security best practices, and making changes easier through regular reboots and rebuilding of environments. The focus is on automating infrastructure management to reduce complexity and costs while improving agility.

awscloudcloud computing
Java Closures
Java ClosuresJava Closures
Java Closures

This document discusses implementing closures in Java using inner classes and lambda expressions. It explains that inner classes can capture local variables and implement closures. Lambda expressions allow treating functions as values and auto-converting between functional interfaces. The document also covers proposed syntax for lambda expressions and how default methods allow adding methods to interfaces without breaking backward compatibility.

jvmclosuresjava
Fork/Join Framework
Multicore era approaching
Moore’s Law doesn’t work since ~2003
Current solution (java.util.concurrent) has its
limitations
Coarse grained parallelism
Inefficient CPU utilization
Solution: Fork/Join framework
Fork/Join – Divide and conquer
Result solve(Problem problem) {
if (problem.size < SEQUENTIAL_THRESHOLD)
return solveSequentially(problem);
else {
Result left, right;
INVOKE-IN-PARALLEL {
left = solve(extractLeftHalf(problem));
right = solve(extractRightHalf(problem));
}
return combine(left, right);
}
}
Fork/Join - architecture
ForkJoinExecutor, ForkJoinTask
Each worker thread has it’s own task queue (deque) –
no concurrency between treads for tasks
Work stealing algorithm – threads are never idle
Fork/Join - ParallelArray
ParallelArray<T>, ParallelLongArray etc.
Supports filtering, mapping, searching, sorting,
reducing etc.

Recommended for you

Rjb
RjbRjb
Rjb

Rjb is a Ruby gem that allows Ruby code to interact with Java objects by wrapping them in Ruby classes, enabling Ruby applications to leverage existing Java libraries and solutions. It provides a simple API for loading Java classes and calling methods on Java objects from Ruby without requiring a full Java runtime like JRuby. The document discusses how to install, configure and use Rjb to integrate Java functionality into Ruby and Rails applications.

integrationjavaruby
JDK1.7 features
JDK1.7 featuresJDK1.7 features
JDK1.7 features

This document summarizes several proposed changes for Java 7 including better integer literals with underscores for clarity, improved type inference for constructors and argument positions, new features like string switches and automatic resource management, and new libraries such as NIO2 and the fork/join framework for parallel programming.

jdk1.7javajava 7.0
Java 7, 8 & 9 - Moving the language forward
Java 7, 8 & 9 - Moving the language forwardJava 7, 8 & 9 - Moving the language forward
Java 7, 8 & 9 - Moving the language forward

The document summarizes new features in Java 7-8 including lambda expressions, switch on strings, try-with-resources, and the fork/join framework. Java 8 will focus on lambda expressions to provide functional programming capabilities and default methods to allow interfaces to have default implementations without breaking existing implementations. Java 9 may include additional modularization support.

javacoinlambda
ParallelArray example
ParallelArray<Order> orders = new ParallelArray<>(fjPool, data);
double maxAmount = orders
.withFilter(madeThisYear)
.withMapping(getAmount)
.max();
static final Ops.Predicate<Order> madeThisYear = new Ops.Predicate<>() {
public boolean op(Order o) {
return o.getYear() == thisYear;
}
};
static final Ops.ObjectToDouble<Order> getAmount = new
Ops.ObjectToDouble<>() {
public double op(Order o) {
return o.getAmount();
}
};
Try it yourself
Download JDK 7 early access
https://jdk7.dev.java.net/
Questions

More Related Content

What's hot

Looking Ahead to Tcl 8.6
Looking Ahead to Tcl 8.6Looking Ahead to Tcl 8.6
Looking Ahead to Tcl 8.6
ActiveState
 
JAVA NIO
JAVA NIOJAVA NIO
JAVA NIO
오석 한
 
An introduction into Spring Data
An introduction into Spring DataAn introduction into Spring Data
An introduction into Spring Data
Oliver Gierke
 
Files and streams
Files and streamsFiles and streams
Files and streams
Pranali Chaudhari
 
ROracle
ROracle ROracle
ROracle
Mohamed Magdy
 
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
Kathy Brown
 
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
panagenda
 
Python mongo db-training-europython-2011
Python mongo db-training-europython-2011Python mongo db-training-europython-2011
Python mongo db-training-europython-2011
Andreas Jung
 
Spring data presentation
Spring data presentationSpring data presentation
Spring data presentation
Oleksii Usyk
 
Session 23 - JDBC
Session 23 - JDBCSession 23 - JDBC
Session 23 - JDBC
PawanMM
 
Adventures in TclOO
Adventures in TclOOAdventures in TclOO
Adventures in TclOO
Donal Fellows
 
Session 22 - Java IO, Serialization
Session 22 - Java IO, SerializationSession 22 - Java IO, Serialization
Session 22 - Java IO, Serialization
PawanMM
 
Advance Java Programs skeleton
Advance Java Programs skeletonAdvance Java Programs skeleton
Advance Java Programs skeleton
Iram Ramrajkar
 
System Programming and Administration
System Programming and AdministrationSystem Programming and Administration
System Programming and Administration
Krasimir Berov (Красимир Беров)
 
Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!
Oliver Gierke
 
Lambda Chops - Recipes for Simpler, More Expressive Code
Lambda Chops - Recipes for Simpler, More Expressive CodeLambda Chops - Recipes for Simpler, More Expressive Code
Lambda Chops - Recipes for Simpler, More Expressive Code
Ian Robertson
 
Session 24 - JDBC, Intro to Enterprise Java
Session 24 - JDBC, Intro to Enterprise JavaSession 24 - JDBC, Intro to Enterprise Java
Session 24 - JDBC, Intro to Enterprise Java
PawanMM
 
4 sesame
4 sesame4 sesame
EuroPython 2015 - Big Data with Python and Hadoop
EuroPython 2015 - Big Data with Python and HadoopEuroPython 2015 - Big Data with Python and Hadoop
EuroPython 2015 - Big Data with Python and Hadoop
Max Tepkeev
 
JDBC
JDBCJDBC
JDBC
Sunil OS
 

What's hot (20)

Looking Ahead to Tcl 8.6
Looking Ahead to Tcl 8.6Looking Ahead to Tcl 8.6
Looking Ahead to Tcl 8.6
 
JAVA NIO
JAVA NIOJAVA NIO
JAVA NIO
 
An introduction into Spring Data
An introduction into Spring DataAn introduction into Spring Data
An introduction into Spring Data
 
Files and streams
Files and streamsFiles and streams
Files and streams
 
ROracle
ROracle ROracle
ROracle
 
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
10 Lines or Less; Interesting Things You Can Do In Java With Minimal Code
 
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
 
Python mongo db-training-europython-2011
Python mongo db-training-europython-2011Python mongo db-training-europython-2011
Python mongo db-training-europython-2011
 
Spring data presentation
Spring data presentationSpring data presentation
Spring data presentation
 
Session 23 - JDBC
Session 23 - JDBCSession 23 - JDBC
Session 23 - JDBC
 
Adventures in TclOO
Adventures in TclOOAdventures in TclOO
Adventures in TclOO
 
Session 22 - Java IO, Serialization
Session 22 - Java IO, SerializationSession 22 - Java IO, Serialization
Session 22 - Java IO, Serialization
 
Advance Java Programs skeleton
Advance Java Programs skeletonAdvance Java Programs skeleton
Advance Java Programs skeleton
 
System Programming and Administration
System Programming and AdministrationSystem Programming and Administration
System Programming and Administration
 
Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!
 
Lambda Chops - Recipes for Simpler, More Expressive Code
Lambda Chops - Recipes for Simpler, More Expressive CodeLambda Chops - Recipes for Simpler, More Expressive Code
Lambda Chops - Recipes for Simpler, More Expressive Code
 
Session 24 - JDBC, Intro to Enterprise Java
Session 24 - JDBC, Intro to Enterprise JavaSession 24 - JDBC, Intro to Enterprise Java
Session 24 - JDBC, Intro to Enterprise Java
 
4 sesame
4 sesame4 sesame
4 sesame
 
EuroPython 2015 - Big Data with Python and Hadoop
EuroPython 2015 - Big Data with Python and HadoopEuroPython 2015 - Big Data with Python and Hadoop
EuroPython 2015 - Big Data with Python and Hadoop
 
JDBC
JDBCJDBC
JDBC
 

Viewers also liked

InvokeDynamic at #shikadriven 2012
InvokeDynamic at #shikadriven 2012InvokeDynamic at #shikadriven 2012
InvokeDynamic at #shikadriven 2012
Go Tanaka
 
Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C.
Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C. Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C.
Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C.
Amazon Web Services
 
Charles nutter star techconf 2011 - jvm languages
Charles nutter   star techconf 2011 - jvm languagesCharles nutter   star techconf 2011 - jvm languages
Charles nutter star techconf 2011 - jvm languages
StarTech Conference
 
Evolving Operations for BBC iPlayer
Evolving Operations for BBC iPlayerEvolving Operations for BBC iPlayer
Evolving Operations for BBC iPlayer
Amazon Web Services
 
Large scale-olap-with-kobayashi
Large scale-olap-with-kobayashiLarge scale-olap-with-kobayashi
Large scale-olap-with-kobayashi
Boundary
 
Going Cloud First at the FT
Going Cloud First at the FTGoing Cloud First at the FT
Going Cloud First at the FT
Amazon Web Services
 
Java Closures
Java ClosuresJava Closures
Java Closures
Ben Evans
 
Rjb
RjbRjb

Viewers also liked (8)

InvokeDynamic at #shikadriven 2012
InvokeDynamic at #shikadriven 2012InvokeDynamic at #shikadriven 2012
InvokeDynamic at #shikadriven 2012
 
Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C.
Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C. Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C.
Welcome to the AWS Cloud - AWS Symposium 2014 - Washington D.C.
 
Charles nutter star techconf 2011 - jvm languages
Charles nutter   star techconf 2011 - jvm languagesCharles nutter   star techconf 2011 - jvm languages
Charles nutter star techconf 2011 - jvm languages
 
Evolving Operations for BBC iPlayer
Evolving Operations for BBC iPlayerEvolving Operations for BBC iPlayer
Evolving Operations for BBC iPlayer
 
Large scale-olap-with-kobayashi
Large scale-olap-with-kobayashiLarge scale-olap-with-kobayashi
Large scale-olap-with-kobayashi
 
Going Cloud First at the FT
Going Cloud First at the FTGoing Cloud First at the FT
Going Cloud First at the FT
 
Java Closures
Java ClosuresJava Closures
Java Closures
 
Rjb
RjbRjb
Rjb
 

Similar to Jug java7

JDK1.7 features
JDK1.7 featuresJDK1.7 features
JDK1.7 features
india_mani
 
Java 7, 8 & 9 - Moving the language forward
Java 7, 8 & 9 - Moving the language forwardJava 7, 8 & 9 - Moving the language forward
Java 7, 8 & 9 - Moving the language forward
Mario Fusco
 
Scalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedInScalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedIn
Vitaly Gordon
 
WhatsNewNIO2.pdf
WhatsNewNIO2.pdfWhatsNewNIO2.pdf
WhatsNewNIO2.pdf
Mohit Kumar
 
Java 7 & 8 New Features
Java 7 & 8 New FeaturesJava 7 & 8 New Features
Java 7 & 8 New Features
Leandro Coutinho
 
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevJava 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from Oredev
Mattias Karlsson
 
5. Ввод-вывод, доступ к файловой системе
5. Ввод-вывод, доступ к файловой системе5. Ввод-вывод, доступ к файловой системе
5. Ввод-вывод, доступ к файловой системе
DEVTYPE
 
New Features Of JDK 7
New Features Of JDK 7New Features Of JDK 7
New Features Of JDK 7
Deniz Oguz
 
JRubyKaigi2010 Hadoop Papyrus
JRubyKaigi2010 Hadoop PapyrusJRubyKaigi2010 Hadoop Papyrus
JRubyKaigi2010 Hadoop Papyrus
Koichi Fujikawa
 
Java I/o streams
Java I/o streamsJava I/o streams
Java I/o streams
Hamid Ghorbani
 
Java
JavaJava
Power tools in Java
Power tools in JavaPower tools in Java
Power tools in Java
DPC Consulting Ltd
 
Why is Java relevant? New features of Java8
Why is Java relevant? New features of Java8 Why is Java relevant? New features of Java8
Why is Java relevant? New features of Java8
xshyamx
 
Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1
Robert Stern
 
Twitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian NetworkTwitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian Network
Hendy Irawan
 
Java 7 Features and Enhancements
Java 7 Features and EnhancementsJava 7 Features and Enhancements
Java 7 Features and Enhancements
Gagan Agrawal
 
Scala is java8.next()
Scala is java8.next()Scala is java8.next()
Scala is java8.next()
daewon jeong
 
Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011
Agora Group
 
Apache Beam de A à Z
 Apache Beam de A à Z Apache Beam de A à Z
Apache Beam de A à Z
Paris Data Engineers !
 
Softshake 2013: 10 reasons why java developers are jealous of Scala developers
Softshake 2013: 10 reasons why java developers are jealous of Scala developersSoftshake 2013: 10 reasons why java developers are jealous of Scala developers
Softshake 2013: 10 reasons why java developers are jealous of Scala developers
Matthew Farwell
 

Similar to Jug java7 (20)

JDK1.7 features
JDK1.7 featuresJDK1.7 features
JDK1.7 features
 
Java 7, 8 & 9 - Moving the language forward
Java 7, 8 & 9 - Moving the language forwardJava 7, 8 & 9 - Moving the language forward
Java 7, 8 & 9 - Moving the language forward
 
Scalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedInScalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedIn
 
WhatsNewNIO2.pdf
WhatsNewNIO2.pdfWhatsNewNIO2.pdf
WhatsNewNIO2.pdf
 
Java 7 & 8 New Features
Java 7 & 8 New FeaturesJava 7 & 8 New Features
Java 7 & 8 New Features
 
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevJava 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from Oredev
 
5. Ввод-вывод, доступ к файловой системе
5. Ввод-вывод, доступ к файловой системе5. Ввод-вывод, доступ к файловой системе
5. Ввод-вывод, доступ к файловой системе
 
New Features Of JDK 7
New Features Of JDK 7New Features Of JDK 7
New Features Of JDK 7
 
JRubyKaigi2010 Hadoop Papyrus
JRubyKaigi2010 Hadoop PapyrusJRubyKaigi2010 Hadoop Papyrus
JRubyKaigi2010 Hadoop Papyrus
 
Java I/o streams
Java I/o streamsJava I/o streams
Java I/o streams
 
Java
JavaJava
Java
 
Power tools in Java
Power tools in JavaPower tools in Java
Power tools in Java
 
Why is Java relevant? New features of Java8
Why is Java relevant? New features of Java8 Why is Java relevant? New features of Java8
Why is Java relevant? New features of Java8
 
Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1
 
Twitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian NetworkTwitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian Network
 
Java 7 Features and Enhancements
Java 7 Features and EnhancementsJava 7 Features and Enhancements
Java 7 Features and Enhancements
 
Scala is java8.next()
Scala is java8.next()Scala is java8.next()
Scala is java8.next()
 
Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011
 
Apache Beam de A à Z
 Apache Beam de A à Z Apache Beam de A à Z
Apache Beam de A à Z
 
Softshake 2013: 10 reasons why java developers are jealous of Scala developers
Softshake 2013: 10 reasons why java developers are jealous of Scala developersSoftshake 2013: 10 reasons why java developers are jealous of Scala developers
Softshake 2013: 10 reasons why java developers are jealous of Scala developers
 

More from Dmitry Buzdin

How Payment Cards Really Work?
How Payment Cards Really Work?How Payment Cards Really Work?
How Payment Cards Really Work?
Dmitry Buzdin
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
 
How to grow your own Microservice?
How to grow your own Microservice?How to grow your own Microservice?
How to grow your own Microservice?
Dmitry Buzdin
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?
Dmitry Buzdin
 
Delivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDelivery Pipeline for Windows Machines
Delivery Pipeline for Windows Machines
Dmitry Buzdin
 
Big Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop InfrastructureBig Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop Infrastructure
Dmitry Buzdin
 
JOOQ and Flyway
JOOQ and FlywayJOOQ and Flyway
JOOQ and Flyway
Dmitry Buzdin
 
Developing Useful APIs
Developing Useful APIsDeveloping Useful APIs
Developing Useful APIs
Dmitry Buzdin
 
Whats New in Java 8
Whats New in Java 8Whats New in Java 8
Whats New in Java 8
Dmitry Buzdin
 
Архитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахАрхитектура Ленты на Одноклассниках
Архитектура Ленты на Одноклассниках
Dmitry Buzdin
 
Dart Workshop
Dart WorkshopDart Workshop
Dart Workshop
Dmitry Buzdin
 
Riding Redis @ask.fm
Riding Redis @ask.fmRiding Redis @ask.fm
Riding Redis @ask.fm
Dmitry Buzdin
 
Rubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part IIRubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part II
Dmitry Buzdin
 
Rubylight Pattern-Matching Solutions
Rubylight Pattern-Matching SolutionsRubylight Pattern-Matching Solutions
Rubylight Pattern-Matching Solutions
Dmitry Buzdin
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
 
Poor Man's Functional Programming
Poor Man's Functional ProgrammingPoor Man's Functional Programming
Poor Man's Functional Programming
Dmitry Buzdin
 
Rubylight programming contest
Rubylight programming contestRubylight programming contest
Rubylight programming contest
Dmitry Buzdin
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery
Dmitry Buzdin
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
Dmitry Buzdin
 
Thread Dump Analysis
Thread Dump AnalysisThread Dump Analysis
Thread Dump Analysis
Dmitry Buzdin
 

More from Dmitry Buzdin (20)

How Payment Cards Really Work?
How Payment Cards Really Work?How Payment Cards Really Work?
How Payment Cards Really Work?
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
How to grow your own Microservice?
How to grow your own Microservice?How to grow your own Microservice?
How to grow your own Microservice?
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?
 
Delivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDelivery Pipeline for Windows Machines
Delivery Pipeline for Windows Machines
 
Big Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop InfrastructureBig Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop Infrastructure
 
JOOQ and Flyway
JOOQ and FlywayJOOQ and Flyway
JOOQ and Flyway
 
Developing Useful APIs
Developing Useful APIsDeveloping Useful APIs
Developing Useful APIs
 
Whats New in Java 8
Whats New in Java 8Whats New in Java 8
Whats New in Java 8
 
Архитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахАрхитектура Ленты на Одноклассниках
Архитектура Ленты на Одноклассниках
 
Dart Workshop
Dart WorkshopDart Workshop
Dart Workshop
 
Riding Redis @ask.fm
Riding Redis @ask.fmRiding Redis @ask.fm
Riding Redis @ask.fm
 
Rubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part IIRubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part II
 
Rubylight Pattern-Matching Solutions
Rubylight Pattern-Matching SolutionsRubylight Pattern-Matching Solutions
Rubylight Pattern-Matching Solutions
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
Poor Man's Functional Programming
Poor Man's Functional ProgrammingPoor Man's Functional Programming
Poor Man's Functional Programming
 
Rubylight programming contest
Rubylight programming contestRubylight programming contest
Rubylight programming contest
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Thread Dump Analysis
Thread Dump AnalysisThread Dump Analysis
Thread Dump Analysis
 

Recently uploaded

Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 

Recently uploaded (20)

Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 

Jug java7

  • 1. Java 7 new features Java User Group Latvia www.jug.lv
  • 2. Java 7 Project began in August 2006 JDK7 is done via Open JDK effort Major release – JVM, language and library changes Current status – milestone M10, build b115, planned release Mid 2011
  • 3. Initially planned features Closures – Project Lambda Small language changes – Project Coin Modularity for Java platform – Project Jigsaw Support for dynamically-typed languages Core and IO library extensions Swing and UI related changes Support for updated standards - Unicode, localization, security, cryptography, XML and JDBC
  • 4. Two release plans Plan A All features, release in Mid 2012 Plan B JDK 7 minus Lambda, Jigsaw and part of Coin, release in Mid 2011 JDK 8, release in late 2012
  • 5. Plan B selected Plan A All features, release in Mid 2012 Plan B JDK 7 minus Lambda, Jigsaw and part of Coin, release in Mid 2011 JDK 8, release in late 2012
  • 6. Approved feature list JSR 292: Support for Dynamically-Typed Languages (“InvokeDynamic”) Small Language Enhancements (Project Coin) Concurrency and Collections Updates (including the Fork/Join Framework) Upgrade Class-Loader Architecture Unicode 6.0 JSR 203: More New I/O APIs (“NIO 2”) Updated cryptography JDBC 4.1 Translucent & Shaped Windows Heavyweight/Lightweight Component Mixing Swing: Nimbus Look-and-Feel, JLayer Component Update the XML Stack (JAXP, JAXB, & JAX-WS)
  • 7. Language enhancements - Project Coin
  • 8. Strings in switch statement GregorianCalendar c = new GregorianCalendar(); int monthNameToDays(String s, int year) { switch (s) { case "April": case "June": case "September": case "November": return 30; case "January": case "March": case "May": case "July": case "August": case "December": return 31; case "February": return 28 + (c.isLeapYear(year) ? 1 : 0); default: return -1; } }
  • 9. Improved Type Inference for Generic Instance Creation Map<Integer, List<String>> map = new HashMap<Integer, List<String>>(); New “diamond” operator: Map<Integer, List<String>> map = new HashMap<>(); List<?> l = new ArrayList<>();
  • 10. Try-with-resources void copy(String src, String dest) throws IOException { InputStream in = new FileInputStream(src); try { OutputStream out = new FileOutputStream(dest); try { byte[] buf = new byte[8 * 1024]; int n; while ((n = in.read(buf)) >= 0) out.write(buf, 0, n); } finally { out.close(); } } finally { in.close(); } }
  • 11. Try-with-resources void copy(String src, String dest) throws IOException { try (InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dest)) { byte[] buf = new byte[8192]; int n; while ((n = in.read(buf)) >= 0) out.write(buf, 0, n); } }
  • 12. Try-with-resources void copy(String src, String dest) { try (InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dest)) { byte[] buf = new byte[8192]; int n; while ((n = in.read(buf)) >= 0) out.write(buf, 0, n); } catch (IOException e) { e.printStackTrace(); } }
  • 13. Try-with-resources package java.lang; public interface AutoCloseable { void close() throws Exception; } package java.io; public interface Closeable extends AutoCloseable { void close() throws IOException; }
  • 14. Multi-catch try { String.class.newInstance(); } catch (final IllegalAccessException | InstantiationException e) { e.printStackTrace(); throw e; } catch (Exception e) { // handle exception }
  • 15. Integer and binary literals byte b = 0b00100101; int phoneNumber = 123_456_7890; long creditCardNumber = 1234_5678_9012_3456L; int hexBytes = 0xFF_EC_DE_5E;
  • 16. Simplified Varargs Method Invocation List<String> a = new ArrayList<String>(), b = new ArrayList<String>(), c = new ArrayList<String>(); // Warning: [unchecked] unchecked generic array // creation for varargs parameter of type // List<String>[] return Arrays.asList(a, b, c);
  • 18. Language enhancements in Java 8 Collection literals and indexing List<String> cities = ["Riga", "London", "Tokio"]; Set<String> countries = { "LV", "LT", "EE" }; Map<String, Double> atomicWeights = { "H" : 1.0079, "He" : 4.0026, "Li" : 6.941 }; String city = cities[0]; Double weight = atomicWeights["H"];
  • 19. Language enhancements in Java 8 Closures #{ int x -> x + 1 } #{ System.out.println("Hello, World!") } list.forEach(#{ e -> System.out.println(e) }); Arrays.sort(array, #{ a, b -> a.compareToIgnoreCase(b) });
  • 20. Language enhancements in Java 8 Method references class Person { public static int compareByAge(Person a, Person b) { ... } } Person[] people = ... Arrays.sort(people, #Person.compareByAge); Arrays.sort(people, #Person.compareByAge(Person, Person)); Arrays.sort(people, #comparatorHolder.comparePersonByAge);
  • 21. JSR 292 – Support for Dynamically- Typed languages
  • 22. JSR 292 - Overview Dynamic languages on the JVM JSR 223 implemented in JDK6 JVM initially designed for statically-typed language 4 bytecode instructions available for method invocations Invokestatic Invokevirtual Invokespecial Invokeinterface new bytecode instruction "invokedynamic“ and Method Handles java.dyn package
  • 23. JSR 292 – Method Handles Method handle is a lightweight pointer or reference to a method java.dyn.MethodHandle Example public void testMethodHandle() throws Throwable { MethodHandle hndl = MethodHandles.lookup().findVirtual( PrintStream.class, "println", MethodType.methodType(void.class, String.class)); hndl.<void>invokeGeneric(System.out, "Hello, MethodHandle!"); }
  • 24. JSR 292 Invokedynamic – how it works? JVM encounters invokedynamic instruction JVM invokes the bootstrap method The Bootstrap method resolves the method handle The Bootstrap method must be previously registered in JVM Future calls don't require the Bootstrap method invocation
  • 25. JSR 292 InvokeDynamic, Java example public void testDynamic() throws Throwable { InvokeDynamic.<void>greet("World"); } static { Linkage.registerBootstrapMethod("bootstrap"); } public static void greet(String str) { System.out.println("Hello, dynamic " + str); } private static CallSite bootstrap(Class caller, String name, MethodType type) { CallSite site = new CallSite(caller, name, MethodType.make(void.class)); site.setTarget(MethodHandles.lookup().findStatic(Test.class, name, MethodType.make(void.class, String.class))); return site; }
  • 26. NIO.2
  • 27. NIO.2 – Paths java.nio.file.Path – a replacement for java.io.File File file = new File("index.html"); Path path = Paths.get("index.html"); Path path = new File("index.html").toPath(); All Path methods throw exceptions in case of errors if (!file.delete()){ ... } try { path.delete(); } catch (IOException e) { ... }
  • 28. NIO.2 – FileSystem Provides interface to file system Default file system is local/platform file system FileSystem local = FileSystems.getDefault(); Path p = local.getPath(“filename"); Path p2 = Paths.get(“filename”); Jar and Zip file systems included
  • 29. NIO.2 – DirectoryStream DirectoryStream to iterate over the entries Scales to large directories Filter using glob, regex, or custom filter try (DirectoryStream<Path> stream = dir.newDirectoryStream("*.{c,h,cpp,hpp,java}")) { for (Path entry : stream) { ... } }
  • 30. NIO.2 - Files.walkFileTree Walks a file tree rooted at a given starting file Invoke FileVisitor method for each file/directory interface FileVisitor<T> { FileVisitResult preVisitDirectory(T dir); FileVisitResult visitFile(T file, BasicFileAttributes attrs); FileVisitResult visitFileFailed(T file, IOException exc); FileVisitResult postVisitDirectory(T dir, IOException exc); } SimpleFileVisitor – a default implementation
  • 31. NIO.2 - File change notifications Current approach – polling the file system WatchService – watch registered objects (Watchables) for changes WatchService watcher = path.getFileSystem().newWatchService(); path.register(watcher, ENTRY_CREATE, ENTRY_MODIFY); for (;;) { WatchKey watchKey = watcher.take(); for (WatchEvent event : watchKey.pollEvents()) { System.out.println(event.kind() + " : “ + event.context()); } watchKey.reset(); }
  • 33. Fork/Join Framework Multicore era approaching Moore’s Law doesn’t work since ~2003 Current solution (java.util.concurrent) has its limitations Coarse grained parallelism Inefficient CPU utilization Solution: Fork/Join framework
  • 34. Fork/Join – Divide and conquer Result solve(Problem problem) { if (problem.size < SEQUENTIAL_THRESHOLD) return solveSequentially(problem); else { Result left, right; INVOKE-IN-PARALLEL { left = solve(extractLeftHalf(problem)); right = solve(extractRightHalf(problem)); } return combine(left, right); } }
  • 35. Fork/Join - architecture ForkJoinExecutor, ForkJoinTask Each worker thread has it’s own task queue (deque) – no concurrency between treads for tasks Work stealing algorithm – threads are never idle
  • 36. Fork/Join - ParallelArray ParallelArray<T>, ParallelLongArray etc. Supports filtering, mapping, searching, sorting, reducing etc.
  • 37. ParallelArray example ParallelArray<Order> orders = new ParallelArray<>(fjPool, data); double maxAmount = orders .withFilter(madeThisYear) .withMapping(getAmount) .max(); static final Ops.Predicate<Order> madeThisYear = new Ops.Predicate<>() { public boolean op(Order o) { return o.getYear() == thisYear; } }; static final Ops.ObjectToDouble<Order> getAmount = new Ops.ObjectToDouble<>() { public double op(Order o) { return o.getAmount(); } };
  • 38. Try it yourself Download JDK 7 early access https://jdk7.dev.java.net/