• 大数据必学Java基础(十二):基本数据类型


    文章目录

    基本数据类型

    一、整数类型整

    1、数类型常量

    2、整数类型变量

     二、浮点类型

    1、浮点类型常量

    2、浮点类型变量

    三、字符类型 

    四、布尔类型


    基本数据类型

    Java是一种强类型语言,每个变量都必须声明其数据类型。 

    Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。

    PS:巧妙记忆:除了基本数据类型以外的所有类型都属于引用数据类型,本章重点:基本数据类型

    一、整数类型

    1、数类型常量

    十进制整数,如:99, -500, 0

    八进制整数,要求以 0 开头,如:015

    十六进制数,要求 0x 或 0X 开头,如:0x15

    二进制:要求0b或者0B开头,如:0b11

    几进制:就是逢几进1的问题:

    平时实际生活中用的最多的是:十进制

    计算机用二进制最多

    扩展:进制转换问题

    【1】二进制转换为十进制:

    二进制: 1101

        1*2^3  +   1*2^2   +  0*2^1  +     1*2^0

    =    8         +      4       +     0       +      1

    =  13 

    【2】十进制转换为二进制:

    十进制  13

    【3】八进制转换十进制:

    八进制: 16

    1*8^1 +   6*8^0

    =   8     +  6

    =14

    【4】十进制转换为八进制:

    十进制14:

     

    【5】八进制转换为十六进制:

    把十进制当做一个中转站:

    八进制---》十进制---》十六进制

    实际上根本不用自己转换这么麻烦:我们可以直接用系统中提供给我们的计算器: 

    2、整数类型变量

    整型数据类型:

    比如:byte的右侧表数范围127怎么算出来的?

    byte: 1字节 =  8位 

    二进制:01111111

       1*2^6  + 1*2^5  +  1*2^4 + 1*2^3  + 1*2^2 +   1*2^1 +   1*2^0

    = 64     +     32       +     16      +8         +4             +    2       +1

    = 127

    代码:

    1. public class TestVar05{
    2. public static void main(String[] args){
    3. //定义整数类型的变量:
    4. //给变量赋值的时候,值可以为不同进制的:
    5. int num1 = 12 ;//默认情况下赋值就是十进制的情况
    6. System.out.println(num1);
    7. int num2 = 012;//前面加上0,这个值就是八进制的
    8. System.out.println(num2);
    9. int num3 = 0x12;//前面加上0x或者0X,这个值就是十六进制的
    10. System.out.println(num3);
    11. int num4 = 0b10;//前面加上0b或者0B,这个值就是二进制的
    12. System.out.println(num4);
    13. //定义byte类型的变量:
    14. byte b = 126;//定义了一个byte类型的变量,名字叫b,赋值为12
    15. System.out.println(b);
    16. //注意:超范围的赋值会报错。
    17. short s = 30000;
    18. System.out.println(s);
    19. int i = 1234;
    20. System.out.println(i);
    21. //整数类型默认就是int类型的,所以12345678910是一个int类型的数,对于int类型来说,它超出范围了
    22. //要想把一个数给long类型变量,那么后面加上L(推荐)或者l就可以了
    23. long num5 = 12345678910L;
    24. System.out.println(num5);
    25. //注意:只有这个数超出int类型的范围了后面才需要加上L,否则无需加L也可以赋值给long类型:
    26. long num6 = 12;
    27. System.out.println(num6);
    28. }
    29. }

     二、浮点类型

    1、浮点类型常量

    (1)十进制数形式,例如:                              

    3.14       314.0      0.314

    (2)科学记数法形式,如

    314e2      314E2 (E的大小写没有区分)    314E-2

    double  f = 314e2;  //314*10^2-->31400.0

    double  f2 = 314e-2; //314*10^(-2)-->3.14

    2、浮点类型变量

    float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。

    而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。

    float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。

    也可以在浮点数值后添加后缀D或者d, 以明确其为double类型。

    PS:有效数字指的是从左开始第一个不为0的数到最后一个数

    代码:

    1. public class TestVar06{
    2. public static void main(String[] args){
    3. //浮点类型的常量有两种形式:
    4. //十进制形式:
    5. double num1 = 3.14;
    6. System.out.println(num1);
    7. //科学计数法形式:
    8. double num2 = 314E-2;
    9. System.out.println(num2);
    10. //浮点类型的变量:
    11. //注意:浮点型默认是double类型的,要想将一个double类型的数赋给float类型,必须后面加上F或者f
    12. float f1 = 3.14234567898623F;
    13. System.out.println(f1);
    14. //注意:double类型后面可以加D或者d,但是一般我们都省略不写
    15. double d1 = 3.14234567898623D;
    16. System.out.println(d1);
    17. //注意:我们最好不要进行浮点类型的比较:
    18. float f2 = 0.3F;
    19. double d2 = 0.3;
    20. System.out.println(f2==d2);
    21. /*
    22. 区别:
    23. = 赋值运算: 将等号右侧的值赋给等号左侧
    24. == 判断==左右两侧的值是否相等 :结果要么相等 要么不相等
    25. ==运算符的结果就是要么是true,要么是false
    26. */
    27. }
    28. }

    三、字符类型 

    【1】Java中使用单引号来表示字符常量,字符型在内存中占2个字节

    char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。

    【2】转义字符

    【3】ASCII表

    【4】Unicode编码表

    Unicode编码表/0000-0FFF

    【Unicode 码表】

    0000-007F:C0控制符及基本拉丁文 (C0 Control and Basic Latin)
    0080-00FF:C1控制符及拉丁文补充-1 (C1 Control and Latin 1 Supplement) 
    0100-017F:拉丁文扩展-A (Latin Extended-A) 
    0180-024F:拉丁文扩展-B (Latin Extended-B) 
    0250-02AF:国际音标扩展 (IPA Extensions) 
    02B0-02FF:空白修饰字母 (Spacing Modifiers) 
    0300-036F:结合用读音符号 (Combining Diacritics Marks) 
    0370-03FF:希腊文及科普特文 (Greek and Coptic) 
    0400-04FF:西里尔字母 (Cyrillic) 
    0500-052F:西里尔字母补充 (Cyrillic Supplement) 
    0530-058F:亚美尼亚语 (Armenian) 
    0590-05FF:希伯来文 (Hebrew) 
    0600-06FF:阿拉伯文 (Arabic) 
    0700-074F:叙利亚文 (Syriac) 
    0750-077F:阿拉伯文补充 (Arabic Supplement) 
    0780-07BF:马尔代夫语 (Thaana) 
    07C0-077F:西非書面語言 (N'Ko) 
    0800-085F:阿维斯塔语及巴列维语 (Avestan and Pahlavi) 
    0860-087F:Mandaic 
    0880-08AF:撒马利亚语 (Samaritan) 
    0900-097F:天城文书 (Devanagari) 
    0980-09FF:孟加拉语 (Bengali) 
    0A00-0A7F:锡克教文 (Gurmukhi) 
    0A80-0AFF:古吉拉特文 (Gujarati) 
    0B00-0B7F:奥里亚文 (Oriya) 
    0B80-0BFF:泰米尔文 (Tamil) 
    0C00-0C7F:泰卢固文 (Telugu) 
    0C80-0CFF:卡纳达文 (Kannada) 
    0D00-0D7F:德拉维族语 (Malayalam) 
    0D80-0DFF:僧伽罗语 (Sinhala) 
    0E00-0E7F:泰文 (Thai) 
    0E80-0EFF:老挝文 (Lao) 
    0F00-0FFF:藏文 (Tibetan) 
    1000-109F:缅甸语 (Myanmar) 
    10A0-10FF:格鲁吉亚语 (Georgian) 
    1100-11FF:朝鲜文 (Hangul Jamo) 
    1200-137F:埃塞俄比亚语 (Ethiopic) 
    1380-139F:埃塞俄比亚语补充 (Ethiopic Supplement) 
    13A0-13FF:切罗基语 (Cherokee) 
    1400-167F:统一加拿大土著语音节 (Unified Canadian Aboriginal Syllabics) 
    1680-169F:欧甘字母 (Ogham) 
    16A0-16FF:如尼文 (Runic) 
    1700-171F:塔加拉语 (Tagalog) 
    1720-173F:Hanunóo 
    1740-175F:Buhid 
    1760-177F:Tagbanwa 
    1780-17FF:高棉语 (Khmer) 
    1800-18AF:蒙古文 (Mongolian) 
    18B0-18FF:Cham 
    1900-194F:Limbu 
    1950-197F:德宏泰语 (Tai Le) 
    1980-19DF:新傣仂语 (New Tai Lue) 
    19E0-19FF:高棉语记号 (Kmer Symbols) 
    1A00-1A1F:Buginese 
    1A20-1A5F:Batak 
    1A80-1AEF:Lanna 
    1B00-1B7F:巴厘语 (Balinese) 
    1B80-1BB0:巽他语 (Sundanese) 
    1BC0-1BFF:Pahawh Hmong 
    1C00-1C4F:雷布查语(Lepcha) 
    1C50-1C7F:Ol Chiki 
    1C80-1CDF:曼尼普尔语 (Meithei/Manipuri) 
    1D00-1D7F:语音学扩展 (Phonetic Extensions) 
    1D80-1DBF:语音学扩展补充 (Phonetic Extensions Supplement) 
    1DC0-1DFF:结合用读音符号补充 (Combining Diacritics Marks Supplement) 
    1E00-1EFF:拉丁文扩充附加 (Latin Extended Additional) 
    1F00-1FFF:希腊语扩充 (Greek Extended) 
    2000-206F:常用标点 (General Punctuation) 
    2070-209F:上标及下标 (Superscripts and Subscripts) 
    20A0-20CF:货币符号 (Currency Symbols) 
    20D0-20FF:组合用记号 (Combining Diacritics Marks for Symbols) 
    2100-214F:字母式符号 (Letterlike Symbols) 
    2150-218F:数字形式 (Number Form) 
    2190-21FF:箭头 (Arrows) 
    2200-22FF:数学运算符 (Mathematical Operator) 
    2300-23FF:杂项工业符号 (Miscellaneous Technical) 
    2400-243F:控制图片 (Control Pictures) 
    2440-245F:光学识别符 (Optical Character Recognition) 
    2460-24FF:封闭式字母数字 (Enclosed Alphanumerics) 
    2500-257F:制表符 (Box Drawing) 
    2580-259F:方块元素 (Block Element) 
    25A0-25FF:几何图形 (Geometric Shapes) 
    2600-26FF:杂项符号 (Miscellaneous Symbols) 
    2700-27BF:印刷符号 (Dingbats) 
    27C0-27EF:杂项数学符号-A (Miscellaneous Mathematical Symbols-A) 
    27F0-27FF:追加箭头-A (Supplemental Arrows-A) 
    2800-28FF:盲文点字模型 (Braille Patterns) 
    2900-297F:追加箭头-B (Supplemental Arrows-B) 
    2980-29FF:杂项数学符号-B (Miscellaneous Mathematical Symbols-B) 
    2A00-2AFF:追加数学运算符 (Supplemental Mathematical Operator) 
    2B00-2BFF:杂项符号和箭头 (Miscellaneous Symbols and Arrows) 
    2C00-2C5F:格拉哥里字母 (Glagolitic) 
    2C60-2C7F:拉丁文扩展-C (Latin Extended-C) 
    2C80-2CFF:古埃及语 (Coptic) 
    2D00-2D2F:格鲁吉亚语补充 (Georgian Supplement) 
    2D30-2D7F:提非纳文 (Tifinagh) 
    2D80-2DDF:埃塞俄比亚语扩展 (Ethiopic Extended) 
    2E00-2E7F:追加标点 (Supplemental Punctuation) 
    2E80-2EFF:CJK 部首补充 (CJK Radicals Supplement) 
    2F00-2FDF:康熙字典部首 (Kangxi Radicals) 
    2FF0-2FFF:表意文字描述符 (Ideographic Description Characters) 
    3000-303F:CJK 符号和标点 (CJK Symbols and Punctuation) 
    3040-309F:日文平假名 (Hiragana) 
    30A0-30FF:日文片假名 (Katakana) 
    3100-312F:注音字母 (Bopomofo) 
    3130-318F:朝鲜文兼容字母 (Hangul Compatibility Jamo) 
    3190-319F:象形字注释标志 (Kanbun) 
    31A0-31BF:注音字母扩展 (Bopomofo Extended) 
    31C0-31EF:CJK 笔画 (CJK Strokes) 
    31F0-31FF:日文片假名语音扩展 (Katakana Phonetic Extensions) 
    3200-32FF:封闭式 CJK 文字和月份 (Enclosed CJK Letters and Months) 
    3300-33FF:CJK 兼容 (CJK Compatibility) 
    3400-4DBF:CJK 统一表意符号扩展 A (CJK Unified Ideographs Extension A) 
    4DC0-4DFF:易经六十四卦符号 (Yijing Hexagrams Symbols) 
    4E00-9FBF:CJK 统一表意符号 (CJK Unified Ideographs) 
    A000-A48F:彝文音节 (Yi Syllables) 
    A490-A4CF:彝文字根 (Yi Radicals) 
    A500-A61F:Vai 
    A660-A6FF:统一加拿大土著语音节补充 (Unified Canadian Aboriginal Syllabics Supplement) 
    A700-A71F:声调修饰字母 (Modifier Tone Letters) 
    A720-A7FF:拉丁文扩展-D (Latin Extended-D) 
    A800-A82F:Syloti Nagri 
    A840-A87F:八思巴字 (Phags-pa) 
    A880-A8DF:Saurashtra 
    A900-A97F:爪哇语 (Javanese) 
    A980-A9DF:Chakma 
    AA00-AA3F:Varang Kshiti 
    AA40-AA6F:Sorang Sompeng 
    AA80-AADF:Newari 
    AB00-AB5F:越南傣语 (Vi?t Thái) 
    AB80-ABA0:Kayah Li 
    AC00-D7AF:朝鲜文音节 (Hangul Syllables) 
    D800-DBFF:High-half zone of UTF-16 
    DC00-DFFF:Low-half zone of UTF-16 
    E000-F8FF:自行使用區域 (Private Use Zone) 
    F900-FAFF:CJK 兼容象形文字 (CJK Compatibility Ideographs) 
    FB00-FB4F:字母表達形式 (Alphabetic Presentation Form) 
    FB50-FDFF:阿拉伯表達形式A (Arabic Presentation Form-A) 
    FE00-FE0F:变量选择符 (Variation Selector) 
    FE10-FE1F:竖排形式 (Vertical Forms) 
    FE20-FE2F:组合用半符号 (Combining Half Marks) 
    FE30-FE4F:CJK 兼容形式 (CJK Compatibility Forms) 
    FE50-FE6F:小型变体形式 (Small Form Variants) 
    FE70-FEFF:阿拉伯表達形式B (Arabic Presentation Form-B) 
    FF00-FFEF:半型及全型形式 (Halfwidth and Fullwidth Form) 
    FFF0-FFFF:特殊 (Specials)

    U+0123456789ABCDEF
    0000NULSOHSTXETXEOTENQACKBELBSHTLFVTFFCRSOSI
    0010DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS
    0020!"#$%&'()*+,-./
    00300123456789:;<=>?
    0040@ABCDEFGHIJKLMNO
    0050PQRSTUVWXYZ[\]^_
    0060`abcdefghijklmno
    0070pqrstuvwxyz{|}~DEL
    0080PADHOPBPHNBHINDNELSSAESAHTSHTJVTSPLDPLURISS2SS3
    0090DCSPU1PU2STSCCHMWSPAEPASOSSGCISCICSISTOSCPMAPC
    00A0NBSP¡¢£¤¥¦§¨©ª«¬SHY®¯
    00B0°±²³´µ·¸¹º»¼½¾¿
    00C0ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ
    00D0ÐÑÒÓÔÕÖרÙÚÛÜÝÞß
    00E0àáâãäåæçèéêëìíîï
    00F0ðñòóôõö÷øùúûüýþÿ
    U+0123456789ABCDEF
    0100ĀāĂ㥹ĆćĈĉĊċČčĎď
    0110ĐđĒēĔĕĖėĘęĚěĜĝĞğ
    0120ĠġĢģĤĥĦħĨĩĪīĬĭĮį
    0130İıIJijĴĵĶķĸĹĺĻļĽľĿ
    0140ŀŁłŃńŅņŇňʼnŊŋŌōŎŏ
    0150ŐőŒœŔŕŖŗŘřŚśŜŝŞş
    0160ŠšŢţŤťŦŧŨũŪūŬŭŮů
    0170ŰűŲųŴŵŶŷŸŹźŻżŽžſ
    0180ƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏ
    0190ƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟ
    01A0ƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯ
    01B0ưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ
    01C0ǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏ
    01D0ǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟ
    01E0ǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯ
    01F0ǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ
    U+0123456789ABCDEF
    0200ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏ
    0210ȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ
    0220ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯ
    0230ȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ
    0240ɀɁ
    0250ɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟ
    0260ɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ
    0270ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ
    0280ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏ
    0290ʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟ
    02A0ʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯ
    02B0ʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾʿ
    02C0ˀˁ˂˃˄˅ˆˇˈˉˊˋˌˍˎˏ
    02D0ːˑ˒˓˔˕˖˗˘˙˚˛˜˝˞˟
    02E0ˠˡˢˣˤ˥˦˧˨˩˪˫ˬ˭ˮ˯
    02F0˰˱˲˳˴˵˶˷˸˹˺˻˼˽˾˿
    U+0123456789ABCDEF
    0300 ̀ ́ ̂ ̃ ̄ ̅ ̆ ̇ ̈ ̉ ̊ ̋ ̌ ̍ ̎ ̏
    0310 ̐ ̑ ̒ ̓ ̔ ̕ ̖ ̗ ̘ ̙ ̚ ̛ ̜ ̝ ̞ ̟
    0320 ̠ ̡ ̢ ̣ ̤ ̥ ̦ ̧ ̨ ̩ ̪ ̫ ̬ ̭ ̮ ̯
    0330 ̰ ̱ ̲ ̳ ̴ ̵ ̶ ̷ ̸ ̹ ̺ ̻ ̼ ̽ ̾ ̿
    0340 ̀ ́ ͂ ̓ ̈́ ͅ ͆ ͇ ͈ ͉ ͊ ͋ ͌ ͍ ͎CGJ
    0350 ͐ ͑ ͒ ͓ ͔ ͕ ͖ ͗ ͘ ͙ ͚ ͛ ͜ ͝ ͞ ͟
    0360 ͠ ͡ ͢ ͣ ͤ ͥ ͦ ͧ ͨ ͩ ͪ ͫ ͬ ͭ ͮ ͯ
    0370ʹ͵ͺ;
    0380΄΅Ά·ΈΉΊΌΎΏ
    0390ΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟ
    03A0ΠΡΣΤΥΦΧΨΩΪΫάέήί
    03B0ΰαβγδεζηθικλμνξο
    03C0πρςστυφχψωϊϋόύώ
    03D0ϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟ
    03E0ϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯ
    03F0ϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿ
    U+0123456789ABCDEF
    0400ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏ
    0410АБВГДЕЖЗИЙКЛМНОП
    0420РСТУФХЦЧШЩЪЫЬЭЮЯ
    0430абвгдежзийклмноп
    0440рстуфхцчшщъыьэюя
    0450ѐёђѓєѕіїјљњћќѝўџ
    0460ѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯ
    0470ѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ
    0480Ҁҁ҂ ҃ ҄ ҅ ҆ ҈ ҉ҊҋҌҍҎҏ
    0490ҐґҒғҔҕҖҗҘҙҚқҜҝҞҟ
    04A0ҠҡҢңҤҥҦҧҨҩҪҫҬҭҮү
    04B0ҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿ
    04C0ӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎ
    04D0ӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟ
    04E0ӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯ
    04F0ӰӱӲӳӴӵӶӷӸӹ
    U+0123456789ABCDEF
    0500ԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏ
    0510
    0520
    0530ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿ
    0540ՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏ
    0550ՐՑՒՓՔՕՖՙ՚՛՜՝՞՟
    0560աբգդեզէըթժիլխծկ
    0570հձղճմյնշոչպջռսվտ
    0580րցւփքօֆև։֊
    0590֑֖֛֚֒֓֔֕֗֘֙֜֝֞֟
    05A0֢֣֤֥֦֧֪֭֮֠֡֨֩֫֬֯
    05B0ְֱֲֳִֵֶַָֹֻּֽ־ֿ
    05C0׀ׁׂ׃ׅׄ׆ׇ
    05D0אבגדהוזחטיךכלםמן
    05E0נסעףפץצקרשת
    05F0װױײ׳״
    U+0123456789ABCDEF
    0600؋،؍؎؏
    0610ؐؑؒؓؔؕ؛؞؟
    0620ءآأؤإئابةتثجحخد
    0630ذرزسشصضطظعغ
    0640ـفقكلمنهوىيًٌٍَُ
    0650ِّْٕٖٜٓٔٗ٘ٙٚٛٝٞ
    0660٠١٢٣٤٥٦٧٨٩٪٫٬٭ٮٯ
    0670ٰٱٲٳٴٵٶٷٸٹٺٻټٽپٿ
    0680ڀځڂڃڄڅچڇڈډڊڋڌڍڎڏ
    0690ڐڑڒړڔڕږڗژڙښڛڜڝڞڟ
    06A0ڠڡڢڣڤڥڦڧڨکڪګڬڭڮگ
    06B0ڰڱڲڳڴڵڶڷڸڹںڻڼڽھڿ
    06C0ۀہۂۃۄۅۆۇۈۉۊۋیۍێۏ
    06D0ېۑےۓ۔ەۖۗۘۙۚۛۜ۝۞۟
    06E0ۣ۠ۡۢۤۥۦۧۨ۩۪ۭ۫۬ۮۯ
    06F0۰۱۲۳۴۵۶۷۸۹ۺۻۼ۽۾ۿ
    U+0123456789ABCDEF
    0700܀܁܂܃܄܅܆܇܈܉܊܋܌܍
    0710ܐܑܒܓܔܕܖܗܘܙܚܛܜܝܞܟ
    0720ܠܡܢܣܤܥܦܧܨܩܪܫܬܭܮܯ
    0730ܱܴܷܸܹܻܼܾܰܲܳܵܶܺܽܿ
    0740݂݄݆݈݀݁݃݅݇݉݊ݍݎݏ
    0750ݐݑݒݓݔݕݖݗݘݙݚݛݜݝݞݟ
    0760ݠݡݢݣݤݥݦݧݨݩݪݫݬݭ
    0770
    0780ހށނރބޅކއވމފދތލގޏ
    0790ސޑޒޓޔޕޖޗޘޙޚޛޜޝޞޟ
    07A0ޠޡޢޣޤޥަާިީުޫެޭޮޯ
    07B0ްޱ
    07C0
    07D0
    07E0
    07F0
    U+0123456789ABCDEF
    0800
    0810
    0820
    0830
    0840
    0850
    0860
    0870
    0880
    0890
    08A0
    08B0
    08C0
    08D0
    08E0
    08F0
    U+0123456789ABCDEF
    0900
    0910
    0920
    0930ि
    0940
    0950
    0960
    0970
    0980
    0990
    09A0
    09B0ি
    09C0
    09D0
    09E0
    09F0
    U+0123456789ABCDEF
    0A00
    0A10
    0A20
    0A30ਿ
    0A40
    0A50
    0A60
    0A70
    0A80
    0A90
    0AA0
    0AB0િ
    0AC0
    0AD0
    0AE0
    0AF0
    U+0123456789ABCDEF
    0B00
    0B10
    0B20
    0B30ି
    0B40
    0B50
    0B60
    0B70
    0B80
    0B90
    0BA0
    0BB0ி
    0BC0
    0BD0
    0BE0
    0BF0
    U+0123456789ABCDEF
    0C00
    0C10
    0C20
    0C30ి
    0C40
    0C50
    0C60
    0C70
    0C80
    0C90
    0CA0
    0CB0ಿ
    0CC0
    0CD0
    0CE0
    0CF0
    U+0123456789ABCDEF
    0D00
    0D10
    0D20
    0D30ി
    0D40
    0D50
    0D60
    0D70
    0D80
    0D90
    0DA0
    0DB0
    0DC0
    0DD0
    0DE0
    0DF0
    U+0123456789ABCDEF
    0E00
    0E10
    0E20
    0E30฿
    0E40
    0E50
    0E60
    0E70
    0E80
    0E90
    0EA0
    0EB0
    0EC0
    0ED0
    0EE0
    0EF0
    U+0123456789ABCDEF
    0F00
    0F10
    0F20
    0F30༿
    0F40
    0F50
    0F60
    0F70ཿ
    0F80
    0F90
    0FA0
    0FB0྿
    0FC0
    0FD0
    0FE0
    0FF0

    代码1:

    1. public class TestVar07{
    2. public static void main(String[] args){
    3. //定义字符类型的变量:
    4. char ch1 = 'a';
    5. System.out.println(ch1);
    6. char ch2 = 'A';
    7. System.out.println(ch2);
    8. char ch3 = '4';
    9. System.out.println(ch3);
    10. char ch4 = '中';
    11. System.out.println(ch4);
    12. char ch5 = '?';
    13. System.out.println(ch5);
    14. //java中无论:字母,数字,符号,中文都是字符类型的常量,都占用2个字节。
    15. char ch6 = ' ';
    16. System.out.println(ch6);
    17. //字符类型:单引号引起来的单个字符
    18. System.out.println("--------------------------------");
    19. /*
    20. 转义字符:
    21. \将后面的普通字符转换为特殊含义
    22. */
    23. char ch7 = '\n';
    24. System.out.println("aaa"+ch7+"bbb");
    25. System.out.println("aaa\nbbb");// \n 换行
    26. System.out.println("aaaaaaa\tbbb"); // \t 制表符
    27. System.out.println("aaa\bbbb");//aabbb \b 向前退一格
    28. System.out.println("aaa\rbbb");//bbb \r 将光标到本行开头 :回车
    29. System.out.println("\"java\""); // \" 将双引号原样输出 \' 将单引号原样输出 \\ 将\原样输出
    30. }
    31. }

    代码2:

    1. public class TestVar08{
    2. public static void main(String[] args){
    3. char ch1 = 'A';
    4. System.out.println(ch1);//A
    5. System.out.println(ch1+90);//155
    6. System.out.println(155-ch1);//90
    7. //char类型我们看到的样子就是它本身的字面常量,但是底层在进行计算的时候,实际上是按照一个码进行计算的。
    8. //这个码就是ASCII
    9. //之前说char类型是按照Unicode码表进行存储的 (Unicode兼容了ASCII码,Unicode的前128位置ASCII)
    10. char ch2 = '中';
    11. System.out.println(ch2);// 中
    12. System.out.println(ch2+90);// 20103
    13. System.out.println(20103-ch2);// 90
    14. //转换:
    15. int num1 = (int)ch2;
    16. System.out.println(num1);//20013
    17. char ch = (char)20013;
    18. System.out.println(ch);
    19. int num2 = '中';
    20. char ch5 = 20013;
    21. System.out.println(ch5);
    22. //面试题:
    23. char ch6 = '2'+2;
    24. System.out.println(ch6);//'4'--->4
    25. }
    26. }

     编码和字符集

    【1】什么是编码?

    【2】通过生活案例

    【3】由权威机构形成的编码表才可以称之为:字符集

    • ASCII 

    英文字符集     

    用一个字节的7位表示 

    • IOS8859-1 

    西欧字符集 

    用一个字节的8位表示 

    • GB2312 

    简体中文字符集 

    最多使用两个字节编码 

    PS:中文:2个字节 

    GB2312兼容了ASCII中的字符: 

    • GBK 

    GB2312的升级,加入了繁体字 

    最多使用两个字节编码 

    疑问:

    首位如果是0:一个字节代码代表一个字符 

    首位如果是1:那么一个字节不够,要加上后面的字节才能完整的表示一个字符。 

    • Unicode 

    国际通用字符集,融合了目前人类使用的所有字符。为每个字符分配唯一的字符码。 

    退出了UTF标准: 

    三种编码方案:  UTF-8,UTF-16,UTF-32  

    以UTF-8为案例讲解: 

    中文: 珊     ---》Unicode  : 29642 

     底层存储: 

    UTF-8标准最多可以用6个字节表示:

    以后我们用的最多的就是UTF-8

    解释乱码问题

    用记事本选择编码方法的时候一般要选择为ANSI---》获取当前操作系统的编码格式:GBK

    四、布尔类型

    boolean类型有两个常量值,true和false,在内存中占一位(不是一个字节),不可以使用 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。 boolean 类型用来判断逻辑条件,一般用于程序流程控制 。

    1. public class TestVar09{
    2. public static void main(String[] args){
    3. //创建一个布尔类型的变量:
    4. boolean flag1 = true;
    5. System.out.println(flag1);
    6. boolean flag2 = false;
    7. System.out.println(flag2);
    8. boolean flag3 = 5==9;
    9. System.out.println(flag3);
    10. boolean flag4 = 5<9;
    11. System.out.println(flag4);
    12. }
    13. }

    • 📢博客主页:https://lansonli.blog.csdn.net
    • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
    • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
    • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨ 
  • 相关阅读:
    【C++】C向C++的知识过度(上)
    【自用】Linux服务器部署Oracle并使用数据库管理工具Navicat远程连接(包含远程Navicat配置)
    【论文阅读】Q8BERT: Quantized 8Bit BERT
    Abbkine ExKine总蛋白提取试剂盒的适用性和特点介绍
    ES6原生组件在页面频繁操作,导致页面崩溃,内存使用无异常。记一次奇葩BUG导致的页面崩溃
    Synchronized锁
    虚拟机安装Docker装载Mysql
    面试问题梳理:项目中防止配置中的密码泄露-Jasypt
    腾讯云SSH连接不上的一个解决办法
    一篇文章带你搞懂MybatisPlus
  • 原文地址:https://blog.csdn.net/xiaoweite1/article/details/125495603