<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>JavaSE高级 on 杨刚的个人网站</title>
    <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/</link>
    <description>Recent content in JavaSE高级 on 杨刚的个人网站</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh</language>
    <copyright>Copyright © 2018-2025 GradyYoung. All rights reserved.</copyright>
    <lastBuildDate>Tue, 18 Feb 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>1、枚举类</title>
      <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/fc890640/</link>
      <pubDate>Sat, 11 Nov 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/fc890640/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;枚举，顾名思义：就是一个一个列举出来&lt;/p&gt;
&lt;p&gt;当需要定义一组常量时，强烈建议使用枚举类&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>2、集合</title>
      <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/31f83035/</link>
      <pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/31f83035/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;继承树 
    &lt;div id=&#34;继承树&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#%e7%bb%a7%e6%89%bf%e6%a0%91&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;

&lt;h3 class=&#34;relative group&#34;&gt;Collection接口 
    &lt;div id=&#34;collection接口&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#collection%e6%8e%a5%e5%8f%a3&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h3&gt;
&lt;p&gt;






&lt;figure&gt;
      &lt;img
    class=&#34;my-0 rounded-md&#34;
    loading=&#34;lazy&#34;
    decoding=&#34;async&#34;
    fetchpriority=&#34;low&#34;
    alt=&#34;说明: untitle.png&#34;
    data-zoom-src=&#34;https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/31f83035/image/202109181148098.jpg&#34;
    src=&#34;https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/31f83035/image/202109181148098.jpg&#34;&gt;

  
&lt;/figure&gt;
&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>3、IO与NIO</title>
      <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/5103bed4/</link>
      <pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/5103bed4/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;File类 
    &lt;div id=&#34;file类&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#file%e7%b1%bb&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;File类的一个对象，代表一个文件或一个文件目录(Directory)&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>4、多线程</title>
      <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/7b8f2760/</link>
      <pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/7b8f2760/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;程序、进程、线程的区别 
    &lt;div id=&#34;程序进程线程的区别&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#%e7%a8%8b%e5%ba%8f%e8%bf%9b%e7%a8%8b%e7%ba%bf%e7%a8%8b%e7%9a%84%e5%8c%ba%e5%88%ab&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;程序(program)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;概念：是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;进程(process)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;概念：&lt;strong&gt;程序的一次执行过程，或是正在运行的一个程序&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;说明：进程作为资源分配的单位，系统在运行时会为每个进程分配不同的内存区域&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;线程(thread)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;概念：&lt;strong&gt;进程可进一步细化为线程，是一个程序内部的一条单一的执行路径（顺序控制流），可以共享所属进程的数据&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;说明：线程作为调度和执行的单位，每个线程拥独立的运行栈和程序计数器(pc)，线程切换的开销小。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class=&#34;relative group&#34;&gt;多线程程序的优点 
    &lt;div id=&#34;多线程程序的优点&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#%e5%a4%9a%e7%ba%bf%e7%a8%8b%e7%a8%8b%e5%ba%8f%e7%9a%84%e4%bc%98%e7%82%b9&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;提高应用程序的响应。对图形化界面更有意义，可增强用户体验。&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>5、网络编程</title>
      <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/ea5074ef/</link>
      <pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/ea5074ef/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;实现网络通信需要解决的两个问题 
    &lt;div id=&#34;实现网络通信需要解决的两个问题&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#%e5%ae%9e%e7%8e%b0%e7%bd%91%e7%bb%9c%e9%80%9a%e4%bf%a1%e9%9c%80%e8%a6%81%e8%a7%a3%e5%86%b3%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%97%ae%e9%a2%98&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;如何准确地定位网络上一台或多台主机；并且定位主机上的特定的应用？&lt;/li&gt;
&lt;li&gt;找到主机后如何可靠高效地进行数据传输？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 class=&#34;relative group&#34;&gt;网络通信的两个要素 
    &lt;div id=&#34;网络通信的两个要素&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#%e7%bd%91%e7%bb%9c%e9%80%9a%e4%bf%a1%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%a6%81%e7%b4%a0&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;IP和端口号，解决上面问题&lt;code&gt;1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;网络通信协议，例如TCP/IP参考模型（应用层、传输层、网络层、物理+数据链路层），解决上面问题&lt;code&gt;2&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 class=&#34;relative group&#34;&gt;通信要素一：IP和端口号 
    &lt;div id=&#34;通信要素一ip和端口号&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#%e9%80%9a%e4%bf%a1%e8%a6%81%e7%b4%a0%e4%b8%80ip%e5%92%8c%e7%ab%af%e5%8f%a3%e5%8f%b7&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h3&gt;

&lt;h4 class=&#34;relative group&#34;&gt;IP 
    &lt;div id=&#34;ip&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#ip&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;IP：唯一的标识 Internet 上的计算机（通信实体）&lt;/li&gt;
&lt;li&gt;在Java中使用&lt;code&gt;InetAddress&lt;/code&gt;类代表IP&lt;/li&gt;
&lt;li&gt;IP分类：IPv4和 IPv6&lt;/li&gt;
&lt;li&gt;域名:  &lt;code&gt;www.baidu.com&lt;/code&gt;，&lt;code&gt;www.mi.com&lt;/code&gt;，&lt;code&gt;www.sina.com&lt;/code&gt;，&lt;code&gt;www.jd.com&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;域名解析：域名容易记忆，当在连接网络时输入一个主机的域名后，域名服务器（DNS）负责将域名转化成IP地址，这样才能和主机建立连接。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;本地回路地址：&lt;code&gt;127.0.0.1&lt;/code&gt;对应着&lt;code&gt;localhost&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 class=&#34;relative group&#34;&gt;InetAddress类 
    &lt;div id=&#34;inetaddress类&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#inetaddress%e7%b1%bb&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;此类的一个对象就代表着一个具体的IP地址，没有公共的构造方法，需要使用以下静态方法实例化
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public static InetAddress getLocalHost()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public static InetAddress getByNames(String host)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;常用方法
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public String getHostAddress()&lt;/code&gt;：返回IP地址字符串&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public String getHostName()&lt;/code&gt;：返回此IP地址主机名&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public boolean isReachable(int timeout)&lt;/code&gt;：测试是否可以连通此地址&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;//1.获取本机地址ip对象&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;InetAddress&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ip1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;InetAddress&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getLocalHost&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ip1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getHostName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;());&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//获取主机名字&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ip1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getHostAddress&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;());&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//获取ip地址&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//2.获取域名ip对象&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;InetAddress&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ip2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;InetAddress&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getByName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;www.baidu.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ip2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getHostName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;());&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//获取域名&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ip2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getHostAddress&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;());&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//获取域名的ip地址&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//3.获取公网对象&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;InetAddress&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ip3&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;InetAddress&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getByName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;112.80.248.76&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ip3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getHostName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;());&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//获取公网名字&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ip3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getHostAddress&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;());&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//获取公网ip地址&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//判断网络是否能连接通信 ping 5s之前测试是否能通过&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ip3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;isReachable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;5000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//通过会返回true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class=&#34;relative group&#34;&gt;端口号 
    &lt;div id=&#34;端口号&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#%e7%ab%af%e5%8f%a3%e5%8f%b7&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;正在计算机上运行的进程。&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>6、泛型</title>
      <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/afe70010/</link>
      <pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/afe70010/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;泛型的概念 
    &lt;div id=&#34;泛型的概念&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#%e6%b3%9b%e5%9e%8b%e7%9a%84%e6%a6%82%e5%bf%b5&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;所谓泛型，就是&lt;strong&gt;允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型&lt;/strong&gt;。这个类型参数将在使用（例如，继承或实现这个接口，用这个类型声明变量、创建对象时确定（即传入实际的类型参数，也称为类型实参）。&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>7、反射机制</title>
      <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/c15c0ffe/</link>
      <pubDate>Sat, 11 Nov 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/c15c0ffe/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;反射的理解 
    &lt;div id=&#34;反射的理解&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#%e5%8f%8d%e5%b0%84%e7%9a%84%e7%90%86%e8%a7%a3&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;Reflection（反射）被视为动态语言的关键，反射机制允许程序在**执行期（Runtime）**借助于Reflection API取得任何类的内部信息，并能直接操作任意对象的内部属性及方法。&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>8、注解</title>
      <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/b9a3fd97/</link>
      <pubDate>Fri, 13 Dec 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/b9a3fd97/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;什么是注解 
    &lt;div id=&#34;什么是注解&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#%e4%bb%80%e4%b9%88%e6%98%af%e6%b3%a8%e8%a7%a3&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;注解（Annotation），也叫元数据。一种代码级别的说明。它是&lt;strong&gt;JDK1.5&lt;/strong&gt;及以后版本引入的一个特性，与类、接口、枚举是在同一个层次。&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>9、类加载器</title>
      <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/63fa2247/</link>
      <pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/63fa2247/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;JVM执行加载结构 
    &lt;div id=&#34;jvm执行加载结构&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#jvm%e6%89%a7%e8%a1%8c%e5%8a%a0%e8%bd%bd%e7%bb%93%e6%9e%84&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;






&lt;figure&gt;
      &lt;img
    class=&#34;my-0 rounded-md&#34;
    loading=&#34;lazy&#34;
    decoding=&#34;async&#34;
    fetchpriority=&#34;low&#34;
    alt=&#34;image-20230519151749400&#34;
    data-zoom-src=&#34;https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/63fa2247/image/image-20230519151749400.png&#34;
    src=&#34;https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/63fa2247/image/image-20230519151749400.png&#34;&gt;

  
&lt;/figure&gt;
&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>10、JDBC</title>
      <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/8e5d8197/</link>
      <pubDate>Fri, 19 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/8e5d8197/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;数据持久化 
    &lt;div id=&#34;数据持久化&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#%e6%95%b0%e6%8d%ae%e6%8c%81%e4%b9%85%e5%8c%96&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;数据持久化就是&lt;strong&gt;将内存中的数据模型转换为存储模型&lt;/strong&gt;，以及&lt;strong&gt;将存储模型转换为内存中的数据模型&lt;/strong&gt;的统称。数据模型可以是任何数据结构或对象模型，存储模型可以是关系模型、XML、二进制流等。&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>11、常用命令</title>
      <link>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/fdb03ec6/</link>
      <pubDate>Wed, 03 Apr 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.ygang.top/posts/3ab7256e/80aacaea/fbeea4f4/fdb03ec6/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;javac 
    &lt;div id=&#34;javac&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;
    
    &lt;span
        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100&#34;&gt;
        &lt;a class=&#34;group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline&#34; href=&#34;#javac&#34; aria-label=&#34;锚点&#34;&gt;#&lt;/a&gt;
    &lt;/span&gt;        
    
&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;javac&lt;/code&gt; 是java中的编译源代码的命令工具，将&lt;code&gt;.java&lt;/code&gt;文件编译成&lt;code&gt;.class&lt;/code&gt;文件&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
