1. Integer
वर्ग
Integer
हे देखील चांगले आहे की तो एक वर्ग आहे, याचा अर्थ असा की त्यात फील्ड आणि पद्धती असू शकतात. आणि, अर्थातच, त्यात ते आहेत. त्यापैकी बरेच - त्यापैकी डझनभर. येथे आम्ही सर्वात मूलभूत गोष्टींचा विचार करू.
वर्गात Integer
दोन फील्ड आहेत ज्यात प्रकाराची कमाल आणि किमान संभाव्य मूल्ये आहेत int
:
फील्ड | वर्णन |
---|---|
|
int प्रकाराचे कमाल संभाव्य मूल्य |
|
int प्रकाराचे किमान संभाव्य मूल्य |
int
काहीवेळा तुम्ही व्हेरिएबलला सर्वात लहान किंवा सर्वात मोठे संभाव्य मूल्य नियुक्त करू इच्छिता . न समजण्याजोग्या स्थिरांकांसह तुमचा कोड गोंधळून जाणे टाळण्यासाठी, तुम्ही हे खालीलप्रमाणे स्पष्टपणे लिहू शकता:
कोड | वर्णन |
---|---|
|
|
वर्गात Integer
काही मनोरंजक पद्धती देखील आहेत. ते आले पहा:
पद्धती | वर्णन |
---|---|
|
संख्याचे हेक्साडेसिमल प्रतिनिधित्व असलेली स्ट्रिंग मिळवते |
|
संख्याचे बायनरी प्रतिनिधित्व असलेली स्ट्रिंग मिळवते |
|
संख्याचे अष्टिक प्रतिनिधित्व असलेली स्ट्रिंग मिळवते |
|
पास केलेले ऑब्जेक्टमध्ये int गुंडाळतेInteger |
|
पास केलेल्या स्ट्रिंगमधून मिळवलेली संख्या मिळवते |
तुम्हाला पूर्वी स्थिर Integer.parseInt()
पद्धत आढळली. हे कसे कार्य करते ते आठवूया:
int name = Integer.parseInt(string);
जर एखादी संख्या (केवळ अंक) असलेली स्ट्रिंग पद्धतीला दिली गेली parseInt()
, तर ती स्ट्रिंगचे विश्लेषण करेल आणि त्यात असलेली संख्या परत करेल.
उर्वरित पद्धती देखील उपयुक्त आहेत. उदाहरणार्थ, त्यांपैकी काही पास झालेल्या संख्येचे बायनरी, ऑक्टल किंवा हेक्साडेसिमल प्रतिनिधित्व असलेल्या स्ट्रिंगमध्ये रूपांतरित करू शकतात.
2. Double
वर्ग
सर्वसाधारणपणे, Double
वर्ग हा वर्गासारखाच असतो Integer
, फक्त तो a double
ऐवजी a गुंडाळतो int
. यामध्ये फील्ड आणि पद्धती देखील आहेत ज्या आम्हाला स्वारस्य असतील. त्यापैकी काहींचा विचार करा:
वर्गात Double
सहा मनोरंजक फील्ड आहेत:
फील्ड | वर्णन |
---|---|
|
नकारात्मक अनंत |
|
सकारात्मक अनंत |
|
किमान संभाव्य घातांक (2 x ) |
|
कमाल संभाव्य घातांक (2 x ) |
|
double प्रकाराचे किमान संभाव्य मूल्य |
|
double प्रकाराचे कमाल संभाव्य मूल्य |
अनंत
जर तुम्ही -1.0
ने भागले 0.0
तर तुम्हाला ऋण अनंतता मिळेल. जर तुम्ही भागाकार केला 1.0
तर 0.0
तुम्हाला सकारात्मक अनंतता मिळेल. तुम्ही केवळ शून्याने भागाकार करू शकत नाही double
, परंतु तुम्ही या ऑपरेशन्सचा परिणाम संग्रहित करण्यासाठी देखील वापरू शकता.
a चे घातांकdouble
घातांक समजणे सोपे आहे. अंतर्गत, दुहेरीमध्ये मँटिसा आणि घातांक असतो. परंतु येथे घातांकाचे मूल्य नाही , परंतु आहे . अशा प्रकारे, जर घातांकाने वाढले तर , संख्येचे एकूण मूल्य दुप्पट होईल.10x
2x
1
MIN_EXPONENT == -1024
, म्हणजे , जे अंदाजे समान आहे2-1024
10-308
आणि अर्थातच, Double
वर्गात मनोरंजक पद्धती आहेत:
पद्धती | वर्णन |
---|---|
|
संख्याचे हेक्साडेसिमल प्रतिनिधित्व असलेली स्ट्रिंग मिळवते |
|
उत्तीर्ण झालेला क्रमांक अनंत आहे का ते तपासते. |
|
उत्तीर्ण क्रमांक आहे का ते तपासतेNaN |
|
पास केलेले ऑब्जेक्टमध्ये double गुंडाळतेDouble |
|
पास केलेल्या स्ट्रिंगमधून मिळवलेली संख्या मिळवते |
विशेष म्हणजे, अशी एक isInfinite()
पद्धत आहे जी true
उत्तीर्ण केलेली संख्या सकारात्मक किंवा नकारात्मक असीम असल्यास परत येते.
पद्धत isNaN()
सारखीच आहे — पास झालेला नंबर आहे की नाही हे तपासते NaN
( Not-a-Number , एक विशेष स्थिरांक जो अपरिभाषित मूल्य दर्शवितो).
3. Character
वर्ग
वर्ग Character
मुख्यतः त्याच्या मोठ्या संख्येने स्थिर उपयुक्तता पद्धतींसाठी मनोरंजक आहे जे आपल्याला वर्ण विविध श्रेणींशी संबंधित आहेत की नाही हे तपासू देतात.
उदाहरणे
पद्धती | वर्णन |
---|---|
|
एखादे वर्ण हा वर्णमाला वर्ण आहे की नाही ते तपासते |
|
अक्षर अक्षर आहे का ते तपासते |
|
अक्षर अंक आहे की नाही ते तपासते |
|
कॅरेक्टर स्पेस, लाइन ब्रेक किंवा पेज ब्रेक आहे का ते तपासते (कोड: 12, 13, 14) |
|
कॅरेक्टर व्हाइटस्पेस आहे का ते तपासते: स्पेस, टॅब इ. |
|
वर्ण लोअरकेस आहे की नाही ते तपासते |
|
वर्ण अप्परकेस आहे की नाही ते तपासते |
|
वर्ण लोअरकेसमध्ये रूपांतरित करते |
|
वर्ण अपरकेसमध्ये रूपांतरित करते |
या पद्धतींचे वैशिष्ट्य म्हणजे ते सर्व ज्ञात वर्णमालांसह कार्य करतात: अरबी अंकांना अंक इत्यादी म्हणून वर्गीकृत केले जाते.
4. Boolean
वर्ग
प्रकार Boolean
अक्षरशः प्रकार सारखाच आहे boolean
. फरक किमान आहेत.
खाली आम्ही वर्गाची सरलीकृत आवृत्ती दर्शवितो Boolean
:
कोड | वर्णन |
---|---|
|
स्थिरांक: TRUE и FALSE व्हेरिएबल क्लास Boolean कन्स्ट्रक्टर ही पद्धत अंतर्गत व्हेरिएबलचे मूल्य परत करते ही स्थिर पद्धत आणि true मध्ये रूपांतरित करते . TRUE false FALSE |
प्रकारात Boolean
दोन स्थिरांक आहेत (दोन फील्ड):
वर्गातील स्थिरांक | बुलियन प्रकारासाठी काउंटरपार्ट | वर्णन |
---|---|---|
|
|
खरे |
|
|
खोटे |
तुम्ही त्यांच्यासह कार्य करू शकता तशाच प्रकारे कार्य करा boolean
:
कोड | नोंद |
---|---|
|
क्लास Boolean हा एकमेव वर्ग आहे जो कंडिशनमध्ये लिहिला जाऊ शकतो |
|
तिन्ही चल समान आहेत true /TRUE |
|
दोन्ही वापरून स्थिरांकांची तुलना केली जाऊ शकते equals आणि == हे देखील कार्य करेल. |
ऑटोबॉक्सिंग येथे उत्तम कार्य करते. याचा अर्थ तुम्ही हा प्रकार प्रकाराप्रमाणेच वापरू शकता boolean
— याकडे लक्ष देण्यासारखे कोणतेही नुकसान नाहीत.
ते कसे लिहिले आहे | हे कसे कार्य करते |
---|---|
|
|
boolean
आणि येथे आणि प्रकारांची तुलना Boolean
:
boolean a = true;
Boolean b = true; // b will be equal to Boolean.TRUE
Boolean c = true; // c will be equal to Boolean.TRUE
a == b; // true (compared by value)
a == c; // true (compared by value)
b == c; // true (compared by reference, but they point to the same object)
आपल्याला खरोखर स्वतंत्र Boolean
ऑब्जेक्टची आवश्यकता असल्यास, आपल्याला ते स्पष्टपणे तयार करण्याची आवश्यकता आहे:
boolean a = true;
Boolean b = new Boolean(true); // New Boolean object
Boolean c = true; // c will be equal to Boolean.TRUE
a == b; // true (compared by value)
a == c; // true (compared by value)
b == c; // false (compared by reference, and they point to different objects)
Boolean
आणखी एक उदाहरण, जिथे आपण आतील एक वापरू if
:
कोड | नोंद |
---|---|
|
हे संकलित करेल आणि कार्य करेल |
हे संकलित करेल, परंतु ते कार्य करणार नाही!
कोड | नोंद |
---|---|
|
त्रुटी . ही ओळ अपवाद करेल |
5. ऑटोबॉक्सिंग दरम्यान कॅशिंग मूल्ये
पूर्णांक रॅपर प्रकारांशी संबंधित काही तोटे आहेत.
तुम्हाला आधीच माहित आहे की, जर आपण an int
आणि an ची तुलना केली तर Integer
, चे Integer
रूपांतर एका मध्ये होते int
:
ते कसे लिहिले आहे | हे कसे कार्य करते |
---|---|
|
|
जर तुम्ही दोन Integer
वस्तूंची एकमेकांशी तुलना केली तर ते int
s मध्ये रूपांतरित होणार नाहीत:
कोड | कन्सोल आउटपुट |
---|---|
|
|
a == c
आणि , पण , कारण जेव्हा आपण तुलना करतो आणि आपण संदर्भांची तुलना करतो. जे मूलत: आपण अपेक्षा करू.b == c
a != b
a
b
आश्चर्य
परंतु जर आपण 500
सोबत बदलले 100
तर आपल्याला पूर्णपणे भिन्न परिणाम मिळेल:
कोड | कन्सोल आउटपुट |
---|---|
|
|
येथे समस्या अशी आहे की ऑटोबॉक्सिंग दरम्यान नवीन Integer
ऑब्जेक्ट नेहमीच तयार होत नाही . -128
सर्वसमावेशक द्वारे मूल्यांसाठी ऑब्जेक्ट्स कॅश केले जातात 127
.
क्लासमध्ये Integer
एक लपलेला अॅरे आहे जो ऑब्जेक्ट्स संग्रहित करतो: Integer(-128)
, Integer(-127)
, ... Integer(126)
,Integer(127)
तुम्ही लिहिल्यास Integer x = 128
, ऑटोबॉक्सिंग प्रक्रिया नवीन ऑब्जेक्ट तयार करते, परंतु जर तुम्ही लिहिले Integer x = 127
तर ऑटोबॉक्सिंग प्रक्रिया विद्यमान ऑब्जेक्ट कॅशेमधून (अॅरेमधून) पुनर्प्राप्त करते.
Integer
कॅशेमधून ऑब्जेक्ट येऊ नये असे वाटत असल्यास , तुम्हाला ते स्पष्टपणे लिहून तयार करावे लागेल:Integer x = new Integer(127);
सर्व रॅपर प्रकारांमध्ये अशी कॅशे असते: Integer
, Long
, Byte
, Short
, Boolean
. प्रकारासाठी Boolean
, त्याची TRUE
आणि FALSE
मूल्ये दोन्ही स्थिर आहेत, म्हणून ते देखील मूलत: कॅशे केलेले आहेत.
GO TO FULL VERSION