Java Notes-11

來源:互聯網
上載者:User

標籤:java   concurrency   

Summary:Synchronized and Unsynchronized Collections, Properties
-In many applications, there is no need for synchronization, so the Collections API doesnot provide it by default. Instead, you can create a synchronized version of any collection

using the following methods of the  Collections class:

public static Collection synchronizedCollection(Collection c)public static Set synchronizedSet(Set s)public static List synchronizedList(List list)public static Map synchronizedMap(Map m)public static SortedSet synchronizedSortedSet(SortedSet s)public static SortedMap synchronizedSortedMap(SortedMap m)
-For example, the following shows how to create a threadsafe  List

List list = new ArrayList();List syncList = Collections.synchronizedList(list);
-This is important, so remember this! Although synchronized collections are threadsafe, the  Iterator s returned from them are not.

 

synchronized(syncList) {Iterator iterator = syncList.iterator();// do stuff with the iterator here}
-The  java.util.concurrent.ConcurrentHashMap class is part of the concurrency utilities package and provides a  Map that performs well under multithreaded access. 

-You can use the  Collections class to create read-only versions of any collection

public static Collection unmodifiableCollection(Collection c)public static Set unmodifiableSet(Set s)public static List unmodifiableList(List list)public static Map unmodifiableMap(Map m)public static SortedSet unmodifiableSortedSet(SortedSet s)public static SortedMap unmodifiableSortedMap(SortedMap m)

-The  java.util.Properties class is a specialized hash table for strings. Properties are generally used to hold textual configuration data.

-Any string values can be stored as key/value pairs in a  Properties table. However, the convention is to use a dot-separated naming hierarchy to group property names into
logical structures. 

Properties props = new Properties();props.setProperty("myApp.xsize", "52");props.setProperty("myApp.ysize", "79");

String xsize = props.getProperty( "myApp.xsize" );

You can save a  Properties table to an  OutputStream using the  save() method. The property information is output in a flat ASCII format. 

props.save( System.out, "Application Parameters" );

-The  load() method reads the previously saved contents of a  Properties object from an  InputStream 
FileInputStream fin;...Properties props = new Properties()props.load( fin );

-The  Properties class also contains  storeToXML() and  loadFromXML() methods. These operate just like the  save() and  load() methods but write an XML file like the following

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><properties><comment>My Properties</comment><entry key="myApp.ysize">79</entry><entry key="myApp.xsize">52</entry></properties>

-The  java.lang.System class provides access to basic system environment information through the static  System.getProperties() method. This method returns a  Properties table that contains system properties. 



 Next:The Preference API

Java Notes-11

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.