学习日记[16]

閱讀時間約 17 分鐘

现在补的是昨天的内容。

1.《java高级编程》:主要是两个方面,一个是跳转语句,另一个是初始化和清理工作。先来讲跳转语句,它主要是用在循环内部的跳出循环的语句。分为四类,return,break,continue和标签语句。return语句有两个作用,给方法一个返回值与结束该方法。这两层含义说明它大多数时间是用在方法内部的。break语句的功能是跳出整个循环语句,而不是循环语句中的一次循环,这是continue的作用。直观一点讲就是,break语句之后将不再进行该循环,而continue还是需要继续进行该循环的。标签语句是从goto演变而来,它限制了goto语句的适用范围和内部逻辑。goto是再编译层面之后进行跳转,而标签语句是在编译层面进行时进行跳转,这样就减少了许多不必要的bug。

然后就是初始化和清理,文章讲的很详细,这里就不复制粘贴,就按照我的想法进行操作了。我把这一章节分为 个部分,分别是初始化和清理的必要性,构造器是什么,构造器和初始化的关系,如何进行清理,初始化的顺序及特殊的初始化。

  • 初始化和清理的必要性,这个书上讲的比我个人理解的详细多了,这里就抄录几段话:“这个元素占用的资源就会一直得不到释放,结果是资源用尽”“特别是在使用程序库时,如果用户不知道如何初始化库的构件,更是如此”
  • 构造器时在创建对象时自动调用的特殊的方法,但不无需特别定义,可以理解为每一个类自带的特殊方法。构造器的标识符和类的标识符,用来唯一识别这个类的方法,同时他也没有返回值。注意这里是没有返回值而不是返回值为空。构造器里可以进行相关的初始化操作,也可以不进行任何初始化,系统会帮助我们将每一个属性都进行赋予初始值。一般这种构造器称为默认构造器或者无参构造器,在创建类的同时进行初始化。好玩的是,即使我们不主动在类中添加构造器,编译器也会相对应的进行默认构造器的操作,以确保所有的可执行对象都能进行合理的初始化,从而减少错误的量。
  • 构造器是确保对象得到合理初始化的一种工具,但是初始化的工具还有很多,可以理解为包含关系。这里就不得不提两个特殊的性质。方法的重载和this关键词。方法的重载,是指方法名相同,参数列表不同的一类方法的总称。接受不同的参数从而进行个性化定制操作。但是返回值不是区分重载方法的标志,虽然我们可以在源代码上看到他的返回值不同,但是客户端只能看到方法名和参数列表是否合乎规则,返回值是无法查看的。如果一个类创建了多个对象,我们想要在某一个特定类执行某个操作,可用通过对象名来定位,但是在方法内部该如何定义指向呢?这时候this关键词就有出场的必要了,他是指向引用该对象本身,但是无法单独使用,除非是return this;这种情况,在使用时必须跟上该类中相对应的方法或者属性。
  • 如何清理这一节我是直接跳过了,等之后有时间再看吧,看这一节确实很枯燥
  • 初始化的顺序,总体来说遵循两条规则,先定义的先初始化,先静态后其他。这其中非静态是没什么可以说的,他就是简单的先定义先初始化。静态元素的初始化就是我们要讨论的点,他和非静态不同,静态变量通常只进行一次初始化,因为它的空间是公共的,不随着对象的不同而变化操作对象和空间。

2.《计算机导论》:上次说到了DNS,它的功能是将某一个特定的名字唯一的映射到服务器的ip地址,让人们更直观地进行服务器的访问。这个名字是必须在命名空间的范围内才是一个规范的、合法的名字。在网络中,这个命名空间总称为域名空间,分为一般域和国家域,每一个域下都有许多个节点,我们熟悉的有com,net,gov,pro等等。其中一般域中有十四个节点,而国家域有很多,都是不同国家或国家某个州的缩写。

然后就是P2P模式再解释,P2P又可分为集中式和分散式,集中式是指在用户之间添加一个中间服务器,这个服务器可以相应客户端的操作请求。分散式是指客户端之间连接而成一个虚拟的网络,称之为重叠网络。如果连接方式有规律,那就是结构化网络,相反,没有规律就是非结构化网络。结构化网络使用的是DHT,分布式散列表。

下面一层是传输层,它的功能是接受网络层的数据,并把它送到相应的进程,使得应用层可以进行相关操作。传输层分为两个部分,客户端和服务器端,每一端都有一个地址和进程。地址之间、进程之间相互连结,地址用ip来表示,进程之间使用端口号来表示,客户端的端口号称为临时端口号,服务器端口号称为知名端口号,每一个临时端口号都知道与自己匹配的知名端口号,所我们只需要知道临时端口号即可

我们是用协议让每一个步骤得到规范的,传输层也不例外,尽管传输层有许多不同的协议,但比较出名的有UDP(用户数据报协议)和TCP(传输控制协议),UPD不安全已经不用了。TCP规定了来连接设备、数据传输和链接拆卸段以提供更加全面的连接服务。这里要补充一些该概念,一个数据被分为很多称为段的数据包,TCP对每个段进行相关的加密编号,这个编号也被称为序列号。

3.个人感悟:我读书不是为了全盘接收他们的观点,我是在理解的基础上删删减减,量身而裁。还有就是以后学习,至少带三本书,并且里面必须有一本哲学或是历史的书。三者这是分别进行一节这样量的学习,循环往复。我是这样想的,快乐地增长知识,等回过头来就毕业了,会想这些日常会微笑着感慨:好无聊的生活啊, :)

4.这是我这两天的主要成果,就直接放在下面了,午安,各位。

package addStack;

import java.util.*;

class Stack
{
//这里是栈的相关内容
int []stack; //用数组来替代栈本身
int capacity; //这个是栈的容量
int top; //用top来标记栈的状态
public Stack(int capacity)
{
this.capacity = capacity;
this.top = -1;
stack = new int[this.capacity];
}

//初始化栈,分配栈固定的容量
public boolean is_E()
{
return top == -1;
}

//判断栈是否为空
public boolean is_F()
{
return top >= (this.capacity - 1);
}

//判断栈是否已满
public void add_Element(int data)
{
if( is_F() )
System.out.println("栈已满,无法添加元素");
else
stack[++this.top] = data; //这里其实是两个步骤,++i是先相加然后进行赋值
}

//遍历栈
public void print_Stack()
{
int i = this.top;
if( is_E() )
System.out.print("栈为空,无法打印。");
else
{
System.out.print("结果是:");
for( ; i >= 0 ; i--)
{
System.out.print("\u001B[31m" +stack[i]); //改变重要数据的颜色,此处是红色
}
}
}
//栈的使用长度
public int getLength_Stack()
{
return (this.top + 1);
}
//清空栈
public void clear_Stack()
{
if (is_E())
return;
else
while (!is_E())
stack[top--] = 0; //同样,这里也是两步
}
}
class Convert
{
//为了更好地进行相关操作,虽然它不是属性,但还是放在这里比较好
Scanner scanner = new Scanner(System.in);
Stack p = new Stack(32);
int data;
int choice;
int standard = 127;
//构造函数进行类的初始化
public Convert()
{
this.data = -1;
this.choice = -1;
}
//输入类,1:基准数 2:选择
public void input_Data(int i)
{
do
{
try
{
//输入需要转化的数据
if(i == 1)
{
System.out.print("\n请输入您希望转化的正整数[ > 127]: ");
this.data = scanner.nextInt();
if (standard <= data)
break;
continue;
}
//输入功能
else if(i == 2)
{
System.out.print("\n请输入您希望进行的操作: ");
this.choice = scanner.nextInt();
if(choice >= 0 && choice <= 6)
break;
continue;
}
}
catch (java.util.InputMismatchException e)
{
System.out.println("\n\n您输入的并非规定内容\n");
scanner.next(); //清除键盘缓冲值,无限循环问题出在这里
}
}while( true );
}

//打印用户可操作的选项
public void print_Function()
{
System.out.print("\u001B[0m"); // 恢复默认颜色
if( data < 0 )
{
System.out.println("\n未找到可执行数据");
}
else
{
System.out.print("\n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
System.out.println("\n 功能区:1.转化为二进制 2.转化为八进制 3.转化为十六进制 ");
System.out.println("\n 系统区:4.更改数据 5.查看当前需要转换的数据 6.退出程序");
System.out.print("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
}

}



//选项的一些具体事项,实现转化功能
//这里还是有些臃肿,后面再改一下
public void convert_Function()
{
int temp = this.data;
//二进制转化
if( choice == 1 )
{
p.clear_Stack();
do
{
p.add_Element(temp % 2);
temp /= 2;
}while( temp >= 2 );
p.add_Element(temp);
System.out.println();
p.print_Stack();
}
//八进制转化
else if( choice == 2 )
{
p.clear_Stack();
do
{
p.add_Element(temp % 8);
temp /= 8;
}while( temp >= 8 );
p.add_Element(temp);
System.out.println();
p.print_Stack();
}
//十六进制转化
else if( this.choice == 3 )
{
p.clear_Stack();
do
{
int i = temp % 16;
if( i <= 15 && i >= 10)
p.add_Element( (i - 10) + 'A');
else
p.add_Element( i + '0');
temp /= 16;
}while( temp >= 16);
if( temp <= 15 && temp >= 10)
p.add_Element( (temp - 10) + 'A');
else
p.add_Element( temp + '0');
System.out.println();
System.out.print("结果是:");
for( int k = this.p.top ; k >= 0 ; k--)
{
System.out.printf("\u001B[31m" + "%c",p.stack[k]);
}
}
//重新输入数据
else if( this.choice == 4 )
{
p.clear_Stack();
input_Data(1);
print_Function();
input_Data(2);
convert_Function();
}
//查看数据
else if(choice == 5)
{
p.clear_Stack();
System.out.println("\n当前的数据为:" + "\u001B[31m" + this.data);
print_Function();
input_Data(2);
convert_Function();
}
//退出程序
else if(choice == 6)
{
p.clear_Stack();
System.out.println("\n程序已退出,感谢使用");
}
}
}
public class Text
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
Convert text = new Convert();
text.input_Data(1);
do
{
try
{
text.print_Function();
text.input_Data(2);
text.convert_Function();
}
catch (java.util.InputMismatchException e)
{
System.out.println("\n\n您输入的并非整数,请进行相关\n");
continue;
}
}while( text.choice != 6);
}
}



    avatar-img
    0會員
    20內容數
    这个专题是我个人的学习日记,每日会更新,内容很乱,请多见谅。
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    你可能也想看
    Google News 追蹤
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
    Thumbnail
    Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
    Thumbnail
    從 Vue 班畢業已經 1 個多月,最近也轉職成功,終於有機會把這段歷程記錄下來,當作一個里程碑。此次參加 Vue 班,心境上最大的不同,大概是知道自己即將在完課後,踏上求職道路。所以如果能在課堂期間 2 個月內完成求職作品,我就能提早出發。 ▍學習狀況 雖然先前有稍微玩過 Vue,但也早已
    十個單字 information.  bald. nephew.  mustard. salad. ounce. balcony. deck. library. playground. 在一個晴朗的午後,傑克坐在陽台上,正在閱讀圖書館裡借來的書。他的光頭叔叔大衛帶著他的侄子彼得來拜訪,帶
    Thumbnail
    回顧前兩年的已實現損益,從資料可看出 2021年我還是處於頻繁買賣的境界,小賺就賣,頻繁交易,所衍生出來的手續費、交易稅、買賣總金額都很大!這無形中都是損失(損失了手續費和交易稅,都被政府給賺走了),這是有形的,無形的還是後頭~視力、身體健康、陪伴家人的時間、心情情緒…。 2022年我已經慢慢轉變,
    Thumbnail
    在股市你想要買在最低點,賣在最高點嗎?也就是賺整段!!! 單就這面向,我就選賣在最高點來解釋~ 我跟你說~這是不可能的!!因為你不是從未來回來的,所以你根本不知道最高點是哪裡,且你的最高點是今天的最高點?這一波段的最高點?整個公司歷史營運的最高點??? 人永遠無法預測未來會怎樣,如果有,那人早就不再
    Thumbnail
    在上一篇文章,說明了如何使用向量圖層來描線之後,求好心切的朋友一定會想到,線稿畫完,要塗色了! 但是當你選擇向量圖層,把工具調成油漆桶之後,悲劇發生了,你會發現向量圖層是無法使用油漆桶的😭 起初可能以為自己眼花,但是月英這邊可以很肯定的告訴你,向量圖層無法用油漆桶。 解套方案是,需要設定把向量圖層
    Thumbnail
    回歸我們上面一篇文章,提到的繪圖靈感,我建議可以畫在白紙上,因為今天我們將要使用Clip Studio Paint圖層描線,並且說明圖層的兩種型態(向量圖層及點陣圖層)。 首先來介紹什麼是圖層? 顧名思義,就是一張圖是由不同層重疊而成,如下圖。 這樣的功能,可以滿足以下幾點好處: 可以先
    Thumbnail
    請您現在扮演一位幽默博學的老師,回答什麼是sass中的mixin概念 很高興回答這個問題!在 Sass 中,Mixin 是一種可以將一組 CSS 屬性集合放在一起,以便在需要的地方重複使用的功能。Mixin 可以包含變量、條件語句、迴圈和其他 CSS 屬性,使其更加靈活和強大。
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
    Thumbnail
    Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
    Thumbnail
    從 Vue 班畢業已經 1 個多月,最近也轉職成功,終於有機會把這段歷程記錄下來,當作一個里程碑。此次參加 Vue 班,心境上最大的不同,大概是知道自己即將在完課後,踏上求職道路。所以如果能在課堂期間 2 個月內完成求職作品,我就能提早出發。 ▍學習狀況 雖然先前有稍微玩過 Vue,但也早已
    十個單字 information.  bald. nephew.  mustard. salad. ounce. balcony. deck. library. playground. 在一個晴朗的午後,傑克坐在陽台上,正在閱讀圖書館裡借來的書。他的光頭叔叔大衛帶著他的侄子彼得來拜訪,帶
    Thumbnail
    回顧前兩年的已實現損益,從資料可看出 2021年我還是處於頻繁買賣的境界,小賺就賣,頻繁交易,所衍生出來的手續費、交易稅、買賣總金額都很大!這無形中都是損失(損失了手續費和交易稅,都被政府給賺走了),這是有形的,無形的還是後頭~視力、身體健康、陪伴家人的時間、心情情緒…。 2022年我已經慢慢轉變,
    Thumbnail
    在股市你想要買在最低點,賣在最高點嗎?也就是賺整段!!! 單就這面向,我就選賣在最高點來解釋~ 我跟你說~這是不可能的!!因為你不是從未來回來的,所以你根本不知道最高點是哪裡,且你的最高點是今天的最高點?這一波段的最高點?整個公司歷史營運的最高點??? 人永遠無法預測未來會怎樣,如果有,那人早就不再
    Thumbnail
    在上一篇文章,說明了如何使用向量圖層來描線之後,求好心切的朋友一定會想到,線稿畫完,要塗色了! 但是當你選擇向量圖層,把工具調成油漆桶之後,悲劇發生了,你會發現向量圖層是無法使用油漆桶的😭 起初可能以為自己眼花,但是月英這邊可以很肯定的告訴你,向量圖層無法用油漆桶。 解套方案是,需要設定把向量圖層
    Thumbnail
    回歸我們上面一篇文章,提到的繪圖靈感,我建議可以畫在白紙上,因為今天我們將要使用Clip Studio Paint圖層描線,並且說明圖層的兩種型態(向量圖層及點陣圖層)。 首先來介紹什麼是圖層? 顧名思義,就是一張圖是由不同層重疊而成,如下圖。 這樣的功能,可以滿足以下幾點好處: 可以先
    Thumbnail
    請您現在扮演一位幽默博學的老師,回答什麼是sass中的mixin概念 很高興回答這個問題!在 Sass 中,Mixin 是一種可以將一組 CSS 屬性集合放在一起,以便在需要的地方重複使用的功能。Mixin 可以包含變量、條件語句、迴圈和其他 CSS 屬性,使其更加靈活和強大。