2011年11月29日火曜日

ANH QUÝ HỢI

Nam Mạng - Quý Hợi

Sanh năm: 1923 đến 1983 và 2043
Cung KHÔN. Trực NGUY
Mạng ĐẠI HẢI THỦY (nước biển lớn)
Khắc THIÊN THƯỢNG HỎA
Con nhà HẮC ĐẾ (phú quý)
Xương CON HEO. Tướng tinh CON GÀ

Ông Tử Vi độ mạng

Quý Hợi số mạng như là, Mạng Thủy nước biển chảy tràn vào sông. Số này thuận hạp Thu Đông, Cuộc đời sung sướng ít ai sánh bằng. Nhưng sanh Xuân Hạ lỗ thay, Nghèo giàu cũng cực tay chân không ngừng. Vợ chồng có khắc chẳng an, Con thì nhiều đứa làm phiền cho ta. Anh em xung khắc chẳng gần, Người dưng giúp đỡ lập nên nghiệp nhà. Só� này tài lộc có nhiều, Tuổi nhỏ chưa đậu tuổi già hiển vinh. Lắm lúc buôn tảo bán tần, Nhà cửa đời đổi nhiều lần chẳng an.

Tử Vi Giải Đoán

CUỘC SỐNG
Tuổi Quý Hợi cuộc đời nhiều đau thương về tuổi nhỏ, cuộc sống bắt đầu bớt lo lắng và buồn khổ từ lúc tuổi 30 trở lên. Tuy nhiên sự thương đau và đau buồn đó là thường làm cho cuộc sống có nhiều thay đổi.

Bắt đầu từ 36 tuổi trở đi cuộc đời mới trở lại trầm lặng và mới có đầy đủ những yếu tố căn bản để tạo lấy sự nghiệp.

Bắt đầu từ 40 trở đi thì cuộc sống được vững bền, và có sung sướng, nhưng tâm trí cũng thường lo nghĩ, không bao giờ được yên, có thể vào 44 tuổi trở đi cuộc sống mới có kết quả bảo đảm cho đời sống.

Tóm lại: Cuộc đời tuổi nhỏ nhiều thương đau, nhưng vào trung bận thì mới được an nhàn và tạo được sự nghiệp vững chắc.

Tuổi Quý Hợi hưởng thọ trung bình từ 58 đến 78 tuổi là mức tối đa, nhưng nếu có phước đức thì sẽ được gia tăng niên kỷ, gian ác sẽ bị giảm kỷ.

TÌNH DUYÊN
Về vấn đề tình duyên buổi ban đầu cũng có nhiều trở ngại, nhưng sau được thành công. Theo khoa chiêm tinh và tướng số, nhận xét tuổi bạn về vấn đề tình duyên và hạnh phúc như sau: Nếu bạn sanh vào những tháng này thì cuộc đời bạn có ba lần thay đổi về vấn đề tình duyên và hạnh phúc, đó là bạn sanh vào những tháng: 8 và 12 Âm lịch. Nếu bạn sanh vào những tháng này thì cuộc đời của bạn sẽ phải thay đổi hai lần về tình duyên và hạnh phúc, đó là bạn sanh vào những tháng: 1, 2, 3, 4, 5, 9 và 10 Âm lịch. Và nếu bạn sanh vào những tháng này thì cuộc đời bạn sẽ hưởng được hạnh phúc hoàn toàn, đó là bạn sanh vào những tháng: 6, 7 và 11 Âm lịch.

Trên đây là bản nhận xét cuộc đời của bạn về vấn đề tình duyên và hạnh phúc, bạn nên nhớ lại tháng sanh của mình để hiểu rõ cuộc đời.

GIA ĐẠO, CÔNG DANH
Phần gia đạo luôn luôn có nhiều sôi động và khó khăn, tuy vậy nhờ ở lòng yêu mến gia đình và chỉ sáng suốtg của bạn, làm cho gia đạo được sống trong vui tươi. Phần công danh không lên cao mà chỉ ở vào mức trung bình mà thôi.

Tiền bạc dễ chịu từ năm ở vào tuổi 36 trở đi. Sự nghiệp tuy chưa có lúc được hoàn toàn theo ý muốn của bạn, nhưng tạm có thể là vừa phải và làm cho cuộc sống của bạn được vui vẻ hơn.


NHỮNG TUỔI HẠP LÀM ĂN
Trong việc làm ăn hay hợp tác làm ăn, bạn cần phải lựa chọn cho kỳ được những tuổi sau đây để hợp tác, công tác hay bất kỳ công việc nào khác có liên quan đến sự nghiệp và cuộc đời bạn, bạn xần lựa những tuổi này, bạn sẽ thâu đoạt được nhiều kết quả về tài lộc và không bao giờ bị thất bại, đó là các tuổi: Quý Hợi, Ất Sửu, và Đinh Mão. Những tuổi này là những tuổi có thể làm cho bạn được thâu đoạt được nhiều kết quả hoàn toàn về tài lộc cũng như về vấn đề tình cảm và mọi khía cạnh cuộc đời.

LỰA CHỌN VỢ, CHỒNG
Trong việc lựa chọn tình duyên để xây dưng hạnh phúc, bạn cần lựa những tuổi này, bạn được sống trên hoa gấm của cuộc đời và ít khi thất bại trong trường đời, đó là các tuổi hạp với bạn chẳng những về vấn đề tình duyên mà còn hạp về đường tài lộc nữa. Đó là các tuổi: Quý Hợi, Ất Sửu, Đinh Mão, Kỷ Tỵ, Tân Dậu.

Bạn kết duyên với những tuổi Quý Hợi và Ất Sửu: Cuộc sống bạn được đẩy mạnh lên cuộc sống cao sang quyền quý và cuộc đời có thể đi trên hoa gấm của trường đời. Với tuổi Đinh Mão và Kỷ Tỵ: Bạn tạo được một cuộc sống hoàn toàn êm đẹp và có thể làm ra tiền bạc rất mau lẹ làm cho cuộc sống có phần sung túc hơn. Với tuổi Tân Dậu: Bạn có thể đẩy mạnh cuộc sống lên cao tạo cho cuộc đời đầy triển vọng và sung sướng. Những tuổi trên đây về hào con đều đầy đủ.

Nếu bạn kết duyên với những tuổi này bạn chỉ có thể tạo được một cuộc sống trung bình mà thôi, đó là bạn kết duyên với các tuổi: Giáp Tý, Mậu Thìn, Canh Ngọ và Nhâm Tuất. Những tuổi trên đây chỉ hạp với tuổi bạn về mắt tình cảm mà lại rất kỵ về mặt tài lộc.

Nếu bạn kết duyên với những tuổi này thì cuộc sống bạn trở nên nghèo khổ, vì cuộc sống luôn luôn gặp nhiều trở ngại trong sự làm ăn, đó là bạn kết duyên với các tuổi: Bính Dần, Mậu Dần. Hai tuổi này rất khắc kỵ với tuổi bạn và chỉ đem lại cho đời bạn cảnh nghèo khổ mà thôi.

Những năm này bạn không nên cưới vợ vì kỵ tuổi, việc hôn nhơn sẽ không thành hay thành thì gặp cảnh xa vắng luôn luôn, đó là những năm mà bạn ở vào số tuổi: 18, 24, 28, 31, 36 và 40 tuổi.

Bạn sanh vào những tháng này sẽ có số đào hoa hay có nhiều thê thiếp trong cuộc đời, đó là bạn sanh vào những tháng: 1, 2, 7, 9 và 12 Âm lịch.

NHỮNG TUỔI ĐẠI KỴ Nếu bạn làm ăn hay kết duyên với những tuổi này bạn sẽ có thể gặp cảnh biệt ly hay tuyệt mạng, làm cho cuộc sống có nhiều đau thương, trắc trở, đó là các tuổi: Nhâm Thân và Canh Thân. Hai tuổi này đại kỵ trong suốt cuộc đời của bạn, không nên kết duyên hoặc làm ăn với những tuổi này.

NHỮNG NĂM KHÓ KHĂN NHẤT
Bạn có những năm làm ăn khó khăn, hay gặp những trở ngại trong cuộc đời, đó là những năm mà bạn ở vào số tuổi: 24, 28, 36 và 42 tuổi.

NGÀY GIỜ XUẤT HÀNH HẠP NHẤT
Tuổi Hợi có những ngày, giờ xuất hành hạp nhứt là những ngày lẻ, tháng lẻ và giờ lẻ, xuất hành theo trên đây thì làm ăn được khá, có nhiều thắng lợi về nghề nghiệp cũng như về tiền bạc. Xuất hành đúng theo chỉ dẫn trên, bạn khỏi sợ gặp tai nạn.

NHỮNG DIỄN TIẾN TỪNG NĂM
Từ 20 đến 25 tuổi: Tuổi 20, vừa bước vào đời đã gặp may mắn về vấn đề tình duyên. Tuy nhiên đó chỉ là một mối tình thoáng qua rồi sẽ không đi đến đâu. 21 tuổi, vượng phát về tài lộc. 22 tuổi, kỵ mùa hạ, kỵ lửa. 23 tuổi, kỵ đi xa, nhất là kỵ hùn hạp làm ăn, 24 tuổi, coi chừng tai nạn về nghề nghiệp trong khoảng thời gian từ tháng 4 đến cuối tháng 9 Âm lịch. Năm 25 tuổi, sẽ có nhiều hoạnh tài bất ngờ.

Từ 26 đến 30 tuổi: Suốt ba năm liền 26, 27 và 28 tuổi, bạn gặp được rất nhiều dịp may mắn, làm ăn phát đạt, tình cảm dồi dào, muốn gì được nấy, Tuy nhiên, bạn hãy coi chừng trong thời gian này có một người đàn bà tìm cách hại bạn hoặc quyến rũ bạn vào con đường bất chánh. Hai năm 29 và 30 tuổi, ở trạng thái bình thường, coi chừng cuối năm 30 tuổi, có thể bị đau bịnh bất ngờ.

Từ 31 đến 35 tuổi: Trong khoảng thời gian này năm năm này, thế nào bạn cũng sẽ phải đau một trận năng, thập tử nhất sinh, đây là những năm xấu nhất về bổn mạng của bạn, tuy nhiên về tài lộc vẫn không đến nỗi sút kém cho lắm.

Từ 36 đến 40 tuổi: Sau một thời gian ở trong trạng thái không được tốt mấy, tiếp theo đây là những năm hên nhất trong đời bạn, bạn nên lợi dụng khoảng thời gian này để xây dựng sự nghiêp của đời mình, vì trong những năm này bạn làm gì cũng đều thành công hết.

Từ 41 đến 43 tuổi: Mấy năm này bạn sống trong sự an nhàn, giàu có, hưởng thụ, đây là những năm sung sướng nhất trong đời bạn, không phải lo nghĩ hoặc buồn rầu chuyện gì hết.

Từ 44 đến 50 tuổi: Năm 44 tuổi khá tốt, làm ăn được phát đạt, toan tính việc gì cũng có thể làm được cả và thâu hoạch nhiều tài lộc đáng kể. Năm 45 tuổi, hơi kỵ vào những tháng 3 và 5, ngoài ra những tháng khác làm ăn được tốt. 46 tuổi, khá tốt đẹp vào những tháng 8 và 12, nên cẩn thận vào tháng 9. 47 và 48, hai năm không có gì xảy ra quan trọng, cuộc sống và công việc làm ăn chỉ ở trong mức độ bình thường mà thôi. Năm 49 và 50, hai năm được tốt. Năm 49 kỵ tháng 4. Năm 50 tuổi, kỵ tháng 7 ngoài những tháng khác trung bình.

Từ 51 đến 55 tuổi: Khoảng thời gian này, tuổi Quý Hợi được tốt, chỉ trừ cẩn thận về bản thân, ngoài ra không có việc gì quan trọng trong cuộc đời, con cái có cơ hội phát triển công danh.

Từ 56 đến 60 tuổi: Khoảng thời gian này bạn không được tốt lắm về đường tài lộc, tình cảm chỉ có thể có sự êm ấm trên gia đình, sự nghiệp mà thôi. Số tuổi này có thể có nhiều hy vọng, về con cái làm nên nhiều hơn cả sự nghiệp của mình.

2011年11月15日火曜日

Initialization-on-demand holder idiom


--From Wikipedia, the free encyclopedia--



In software engineering, the Initialization on Demand Holder idiom (design pattern) is a lazy-loaded singleton. The idiom can be implemented in both single-threaded/serial and concurrent environments, but care must be taken to correctly implement the idiom under concurrent conditions.

Example Java Implementation

This implementation is a well-performing and concurrent implementation valid in all versions of Java. The original implementation from Bill Pugh (see links below), based on the earlier work of Steve Quirk, has been modified to reduce the scope of LazyHolder.INSTANCE to private and to make the field final.

public class Something {
        private Something() {
        }

 
        private static class LazyHolder {
                public static final Something INSTANCE = new Something();

        }
 
        public static Something getInstance() {
                return LazyHolder.INSTANCE;

        }
}

How it works

The implementation relies on the well-specified initialization phase of execution within the Java Virtual Machine (JVM); see section 12.4 of Java Language Specification (JLS) for details.

When the class Something is loaded by the JVM, the class goes through initialization. Since the class does not have any static variables to initialize, the initialization completes trivially. The static class definition LazyHolder within it is not initialized until the JVM determines that LazyHolder must be executed. The static class LazyHolder is only executed when the static method getInstance is invoked on the class Something, and the first time this happens the JVM will load and initialize the LazyHolder class. The initialization of the LazyHolder class results in static variable INSTANCE being initialized by executing the (private) constructor for the outer class Something. Since the class initialization phase is guaranteed by the JLS to be serial, i.e., non-concurrent, no further synchronization is required in the static getInstance method during loading and initialization. And since the initialization phase writes the static variable INSTANCE in a serial operation, all subsequent concurrent invocations of the getInstance will return the same correctly initialized INSTANCE without incurring any additional synchronization overhead.

When to use it

Use this pattern if the initialization of the class is expensive and it cannot be done safely at class-loading time and the initialization is highly concurrent. The crux of the pattern is the safe removal of the synchronization overhead associated with accessing a singleton instance.

When not to use it


Avoid this idiom if the construction of INSTANCE can fail. If construction of INSTANCE fails, an invocation of Something.getInstance() will result in a java.lang.NoClassDefFoundError error. Handling, or mishandling, of these types of construction initialization failures is a common criticism of this idiom and the singleton pattern in general.

static inner class

1.If Object is String it's OK, but impossible for Array, user defined object.
2. Error in Eclipse:
The field OBJECT_CONST cannot be declared static; static fields can only be declared in static or top level types


------
Java Language Specification 3rd Edition, Section 8.1.3:
Inner classes may not declare static members, unless they are compile-time constant fields
Compile-time constant fields : int, long, double, short, ... String, .... 

Solution: modify inner class as static class member, or move static variable into top-level class

static/class methods

Static/Class methods


There are two types of methods.
  • Instance methods are associated with an object and
    use the instance variables of that object.
    This is the default.
  • Static methods use no instance variables of any
    object of the class they are defined in.
    If you define a method to be static, you will be given a rude
    message by the compiler if you try to access any instance variables.
    You can access static variables, but except for constants, this is unusual.
    Static methods typically take all they data from
    parameters and compute something from those parameters,
    with no reference to variables. This is typical of
    methods which do some kind of generic calculation. A good example
    of this are the many utility methods in the predefined Math

    class. (See Math and java.util.Random).

Qualifying a static call

From outside the defining class, an instance method is called by
prefixing it with an object, which is then passed as an implicit
parameter to the instance method, eg, inputTF.setText("");

A static method is called by prefixing it with a class name,
eg, Math.max(i,j);.
Curiously, it can also be qualified with an object, which will be ignored,
but the class of the object will be used.



Example

Here is a typical static method.
class MyUtils {
    . . .
    //================================================= mean
    public static double mean(int[] p) {
        int sum = 0;  // sum of all the elements
        for (int i=0; i<p.length; i++) {
            sum += p[i];
        }
        return ((double)sum) / p.length;
    }//endmethod mean
    . . .
}
The only data this method uses or changes is from parameters
(or local variables of course).


Why declare a method static


The above mean() method would work just as well if
it wasn't declared static, as long as it was called from
within the same class.
If called from outside the class and it wasn't declared static, it would have to be qualified (uselessly) with
an object. Even when used within the class, there are
good reasons to define a method as static when it could be.

  • Documentation. Anyone seeing that a method is
    static will know how to call it (see below).
    Similarly, any programmer looking at the code will
    know that a static method can't interact
    with instance variables, which makes reading and
    debugging easier.
  • Efficiency. A compiler will usually produce
    slightly more efficient code because no implicit
    object parameter has to be passed to the method.


Calling static methods

There are two cases.
Called from within the same class
Just write the static method name. Eg,
// Called from inside the MyUtils class
double avgAtt = mean(attendance);
Called from outside the class
If a method (static or instance) is called from another class, something must be given before the method name to specify the class where the method is defined. For instance methods, this is the object that the method will access. For static methods, the class name should be specified. Eg,
// Called from outside the MyUtils class.
double avgAtt = MyUtils.mean(attendance);
If an object is specified before it, the object value will be ignored and the the class of the object will be used.


Accessing static variables

Altho a static method can't access instance variables,
it can access static variables. A common use of

static variables is to define "constants".
Examples from the Java library are Math.PI or
Color.RED. They are qualified with the class name,
so you know they are static.
Any method, static or not, can access static variables.
Instance variables can be accessed only by instance methods.


Alternate call


What's a little peculiar, and not recommended, is that an object
of a class may be used instead of the class name to access
static methods. This is bad because it creates the impression
that some instance variables in the object are used, but this
isn't the case.