Java,Java进阶知识图谱

2021年09月15日 阅读数:1
这篇文章主要向大家介绍Java,Java进阶知识图谱,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

| 0000?1010 | 10 | 0A | LF | ? | 换行键 |git

| 0000?1011 | 11 | 0B | VT | ? | 垂直定位符号 |面试

| 0000?1100 | 12 | 0C | FF | ? | 换页键 |算法

| 0000?1101 | 13 | 0D | CR | ? | 归位键 |数据库

| 0000?1110 | 14 | 0E | SO | ? | 取消变换(Shift out) |设计模式

| 0000?1111 | 15 | 0F | SI | ? | 启用变换(Shift in) |缓存

| 0001?0000 | 16 | 10 | DLE | ? | 跳出数据通信 |性能优化

| 0001?0001 | 17 | 11 | DC1 | ? | 设备控制一(XON 启用软件速度控制) |markdown

| 0001?0010 | 18 | 12 | DC2 | ? | 设备控制二 |网络

| 0001?0011 | 19 | 13 | DC3 | ? | 设备控制三(XOFF 停用软件速度控制) |数据结构

| 0001?0100 | 20 | 14 | DC4 | ? | 设备控制四 |

| 0001?0101 | 21 | 15 | NAK | ? | 确认失败回应 |

| 0001?0110 | 22 | 16 | SYN | ? | 同步用暂停 |

| 0001?0111 | 23 | 17 | ETB | ? | 区块传输结束 |

| 0001?1000 | 24 | 18 | CAN | ? | 取消 |

| 0001?1001 | 25 | 19 | EM | ? | 链接介质中断 |

| 0001?1010 | 26 | 1A | SUB | ? | 替换 |

| 0001?1011 | 27 | 1B | ESC | ? | 跳出 |

| 0001?1100 | 28 | 1C | FS | ? | 文件分割符 |

| 0001?1101 | 29 | 1D | GS | ? | 组群分隔符 |

| 0001?1110 | 30 | 1E | RS | ? | 记录分隔符 |

| 0001?1111 | 31 | 1F | US | ? | 单元分隔符 |

| 0111?1111 | 127 | 7F | DEL | ? |

删除

|

3、ASCII可显示字符


<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td><table border="0" cellpadding="0" cellspacing="0"><thead><tr><th>二进制</th><th>十进制</th><th>十六进制</th><th>图形</th></tr></thead><tbody><tr><td>0010 0000</td><td>32</td><td>20</td><td>(空格)(?)</td></tr><tr><td>0010 0001</td><td>33</td><td>21</td><td>!</td></tr><tr><td>0010 0010</td><td>34</td><td>22</td><td>"</td></tr><tr><td>0010 0011</td><td>35</td><td>23</td><td>#</td></tr><tr><td>0010 0100</td><td>36</td><td>24</td><td>$</td></tr><tr><td>0010 0101</td><td>37</td><td>25</td><td> %</td></tr><tr><td>0010 0110</td><td>38</td><td>26</td><td>&</td></tr><tr><td>0010 0111</td><td>39</td><td>27</td><td>'</td></tr><tr><td>0010 1000</td><td>40</td><td>28</td><td>(</td></tr><tr><td>0010 1001</td><td>41</td><td>29</td><td>)</td></tr><tr><td>0010 1010</td><td>42</td><td>2A</td><td>*</td></tr><tr><td>0010 1011</td><td>43</td><td>2B</td><td>+</td></tr><tr><td>0010 1100</td><td>44</td><td>2C</td><td>,</td></tr><tr><td>0010 1101</td><td>45</td><td>2D</td><td>-</td></tr><tr><td>0010 1110</td><td>46</td><td>2E</td><td>.</td></tr><tr><td>0010 1111</td><td>47</td><td>2F</td><td>/</td></tr><tr><td>0011 0000</td><td>48</td><td>30</td><td>0</td></tr><tr><td>0011 0001</td><td>49</td><td>31</td><td>1</td></tr><tr><td>0011 0010</td><td>50</td><td>32</td><td>2</td></tr><tr><td>0011 0011</td><td>51</td><td>33</td><td>3</td></tr><tr><td>0011 0100</td><td>52</td><td>34</td><td>4</td></tr><tr><td>0011 0101</td><td>53</td><td>35</td><td>5</td></tr><tr><td>0011 0110</td><td>54</td><td>36</td><td>6</td></tr><tr><td>0011 0111</td><td>55</td><td>37</td><td>7</td></tr><tr><td>0011 1000</td><td>56</td><td>38</td><td>8</td></tr><tr><td>0011 1001</td><td>57</td><td>39</td><td>9</td></tr><tr><td>0011 1010</td><td>58</td><td>3A</td><td>:</td></tr><tr><td>0011 1011</td><td>59</td><td>3B</td><td>;</td></tr><tr><td>0011 1100</td><td>60</td><td>3C</td><td><</td></tr><tr><td>0011 1101</td><td>61</td><td>3D</td><td>=</td></tr><tr><td>0011 1110</td><td>62</td><td>3E</td><td>></td></tr><tr><td>0011 1111</td><td>63</td><td>3F</td><td>?</td></tr></tbody></table></td><td> </td><td><table border="0" cellpadding="0" cellspacing="0"><thead><tr><th>二进制</th><th>十进制</th><th>十六进制</th><th>图形</th></tr></thead><tbody><tr><td>0100 0000</td><td>64</td><td>40</td><td>@</td></tr><tr><td>0100 0001</td><td>65</td><td>41</td><td>A</td></tr><tr><td>0100 0010</td><td>66</td><td>42</td><td>B</td></tr><tr><td>0100 0011</td><td>67</td><td>43</td><td>C</td></tr><tr><td>0100 0100</td><td>68</td><td>44</td><td>D</td></tr><tr><td>0100 0101</td><td>69</td><td>45</td><td>E</td></tr><tr><td>0100 0110</td><td>70</td><td>46</td><td>F</td></tr><tr><td>0100 0111</td><td>71</td><td>47</td><td>G</td></tr><tr><td>0100 1000</td><td>72</td><td>48</td><td>H</td></tr><tr><td>0100 1001</td><td>73</td><td>49</td><td>I</td></tr><tr><td>0100 1010</td><td>74</td><td>4A</td><td>J</td></tr><tr><td>0100 1011</td><td>75</td><td>4B</td><td>K</td></tr><tr><td>0100 1100</td><td>76</td><td>4C</td><td>L</td></tr><tr><td>0100 1101</td><td>77</td><td>4D</td><td>M</td></tr><tr><td>0100 1110</td><td>78</td><td>4E</td><td>N</td></tr><tr><td>0100 1111</td><td>79</td><td>4F</td><td>O</td></tr><tr><td>0101 0000</td><td>80</td><td>50</td><td>P</td></tr><tr><td>0101 0001</td><td>81</td><td>51</td><td>Q</td></tr><tr><td>0101 0010</td><td>82</td><td>52</td><td>R</td></tr><tr><td>0101 0011</td><td>83</td><td>53</td><td>S</td></tr><tr><td>0101 0100</td><td>84</td><td>54</td><td>T</td></tr><tr><td>0101 0101</td><td>85</td><td>55</td><td>U</td></tr><tr><td>0101 0110</td><td>86</td><td>56</td><td>V</td></tr><tr><td>0101 0111</td><td>87</td><td>57</td><td>W</td></tr><tr><td>0101 1000</td><td>88</td><td>58</td><td>X</td></tr><tr><td>0101 1001</td><td>89</td><td>59</td><td>Y</td></tr><tr><td>0101 1010</td><td>90</td><td>5A</td><td>Z</td></tr><tr><td>0101 1011</td><td>91</td><td>5B</td><td>[</td></tr><tr><td>0101 1100</td><td>92</td><td>5C</td><td>\</td></tr><tr><td>0101 1101</td><td>93</td><td>5D</td><td>]</td></tr><tr><td>0101 1110</td><td>94</td><td>5E</td><td>^</td></tr><tr><td>0101 1111</td><td>95</td><td>5F</td><td>_</td></tr></tbody></table></td><td> </td><td><table border="0" cellpadding="0" cellspacing="0"><thead><tr><th>二进制</th><th>十进制</th><th>十六进制</th><th>图形</th></tr></thead><tbody><tr><td>0110 0000</td><td>96</td><td>60</td><td>`</td></tr><tr><td>0110 0001</td><td>97</td><td>61</td><td>a</td></tr><tr><td>0110 0010</td><td>98</td><td>62</td><td>b</td></tr><tr><td>0110 0011</td><td>99</td><td>63</td><td>c</td></tr><tr><td>0110 0100</td><td>100</td><td>64</td><td>d</td></tr><tr><td>0110 0101</td><td>101</td><td>65</td><td>e</td></tr><tr><td>0110 0110</td><td>102</td><td>66</td><td>f</td></tr><tr><td>0110 0111</td><td>103</td><td>67</td><td>g</td></tr><tr><td>0110 1000</td><td>104</td><td>68</td><td>h</td></tr><tr><td>0110 1001</td><td>105</td><td>69</td><td>i</td></tr><tr><td>0110 1010</td><td>106</td><td>6A</td><td>j</td></tr><tr><td>0110 1011</td><td>107</td><td>6B</td><td>k</td></tr><tr><td>0110 1100</td><td>108</td><td>6C</td><td>l</td></tr><tr><td>0110 1101</td><td>109</td><td>6D</td><td>m</td></tr><tr><td>0110 1110</td><td>110</td><td>6E</td><td>n</td></tr><tr><td>0110 1111</td><td>111</td><td>6F</td><td>o</td></tr><tr><td>0111 0000</td><td>112</td><td>70</td><td>p</td></tr><tr><td>0111 0001</td><td>113</td><td>71</td><td>q</td></tr><tr><td>0111 0010</td><td>114</td><td>72</td><td>r</td></tr><tr><td>0111 0011</td><td>115</td><td>73</td><td>s</td></tr><tr><td>0111 0100</td><td>116</td><td>74</td><td>t</td></tr><tr><td>0111 0101</td><td>117</td><td>75</td><td>u</td></tr><tr><td>0111 0110</td><td>118</td><td>76</td><td>v</td></tr><tr><td>0111 0111</td><td>119</td><td>77</td><td>w</td></tr><tr><td>0111 1000</td><td>120</td><td>78</td><td>x</td></tr><tr><td>0111 1001</td><td>121</td><td>79</td><td>y</td></tr><tr><td>0111 1010</td><td>122</td><td>7A</td><td>z</td></tr><tr><td>0111 1011</td><td>123</td><td>7B</td><td>{</td></tr><tr><td>0111 1100</td><td>124</td><td>7C</td><td>|</td></tr><tr><td>0111 1101</td><td>125</td><td>7D</td><td>}</td></tr><tr><td>0111 1110</td><td>126</td><td>7E</td><td>~</td></tr></tbody></table></td></tr></tbody></table>

?4、代码实例


一、char、int互相转化


/**

 * char类型变量能够强制转化为int类型变量,反之亦然

 */

private static void test01() {

    char a = 'a';

    int b = 98;

    System.out.println((int)a);//97

    System.out.println((char)b);//b

    char c = 'b';

    System.out.println("98 == b --> "+ (b == c));//true

}

private static void test02() {

    char a = 'a';

    int[] arr = new int[100];

    for(int i = 0;i<100;i++) {

        arr[i] = i;

    }

    System.out.println(arr[1]);//1

    System.out.println(arr[99]);//99

    System.out.println((int)a);//97

    System.out.println("char自动转为int:"+arr[a]);//97

}

二、?判断是不是数字或字母


**

 * 判断是不是数字或字母

 */

private static void test03() {

    //数字

    System.out.println("Character.isDigit('1') -->"+Character.isDigit('1'));//true

    System.out.println("Character.isDigit('a') -->"+Character.isDigit('a'));//false

    //空格

    System.out.println("Character.isSpaceChar('1') -->"+Character.isSpaceChar('1'));//false

    Character.isSpaceChar('a');

    System.out.println("Character.isSpaceChar('a') -->"+Character.isSpaceChar('a'));//false

    Character.isSpaceChar(' ');

    System.out.println("Character.isSpaceChar(' ') -->"+Character.isSpaceChar(' '));//true

    //字母

    System.out.println("Character.isLetter('1') -->"+Character.isLetter('1'));//false

    System.out.println("Character.isLetter('a') -->"+Character.isLetter('a'));//true

    System.out.println("Character.isLetter('张') -->"+Character.isLetter('张'));//true, 汉字算字母?

    //数字或字母

    System.out.println("Character.isLetterOrDigit('1') -->"+Character.isLetterOrDigit('1'));//true

    System.out.println("Character.isLetterOrDigit('a') -->"+Character.isLetterOrDigit('a'));//true

    System.out.println("Character.isLetterOrDigit('张') -->"+Character.isLetterOrDigit('张'));//true, 汉字算字母?

    System.out.println("Character.isLetterOrDigit(' ') -->"+Character.isLetterOrDigit(' '));//false

}

三、获取字符串中某个位置上的字符


/**

 * codePointAt:获取字符串中某个位置上的字符

 */

private static void test06() {

    //获取字符串中某个位置上的字符

    int codePointAt = Character.codePointAt("abcdef", 1);

    System.out.println("Character.codePointAt(\"abcdef\", 1) -->" + codePointAt);//98

    codePointAt = Character.codePointAt("123456789", 1);

    System.out.println("Character.codePointAt(\"123456789\", 1) -->" + codePointAt);//50

    CharSequence seq = "/ 123456789";//这个是图形?

    codePointAt = Character.codePointAt(seq, 0);

    System.out.println(codePointAt);//预计是47? --> 47

    codePointAt = Character.codePointAt(seq, 1);

    System.out.println(codePointAt);//预计是32? --> 还真是32

    //CharSequence是一个接口,String、StringBuffer、StringBuilder类都是CharSequence的子接口;

    CharSequence seq1 = "*123456";//这个是图形?

    codePointAt = Character.codePointAt(seq1, 0);

    System.out.println(codePointAt);//预计是42? --> 42

    String seq2 = "*123456";//这个是图形?

    codePointAt = Character.codePointAt(seq2, 0);

    System.out.println(codePointAt);//预计是42? --> 42

    System.out.println("*******");

    char[] cArr = { 'a', 'b', 'c' };

    System.out.println(Character.codePointAt(cArr, 1)); //98

    // 获取指定位置字符的代码点。第二个参数的值必定要小于第三个参数,不然异常 

    System.out.println(Character.codePointAt(cArr, 0, 1)); //97 why?第三个参数有何用???

    System.out.println(Character.codePointAt(cArr, 0, 2)); //97 why?

    System.out.println(Character.codePointAt(cArr, 0, 3)); //97 why?

    System.out.println(Character.codePointAt(cArr, 1, 2)); //98 why?

    System.out.println(Character.codePointAt(cArr, 1, 3)); //98 why?

} 

看codePointAt源码,第三个参数limit貌似只起到了限定做用,第二个参数的值必定要小于第三个参数,不然异常,那岂不是大于第二个参数的都同样了???



public static int codePointAt(char[] a, int index, int limit) {

    if (index >= limit || limit < 0 || limit > a.length) {

        throw new IndexOutOfBoundsException();

    }

    return codePointAtImpl(a, index, limit);

}

// throws ArrayIndexOutOfBoundsException if index out of bounds

# 总结

阿里伤透我心,疯狂复习刷题,终于喜提offer  哈哈~好啦,不闲扯了

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://ali1024.coding.net/public/P7/Java/git)**

![image](https://s2.51cto.com/images/20210912/1631422190793225.jpg)

一、JAVA面试核心知识整理(PDF):包含**JVM**,**JAVA集合**,**JAVA多线程并发**,JAVA基础,**Spring原理**,**微服务**,Netty与RPC,网络,日志,**Zookeeper**,**Kafka**,**RabbitMQ**,Hbase,**MongoDB**,Cassandra,**设计模式**,**负载均衡**,**数据库**,**一致性哈希**,**JAVA算法**,**数据结构**,加密算法,**分布式缓存**,Hadoop,Spark,Storm,YARN,机器学习,云计算共30个章节。

![image](https://s2.51cto.com/images/20210912/1631422190365016.jpg)

二、Redis学习笔记及学习思惟脑图

![image](https://s2.51cto.com/images/20210912/1631422190285821.jpg)

三、数据面试必备20题+数据库性能优化的21个最佳实践

![image](https://s2.51cto.com/images/20210912/1631422191914785.jpg)